九鼎创展论坛

标题: 编译光盘的内核不过 [打印本页]

作者: wuzelin    时间: 2017-11-29 23:34
标题: 编译光盘的内核不过
arch/arm/Kconfig:1386:warning: 'HZ': number is invalid
arch/arm/Kconfig:1387:warning: 'HZ': number is invalid
arch/arm/Kconfig:1388:warning: 'HZ': number is invalid
#
# configuration written to .config
#
scripts/kconfig/conf --silentoldconfig Kconfig
arch/arm/Kconfig:1386:warning: 'HZ': number is invalid
arch/arm/Kconfig:1387:warning: 'HZ': number is invalid
arch/arm/Kconfig:1388:warning: 'HZ': number is invalid
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
sed: can't read scripts/../arch/x86/include/asm/unistd_32.h: No such file or directory
  CHK     include/generated/compile.h
  TIMEC   kernel/timeconst.h
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/home/malu/x4412/kernel/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:948: recipe for target 'kernel' failed
make: *** [kernel] Error 2
make: *** Waiting for unfinished jobs....



作者: ojzz57    时间: 2017-12-4 09:34
在内核源码目录下找到timeconst.pl文件,一般在目录kernel/timeconst.pl下,打开这个文件,找到下面相似的内容:

@val = @{$canned_values{$hz}};
if (defined(@val)) {
@val = compute_values($hz);
}
output($hz, @val);

if (defined(@val)) 改为if (@val),就是去掉defined,再次编译就可以通过了。
具体原因可以查找perl官方文档,因perl升级导致的一个bug,去掉后可以直接使用数组判断非空。
出现上面的问题一般在Ubuntu16.04系统中,如果你是Ubuntu14.04则不会出现这个问题。





欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2