我正在尝试优化系统构建的方式,我遇到的一个问题是每次构建系统重新编译时都会重建linux内核。
有一个定制的缓存机制,允许我们的开发人员在构建过程的不同点修补根fs。通过在buildroot生成目标linux映像(vmlinux,包括initramfs)之前更新目标根fs,在重建buildroot之前复制一些应用程序。
为了避免重新编译buildroot,我们有一个系统,它将所有目标文件从先前编译的文件夹复制到本地文件夹,然后在最近调用make。它适用于linux内核的buildroot BUT中的所有软件包,每次都会重建。
经过对makefile日志的长时间分析后,我认为这是因为某些内核依赖项中存在绝对路径(这会强制重新生成一些生成的文件,因此几乎重新编译所有内容)。
我有多条曲目可以从那里开始探索,但我找不到任何更多的信息:
我可以配置/编译linux内核,以便它只使用相对路径吗?
如果没有,我可以安全地修补这些路径吗?
如果没有,我可以告诉buildroot使用以前编译的vmlinux映像来构建它的最终包吗?