如何用旧的linux内核头文件构建GCC CC;的buildroot

时间:2016-08-19 19:36:06

标签: cross-compiling compatibility embedded-linux buildroot uclibc

我正在尝试使用来自' 09的buildroot包构建交叉编译工具链。不幸的是,我没有在目标平台上升级现有的busybox系统。

背景: 目标平台在arm926EJ(5TE架构)上运行。它显然是用uclibc 0.9.29库构建的。 平台上的内核linux头文件是2.6.16

由于我无法从头开始升级busybox图像,我想制作单独的二进制文件并通过tftp上传它们,并通过telnet shell执行它们。

我已经使用4.5内核头文件和1.0.14 uclibc库成功编译了最新的buildroot工具链。 在成功编译了一个基本的helloworld程序并通过tftp将其上传到平台后,我能够执行该程序,但没有看到任何输出。

尽管stdout和telnet终端可能存在一些问题,但我认为它很可能是uclibc库之间不同版本的兼容性问题。

问题: 在我的主机系统上,我有linux版本4.6.3的linux内核头文件。 为了解决上面提到的uclibc兼容性问题,我试图从旧的buildroot包构建一个新的工具链。但是在编译的早期,我有一个错误,指出:

Makefile:1601:混合隐式和普通规则:不推荐使用语法 CHK包含/ linux / version.h HOSTCC脚本/ unifdef scripts / unifdef.c:209:25错误:' getline'

的冲突类型

等等 在网上进行了一些研究并且已经预料到它会发生之后,它似乎是不同内核版本之间的冲突。

我问这个伟大的社区,他们可以想出任何解决这个问题的方法,而无需使用古老版本的linux重建主机系统。如果有任何我遗漏或不完全理解的细节,请随时通知我。我对建议很开放。

我考虑使用VM中的旧标头构建主机系统。如果这是一个很好的方法,那么使用好的发行版的任何建议都会很酷。

我不反对抛弃buildroot以获得更好的工具,或者从头开始构建CC,但如果是这样的话,我仍然担心内核版本冲突。

非常感谢任何帮助。

0 个答案:

没有答案