LINUX.ORG.RU

Как обновить ld ?

 


0

1

У меня не получается определить, к какому пакету он относится:

$ qfile /usr/bin/ld
$ readlink /usr/bin/ld
x86_64-pc-linux-gnu-ld
$ qfile readlink /usr/bin/x86_64-pc-linux-gnu-ld
$

никак:

http://www.portagefilelist.de/site/query/file/?do&file=/usr/bin/ld#result

подозреваю, что sys-devel/binutils

но уверенности нет:

$ equery files sys-devel/binutils | grep /usr/bin/ld
$ 

Нужно это мне потому, что без нового ld компилятор отказывается компилировать, выводит

-- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCCompiler.cmake:52 (message):
  The C compiler

    "/usr/bin/x86_64-pc-linux-gnu-gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /var/tmp/portage/dev-util/spirv-headers-1.3/work/spirv-headers-1.3_build/CMakeFiles/CMakeTmp
    
    Run Build Command:"/usr/bin/gmake" "cmTC_f900b/fast"
    /usr/bin/gmake -f CMakeFiles/cmTC_f900b.dir/build.make CMakeFiles/cmTC_f900b.dir/build
    gmake[1]: Entering directory '/var/tmp/portage/dev-util/spirv-headers-1.3/work/spirv-headers-1.3_build/CMakeFiles/CMakeTmp'
    Building C object CMakeFiles/cmTC_f900b.dir/testCCompiler.c.o
    /usr/bin/x86_64-pc-linux-gnu-gcc    -DNDEBUG -O2 -march=x86-64 -pipe    -o CMakeFiles/cmTC_f900b.dir/testCCompiler.c.o -c /var/tmp/portage/dev-util/spirv-headers-1.3/work/spirv-headers-1.3_build/CMakeFiles/CMakeTmp/testCCompiler.c
    Linking C executable cmTC_f900b
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f900b.dir/link.txt --verbose=1
    /usr/bin/x86_64-pc-linux-gnu-gcc -O2 -march=x86-64 -pipe   -Wl,-O1 -Wl,--as-needed  -rdynamic CMakeFiles/cmTC_f900b.dir/testCCompiler.c.o  -o cmTC_f900b 
    /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../lib64/Scrt1.o: unrecognized relocation (0x2a) in section `.text'
    /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: final link failed: Bad value
    collect2: error: ld returned 1 exit status
    gmake[1]: *** [CMakeFiles/cmTC_f900b.dir/build.make:98: cmTC_f900b] Error 1
    gmake[1]: Leaving directory '/var/tmp/portage/dev-util/spirv-headers-1.3/work/spirv-headers-1.3_build/CMakeFiles/CMakeTmp'
    gmake: *** [Makefile:126: cmTC_f900b/fast] Error 2

Ответ на: комментарий от Bruce_Lee

eselect binutils list

О, это помогло (в смысле помогла команда `sudo eselect binutils set 2`)

$ eselect binutils list
 [1] x86_64-pc-linux-gnu-2.25.1
 [2] x86_64-pc-linux-gnu-2.29.1 *
Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.