【发布时间】:2019-10-28 17:28:51
【问题描述】:
几年来,我们一直在为嵌入式 powerpc 系统编译内核模块,一般情况下,一些罕见的无法解释的稳定性问题都可以解决。最近有同事指出,内核模块应该使用与内核相同的编译器进行编译。经过一番挖掘后,我发现内核(montavista linux 2.4.20)是用 gcc3.4.1 编译的,我们一直在使用(denx eldk)gcc4.0.0。我最近为我们的用户空间代码构建了 gcc4.7.1,但加载使用此版本构建的内核模块会导致系统崩溃。然后我从源代码构建 gcc3.4.1,有些构建工作,有些则没有 - 认为我可能对 make 脚本有问题,但那是另一个故事。
所以我的问题是:我的同事是否正确?如果是这样,任何人都可以解释生成的 .o 文件中导致不兼容的不同之处吗?
【问题讨论】:
标签: gcc kernel embedded-linux