Chinaunix首页 | 论坛 | 博客
  • 博客访问: 278357
  • 博文数量: 91
  • 博客积分: 2105
  • 博客等级: 大尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-14 19:30
文章分类
文章存档

2011年(11)

2010年(64)

2009年(16)

我的朋友

分类: LINUX

2010-12-28 22:55:34

[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) |
给主人留下些什么吧!~~