1、编译内核出现以下错误
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/root/working/Hi3520D_SDK_V2.0.3.0/osdrv/kernel/linux-3.0.y/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:945: recipe for target 'kernel' failed
make: *** [kernel] Error 2
解决办法:
将kernel/timeconst.pl中第373行的defined()去掉只留下@val就可以了
2、
1
arch/arm/kernel/asm-offsets.c:1: error: bad value (armv4) for -march=switch
arch/arm/kernel/asm-offsets.c:1: error: bad value (armv4) for -mtune=switch
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make: *** [arch/arm/kernel/asm-offsets.s] Error 2
解决办法: 设置makefile中的编译器 191行和192行,改为ARCH =arm, arch compile= arm-linux-
2
kernel/cpuset.c: In function 'cpuset_can_attach':
kernel/cpuset.c:1386: error: 'task' undeclared (first use in this function)
kernel/cpuset.c:1386: error: (Each undeclared identifier is reported only once
kernel/cpuset.c:1386: error: for each function it appears in.)
make[1]: *** [kernel/cpuset.o] Error 1
in kernel/cpuset.c:1386 change
if ((current != task) && (!capable(CAP_SYS_ADMIN))) {
to
if ((current != tsk) && (!capable(CAP_SYS_ADMIN))) {