我已经知道如何在旧版本(例如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。
libm
取决于动态加载程序和libc
的内部,例如IFUNC解析器。您不能简单地从较新的版本中获取libm
并将其安装在具有较旧glibc版本的系统上。不久前,有人提出了一些补丁来有选择地启用此功能:
--enable-math-noprivate
--enable-math-noprivate
strto_*nan
function in nan*
for CONFIG_MATH_NOPRIVATE
(实际上已被合并。)即使使用这些修补程序,仍然有必要使用strto_*nan
构建glibc,这会导致某些数学函数的性能明显下降。