Mam takie polecenie linkowania (nie w pakiecie PLD):
gcc -pthread small/perl/PerlNetHTTP.o -o
small/perl/PerlNetHTTP ../lib/libko_Perl.so -rdynamic
-Wl,-rpath,/usr/lib/perl5/5.8.8/athlon-pld-linux-thread-multi/CORE
-Wl,--as-needed
/usr/lib/perl5/5.8.8/athlon-pld-linux-thread-multi/auto/DynaLoader/DynaLoader.a
-L/usr/lib/perl5/5.8.8/athlon-pld-linux-thread-multi/CORE -lperl -ldl -lm
-lpthread -lc -lcrypt ../lib/libko_Core.so -lm -lgmp -lsigsafe -lrt
/home/users/qrczak/cvs/kokogut-0.7.1/runtime/main.o
Fragment od -rdynamic do -lcrypt został wciągnięty przez:
perl -MExtUtils::Embed -e ldopts
Jak widać, Perl przekazując opcje, z którymi był linkowany, przekazał
również -Wl,--as-needed.
Program się nie linkuje, m.in.:
../lib/libko_Core.so: undefined reference to `timer_settime'
../lib/libko_Core.so: undefined reference to `__gmpz_cmp'
tzn. nie znajduje m.in. symboli z -lrt i -lgmp używanych
w ../lib/libko_Core.so.
Dlaczego? Jak to poprawić (poza wysedowywaniem -Wl,--as-needed z opcji
przekazywanych przez Perla)? Na moje oko kolejność bibliotek jest dobra.
Jeśli zmienić libko_{Core,Perl}.so na libko_{Core,Perl}.a, to się
linkuje. Te biblioteki z pewnych powodów są kompilowane bez -fPIC;
nie wiem, czy to ma jakies znaczenie.
Czy Perl powinien przekazywać przez ldopts opcję -Wl,--as-needed, która
psuje linkowanie?
--
__("< Marcin Kowalczyk
\__/ [EMAIL PROTECTED]
^^ http://qrnik.knm.org.pl/~qrczak/
_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl