Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3547301
  • 博文数量: 1805
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 3345
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 20:01
文章分类

全部博文(1805)

文章存档

2017年(19)

2016年(80)

2015年(341)

2014年(438)

2013年(349)

2012年(332)

2011年(248)

分类:

2014-08-27 10:21:34

編最新内核時,可能会遇到下面這個問題

/usr/local/arm/4.3.2/bin/arm-linux-ld: no machine record defined

在 google 查到的都是說將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")


查了一下所使用的 binutils 版本是 2.15,與 HOST 上的 2.17 比起來確實有點舊了。
所以暫時方向先重新弄一版 crosstool 吧 :)
 
PS:根据arch/arm/mach-s3c2440/Kconfig文件中提到的141行:config ARCH_S3C2440和160行:config SMDK2440_CPU2440的内容可以看出这两项内容应当同时选择才是SMDK2440的配置,我当时就是漏选了SMDK2440那一项导致上面的问题,勾选后再编译就没有问题了。而且注释开头那两项ASSERT是治标不治本的做法!
 
阅读(656) | 评论(0) | 转发(0) |
0

上一篇:MTD驱动

下一篇:DBI接口与DPI接口与DSI接口

给主人留下些什么吧!~~