我正试图在RHEL-7.9 上编译glibc-2.33
作为其中的一部分,我使用了一个自定义的内置gcc,它部署在/opt/custom/
上
我能够正确地编译和使用自定义路径下的工具,直到运行make check
来检查所有内容。检查报告如下:
Summary of test results:
138 FAIL
4090 PASS
57 UNSUPPORTED
16 XFAIL
2 XPASS
在检查了多个测试后,我不断看到这个错误消息:
libgcc_s.so.1 must be installed for pthread_cancel to work
在查看了测试本身是如何调用的之后,我能够确定到自定义gcc位置的路径没有添加到--library-path
调用中。示例:
/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/elf/ld-linux-x86-64.so.2 --library-path /disk01/dgardner/rpms/rpms/glibc/SOURCES/build:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/math:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/elf:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/dlfcn:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/nss:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/nis:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/rt:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/resolv:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/mathvec:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/support:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/crypt:/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/nptl /disk01/dgardner/rpms/rpms/glibc/SOURCES/build/nptl/tst-robust1
这是错误的。
如果我用自定义的gcc安装位置手动添加到--library-path
上,测试就可以工作了——例如
/disk01/dgardner/rpms/rpms/glibc/SOURCES/build/elf/ld-linux-x86-64.so.2 --library-path ${PREVIOUS_FROM_ABOVE}:/opt/custom/lib64 /disk01/dgardner/rpms/rpms/glibc/SOURCES/build/nptl/tst-robust1
到目前为止,我还无法找到在测试期间指定这个额外库路径的方法。
有人知道将这个自定义库路径添加到在"0"期间传入的CCD_ 5的方法吗;进行检查";?
我已经阅读了INSTALL指南&用glibc提供的自述文件,以及在configure中指定的一些环境变量,都是徒劳的。
我还通读了glibc的常见问题解答进行编译,也没什么运气。
在进行了更多的挖掘之后,我能够在glibc发行说明wiki下为2.33 找到合适的答案
具体来说,这个片段:
如果测试系统没有合适的libgcc_s.so和libstdc++。因此安装在系统库目录中,这是必要的要在测试之前将它们复制或符号链接到构建目录中(请参阅https://sourceware.org/ml/libc-alpha/2012-04/msg01014.html关于此处使用系统库目录(。