1

我已经知道如何在旧版本(例如 2.19)旁边构建新版本的 Glibc(例如 2.3)。我按照中的说明进行操作https://www.tldp.org/HOWTO/html_single/Glibc-Install-HOWTO/

而是在 Glibc 中编译整个库,我只想构建数学库(libm.so)。

我如何只能在 ubuntu 中重新编译 libm.so?

第二个问题是可以使用 clang 编译器在 glibc 中重新编译该特定部分(数学)吗?我发现由于标准合规等原因,我无法使用 clang 重新编译整个 Glibc。

4

1 回答 1

0

libm取决于动态加载器的内部libc结构,例如 IFUNC 解析器。您不能简单地libm从较新版本中获取并将其安装在具有较旧 glibc 版本的系统上。不久前,有人提出了一些补丁来可选地启用此功能:

即使有了这些补丁,仍然需要使用 构建 glibc --disable-multi-arch,这会导致某些数学函数的性能显着下降。

于 2019-11-21T07:27:21.330 回答