在任何包管理器帮助之外升级 gcc (+jit) :还有什么需要重建?

在任何包管理器帮助之外升级 gcc (+jit) :还有什么需要重建?

目前正在使用现在不支持 ggc 9在 Linux-5.4 上,我需要至少升级到 gcc 10。

A/不管怎么说历史的因此,此升级必须在不依赖任何包管理器的情况下进行。
乙/我确实需要将 gcc 构建为共享库(libgccjit.so)才能启用及时编译

在这种情况下,升级成功后:

1/我应该(是否明智)使用较新的 gcc 重建工具链的任何其他组件(glibc?libffi?libtool?binutils?...)?

2/是否还有其他软件包(除了依赖于 libgccjit.so 的软件包之外)我应该完全重建或注意不要部分重建?
(作为一个例子(我不知道这是否仍然有效)曾经有一段时间所有 qt-* 组件都必须使用相同的工具链构建。)

答案1

  1. 你不应该需要重建任何其他东西,并且考虑到维护的手动性质,我会避免重建任何我不需要的东西。有些工具确实嵌入了 GCC 路径,因此您可能需要重建这些路径 - 这包括libtool在其默认设置中。

  2. 除了内核和您在其上构建的任何外部模块之外,我不知道任何其他模块。即使有一组二进制文件要求它们全部使用相同的工具链构建,您已经拥有的二进制文件也不需要重建,除非您想向该组添加一个新的二进制文件(然后您需要重建整套)。

作为证据,我提供 Debian,其中新的 GCC 上传(包括主要版本升级)不会导致重建任何其他内容,除非它们引入库转换(GCC 库之一的主要 soname 升级),在这种情况下,包取决于重建的碰撞库。论重建事物的智慧,Fedora 重建一切一旦给定版本的目标工具链准备就绪;但对于手动维护的设置来说,这似乎有点过分了。

相关内容