I have a Solaris 2.5.1 x86 system and openssl 0.9.7e and I want to build it with shared libraries, so I tried the following with the openssl-0.9.7-stable-SNAP-20050109:
./Configure solaris-x86-gcc zlib shared no-asm
and part way into the compilation it aborts with the following:
+ gcc -shared -G -dy -z text -o libcrypto.so.0.9.7 -h libcrypto.so.0.9.7 -Wl,-Bsymbolic -Wl,-z,allextract libcrypto.a -Wl,-z,defaultextract -L. -lsocket -lnsl -ldl -lc Undefined first referenced symbol in file __umoddi3 libcrypto.a(bn_word.o) __udivdi3 libcrypto.a(b_print.o) ld: warning: Symbol referencing errors Text relocation remains referenced against symbol offset in file <unknown> 0x154 libcrypto.a(ocsp_prn.o) <unknown> 0x15c libcrypto.a(ocsp_prn.o) <unknown> 0x164 libcrypto.a(ocsp_prn.o) <unknown> 0x16c libcrypto.a(ocsp_prn.o) <unknown> 0x174 libcrypto.a(ocsp_prn.o) <unknown> 0x184 libcrypto.a(ocsp_prn.o) <unknown> 0x18c libcrypto.a(ocsp_prn.o) <unknown> 0x17c libcrypto.a(ocsp_prn.o)
Well, 0.9.7-stable snapshot was recently tested on Solaris x86 with gcc 2.95 and it succeeded to build shared. As for relocations. This is *pure* compiler domain, there is nothing one can do in C code to eliminate a "text relocation." So it must be a compiler bug, something beyond our control. As for __u[mod|div]di3 symbols. As you pointed out they do rezide in libgcc, but gcc driver used to add -lgcc all by itself. At least I can confirm that it does so on my system and symbols in question are properly resolved.
In other words. Upgrade your compiler or give up shared support. There hardly are other options. A.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]
