|
随手记下,以备忘,同时供其他爱好者参考。
环境:Ubuntu 16.04 64位Linux操作系统
Openwrt版本:Dreambox最新trunk版
报错提示:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/opt/ARM/mini6410/linux/linux-2.6.38/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:916: recipe for target 'kernel' failed
make: *** [kernel] Error 2
原因:
perl版本升级到了 v5.22.1,该版本将defined(@array)去掉了。可以直接使用数组判断非空。
解决方案:
将 根目录/build_dir/linux-ar71xx_generic/linux-3.3.8/kernel目录下的timeconst.pl文件打开,定位到373行,修改原代码:
- @val = @{$canned_values{$hz}};
- if (!defined(@val)) {
- @val = compute_values($hz);
- }
- output($hz, @val);
复制代码
为:
- @val = @{$canned_values{$hz}};
- if (!@val) {
- @val = compute_values($hz);
- }
- output($hz, @val);
复制代码
即将
改为
保存,重新编译,通过!
|
|