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
openssl a PIC
-
- Piegowaty Guziec
- Posty: 1
- Rejestracja: 23 wrz 2009, 14:17
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Architektura: x86
- el.pescado
- Zakręcona Traszka
- Posty: 734
- Rejestracja: 26 maja 2005, 11:43
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: openssl a PIC
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;)
Spróbuj przed budowaniem openssl pobawić się opcjami skryptu ./configure - może akurat się uda. Ewentualnie ręcznie dopisz -fPIC do Makefile;)
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości