glibc的`make check`失败,"必须安装libgcc_s.so.1才能让pthread_cancel正常工作"

时间:2016-01-28 15:59:08

标签: linux makefile pthreads glibc

构建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根本不存在!

0 个答案:

没有答案