构建glibc
时,某些测试文件会生成以下错误消息:
libgcc_s.so.1 must be installed for pthread_cancel to work
目前的Google搜索结果对我来说并没有多大意义。知道怎么解决它?
更新:
gcc版本:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.9.3_source/configure --disable-multilib
Thread model: posix
gcc version 4.9.3 (GCC)
Linux内核:
Linux version 3.0.101-0.15-default (geeko@buildhost)
(gcc version 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1
SMP Wed Jan 22 15:49:03 UTC 2014 (5c01f4e)
OS:
Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).
更新
根据Etan Reisner的评论,我添加了失败的完整命令。我会说使用env
命令应该使用正确的和新构建的库:
env GCONV_PATH=/builds/glibc-2.22_build/iconvdata
LOCPATH=/builds/glibc-2.22_build/localedata LC_ALL=C
/builds/glibc-2.22_build/elf/ld-linux-x86-64.so.2
--library-path /builds/glibc-2.22_build:
/builds/glibc-2.22_build/math:
/builds/glibc-2.22_build/elf:/builds/glibc-2.22_build/dlfcn:
/builds/glibc-2.22_build/nss:/builds/glibc-2.22_build/nis:
/builds/glibc-2.22_build/rt:/builds/glibc-2.22_build/resolv:
/builds/glibc-2.22_build/crypt:/builds/glibc-2.22_build/mathvec:
/builds/glibc-2.22_build/nptl /builds/glibc-2.22_build/nptl/tst-robustpi2
> /builds/glibc-2.22_build/nptl/tst-robustpi2.out;
../scripts/evaluate-test.sh nptl/tst-robustpi2 $? false false
更新:
为测试文件运行ldd
命令失败时的结果:
linux-vdso.so.1 => (0x00007fffd07ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f511320a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5112e92000)
/usr/local/glibc/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f5113465000)
这是测试文件的结果:
linux-vdso.so.1 => (0x00007fff68fff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd09741f000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd0970a7000)
/usr/local/glibc/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fd09767a000)
现在问题在于:路径/usr/local/glibc/lib/ld-linux-x86-64.so.2
根本不存在!