RK3288内核编译

在编译内核的时候,出现如下错误:
LD pie/pie_stage2.o
arm-linux-gnueabihf-ld: BFD (GNU Binutils for Ubuntu) 2.22 internal error, aborting at ../../bfd/elflink.c line 8758 in elf_link_output_extsym

arm-linux-gnueabihf-ld: Please report this bug.

make[1]: *** [pie/pie_stage2.o] Error 1
make: *** [vmlinux] Error 2

我的主机环境是ubuntu 12.04 都是按照文档的步骤做的。

楼主的Ubuntu是新装的吗?如果确认步骤都一样,而且安装的软件都装成功了,建议检查一下Ubuntu自身的软件更新情况

到不是新装的,我用很久了!在另一台新装的ubuntu上也会出现这样的情况。不过我的软件到是没有跟新!那我试试将我的ubuntu软件更新一下吧!

问题解决了,编译器的问题!我直接将交叉编译工具指向了android的sdk中的交叉编译工具链。

export CROSS_COMPILE=/mnt/lizy/Documents/src_code/rk3288_r-box_android4.4.2_sdk/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-

交叉工具链应用是配好了的,应该不用手的。

error结构体 发表于 2014-12-9 11:13
交叉工具链应用是配好了的,应该不用手的。

我是在wiki的Linux开发中,按照步骤编译内核 其中要单独安装编译工具。导出变量export CROSS_COMPILE=arm-linux-gnueabihf-后编译不通过,后来我check out了sdk代码直接编译是没问题的!

error结构体 发表于 2014-12-9 11:13
交叉工具链应用是配好了的,应该不用手的。


从内核的Makefile设置编译器路径可以看出,编译器是依赖SDK的。

export -n ARCH
export -n CROSS_COMPILE

亲测有效

需要那么复杂吗?下载的的代码里面有编译器,新装的fedora20下直接make没问题的。

这个看你怎么编 :
kernel直接放在sdk目录中就什么不用设置 直接make就行了。
如果是把kernel源码单独拿出来就需要设置啦。当然把prebuilts目录考出来一样直接make就行啦。说白了就是找到交叉工具链路径了。

就是要怎么改??环境变量怎么设置??感觉Makefile写成绝对路径有问题!!