[liyu@SEP4020 linux-2.6.36.2]$ make
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: “include/generated/mach-types.h”是最新的。
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
/home/liyu/arm-2008q3/bin/arm-none-linux-gnueabi-ld: no machine record defined
/home/liyu/arm-2008q3/bin/arm-none-linux-gnueabi-ld: no machine record defined
将arch/arm/kernel/vmlinux.lds的最后两行(如下),给注解起来,但都没说是为了什么
ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support")
ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined")
自己到arch/arm/kernel/vmlinux.lds里看的时候,才发现那两行的上头写着
/* These must never be empty
If you have to comment these two assert statements out, your binutils is too old (for other reasons as well) */
ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support")
ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined")
我想可能不是我交叉编译器太旧的缘故,而是太新了!
现在注释后可以正常编译内核了!
阅读(1896) | 评论(0) | 转发(0) |