LD libltaudit.so.0.5.11
/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../x86_64-slackware-linux/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../lib64/libiberty.a(cplus-dem.o): relocation R_X86_64_32S against `_sch_istable' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../lib64/libiberty.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
src/Makefile:51: polecenia dla obiektu 'libltaudit.so.0.5.11' nie powiodły się
Buduje za pomocą skryptu SBo
gcc 5.3.0 z paczek jest kompilowane z -fPIC, więc nie za bardzo rozumiem z czym problem. Czegoś brakuje, czy trzeba by rekompilować gcc dla libiberty.a? Prosiłbym o podpowiedź
Slackware 64 Current - aktualny
EDIT: Aktualizacja libiiberty.a z binutils-2.26-x86_64-3.txz rozwiązała problem
Ostatnio zmieniony 2016-03-09, 21:56 przez tomatau, łącznie zmieniany 1 raz.
Skoro masz R_X86_64_32S w libiberty.a to znaczy ,że nie jest skompilowana z -fPIC i linker sie pluje.
1.Nie wiem może masz wersje multilib to spróbuj czysty 64 bit, nie powinien miec reloc R_X86_64_32S i R_X86_64_32.
Statyczne biblioteki w multilib to nie jest dobry pomysł, ale jak są....
2.Ale przedtem dodajaj jeszcze taką flagę do kompilatora
-mcmodel=large
bedzie używał 64 bitowy offset miast 32 i może połączy non PIC z biblioteką .
Dziękuje za opdowiedź.
gcc którego częścią jest libiberty.a mam z oficjalnych paczek, które wg slackbuilda są kompilowane z -fPIC. http://mirrors.slackware.com/slackware/ ... SlackBuild
1. Skompilowałem całe gcc 5.3.0 samemu też z -fPIC i bez multilib. Po podmianie libiberty problem ten sam.
2. "-mcmodel=large" dodałem dla latrece. Problem bez zmian.
Bez libiberty.a latrace sie buduje, ale bez wsparcia dla demangle.