huangteng 发表于 2016-12-30 06:18:42

原版Linux 内核编译报错

我解压了linux/src/kernel-3.2后执行了以下步骤 无法编译通过
cp arch/arm/configs/ok335xd_evm_linux_usb_defconfig .config
make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm uImage出现的错误是

CC      kernel/exit.o
CC      kernel/itimer.o
TIMEC   kernel/timeconst.h
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/home/huangteng/Teng_Project/ok335_work/linux/src/kernel-3.2/kernel/Makefile:141: recipe for target 'kernel/timeconst.h' failed
make: *** Error 255
Makefile:945: recipe for target 'kernel' failed
make: *** Error 2


请教哪位大牛帮忙解决

飞凌-chongzi 发表于 2016-12-30 08:32:55

您好:
      把make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm uImage 改为
          make CROSS_COMPILE=arm-fsl-linux-gnueabi- ARCH=arm uImage
      因为我们所用的交叉编译器是arm-fsl-linux-gnueabi-

huangteng 发表于 2016-12-31 19:20:15

飞凌-chongzi 发表于 2016-12-30 08:32
您好:
      把make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm uImage 改为
          make CRO ...

您好 感谢回复
但是我没有看到这个文件啊 我解压的tool原始包名字是cross-tools-am335x-4.5.3.tar.bz2
我买的是OK335xD的板子

huangteng 发表于 2017-1-2 06:10:36

问题已经解决 是官方源码有问题 补丁如下

git diff kernel/timeconst.pl
diff --git a/kernel/timeconst.pl b/kernel/timeconst.pl
index eb51d76..3f42652 100755
--- a/kernel/timeconst.pl
+++ b/kernel/timeconst.pl
@@ -369,10 +369,8 @@ if ($hz eq '--can') {
                die "Usage: $0 HZ\n";
      }

-       @val = @{$canned_values{$hz}};
-       if (!defined(@val)) {
-               @val = compute_values($hz);
-       }
+       $cv = $canned_values{$hz};
+       @val = defined($cv) ? @$cv : compute_values($hz);
      output($hz, @val);
}
exit 0;
页: [1]
查看完整版本: 原版Linux 内核编译报错