[Rozw]libiberty.a recompile with -fPIC

Te, które nie mieszczą się w powyższych kategoriach, a mają coś wspólnego ze Slackware.

Moderatorzy: Moderatorzy, Administratorzy

tomatau
Użytkownik
Posty: 36
Rejestracja: 2015-01-09, 02:51

[Rozw]libiberty.a recompile with -fPIC

Post autor: tomatau » 2016-03-04, 13:14

Chcę sobie zbudować paczkę z latrace 0.5.11. Podczas linkowania wyrzuca coś takiego:

Kod: Zaznacz cały

 
 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.

PITbull
Użytkownik
Posty: 158
Rejestracja: 2004-10-19, 18:50

Re: libiberty.a recompile with -fPIC

Post autor: PITbull » 2016-03-04, 22:07

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ą .

tomatau
Użytkownik
Posty: 36
Rejestracja: 2015-01-09, 02:51

Re: libiberty.a recompile with -fPIC

Post autor: tomatau » 2016-03-07, 20:11

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.

PITbull
Użytkownik
Posty: 158
Rejestracja: 2004-10-19, 18:50

Re: libiberty.a recompile with -fPIC

Post autor: PITbull » 2016-03-08, 09:41

Najnowszy update currenta poprawia libiberty z binutils jak było w 14.1 , a nie z gcc.
Wiec obędzie się bez kombinacji.

ODPOWIEDZ