问题描述
我已经开发了一个工具链来生成适用于aarch64架构的gcc 交叉编译器。在这种情况下,已经有众所周知的解决方案,如Ubuntu软件包gcc-aarch64-linux-gnu,但在这种情况下,我希望完全控制工具链和生成的交叉编译器。
我使用的工具链由以下基本组件组成:内核头文件,GNU程序(gmp
,mpfr
,mpc
,{{1 }}和binutils
)和gcc
作为libc库。然后,在两遍编译过程中,将构建交叉编译器。
将交叉编译器视为一个软件包,可以在每次更新基本组件时进行更新。但是重新编译交叉编译器有时并不直接,需要一定的计算和调试时间。但是,除了这种实际考虑之外,我想澄清一个概念上的疑问。一旦使用给定的基本组件组构建了交叉编译器,对基本组件中的每个更改进行更新的交叉编译器是否有意义? (我的意思是,对于任何基本组件包的每个新版本)。
我们必须考虑到某些组件很少更改,而其他组件则更频繁地更改(binutils,musl和gcc),而内核头文件可以每周更新一次。如果考虑内核的变化,那么重新编译的成本将变得很高。
是否有简单的标准来决定何时根据交叉编译器的基本组件来更新交叉编译器?
如果没有,那么对于我来说,理解如何评估交叉编译器中基本组件的影响将是非常有趣的,而且,如果工具链中组件的更改对软件开发人员产生了影响,那么似乎更重要的是。交叉编译器产生的交叉编译包。有没有有趣的出版物?
也许一个直接的解决方案可能是,考虑到给定版本的交叉编译器足够好,直到无法编译先前交叉编译的软件包的新版本为止。我的意思是,让我们考虑一个与musl
交叉编译的程序foo-1.0
。如果xc-1.0
可以交叉编译连续的版本,直到xc-1.0
为止,那么可以将交叉编译器的组件升级为最新版本。但是通过这种解决方案,我不知道“太老”的交叉编译器是否会影响已编译程序包的性能,例如,是否可能危及安全功能。
简而言之,任何有关生成交叉编译器的工具链应多久更新一次的信息都将受到欢迎。
非常感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)