Strona 1 z 1

openssl a PIC

: 23 wrz 2009, 14:32
autor: ubtjacenty
Witam.

Mam projekt biblioteki dzielonej , który składa się z kilku skompilowanych plików w c++ ( własne ), kilku bibliotek statycznych ( własne ) oraz kilku bibliotek dzielonych ( obce ). Swoje elementy kompilowałem zawsze z opcją -fPIC aby wynikowo uzykać bibliotekę bez relokacji w segmencie kodu.
Jedną z bibliotek obcych jest openssl a właściwie libcrypto.
Jeżeli dołączam do projektu libcrypto.so to wynikowa biblioteka nie zawiera sekcji TEXTREL czyli jest taka jak być powinna. Jeżeli do projektu dołączam libcrypto.a ( a zależy mi na tym aby openssl mieć statycznie w mojej bibliotece ) to niestety wynikowa biblioteka zawiera sekcję TEXTREL.
Próbowałem openssl'a dołączonego czy też doinstalowanego Synapticem jak i openssl'a skompilowanego przeze mnie ze źródeł i efekt jest zawsze ten sam czyli z libcrypto jako .so jest OK a z libcrypto jako .a jest NOK.
Czy ktoś wie co powoduje ten efekt ?

Pozdrawiam
Jacek

Odp: openssl a PIC

: 24 wrz 2009, 18:41
autor: el.pescado
Biblioteki .a są to biblioteki statyczne - czyli przeznaczone do włączenia na stałe do wynikowego programu, więc w takim przypadku PIC jest niepotrzebny.

Spróbuj przed budowaniem openssl pobawić się opcjami skryptu ./configure - może akurat się uda. Ewentualnie ręcznie dopisz -fPIC do Makefile;)