This is a multipart message in MIME format.
--=_alternative 00751E188525740A_=
Content-Type: text/plain; charset="US-ASCII"

Hi folks,

I googled the web, but couldn't find anything relevant, so hoping that
e-mailing the gurus on this list can help:

Running on x64 Linux box.

I am trying to link the static OpenSSL library with my application .so
shared library. Here are the gcc link options that I am using:
---
gcc $EXTRA_C_FLAGS -shared -Bsymbolic -o ${prog}.so ${prog}.o -lc
-lpthread -lssl
---

This results in the following .so file:
---
ldd db2auth.so
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95677000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000002a9589f000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a959a2000)
libssl.so.0.9.7 => /usr/lib64/libssl.so.0.9.7 (0x0000002a95ab6000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
libcrypto.so.0.9.7 => /usr/lib64/libcrypto.so.0.9.7
(0x0000002a95bed000)
---

So far so good. However when my db2auth.so library is loaded by an
application, the application detects the following undefined symbol:
/usr/lib64/libssl.so.0.9.7: undefined symbol: X509_free

As a result the application fails.

I don't have a problem when the same code is compiled as part of a static
executable (i.e. no "undefined symbol"), however I also need to build a
workable .so as well.

Does anybody have any suggestions on what to do (e.g. perhaps this issue
doesn't exist with a later OpenSSL release or maybe there is some magic
gcc linker directive)?

Thanks in advance,

Gene

--=_alternative 00751E188525740A_=
Content-Type: text/html; charset="US-ASCII"



Hi folks,



I googled the web, but couldn't find
anything relevant, so hoping that e-mailing the gurus on this list can
help:




Running on x64 Linux box.



I am trying to link the static OpenSSL
library with my application .so shared library.  Here are the gcc
link options that I am using:


---

gcc $EXTRA_C_FLAGS -shared -Bsymbolic
-o ${prog}.so ${prog}.o -lc -lpthread -lssl


---



This results in the following .so file:

---

 ldd db2auth.so

        libc.so.6
=> /lib64/tls/libc.so.6 (0x0000002a95677000)


        libdl.so.2
=> /lib64/libdl.so.2 (0x0000002a9589f000)


        libpthread.so.0
=> /lib64/tls/libpthread.so.0 (0x0000002a959a2000)


        libssl.so.0.9.7
=> /usr/lib64/libssl.so.0.9.7 (0x0000002a95ab6000)


        /lib64/ld-linux-x86-64.so.2
(0x000000552aaaa000)


        libcrypto.so.0.9.7
=> /usr/lib64/libcrypto.so.0.9.7 (0x0000002a95bed000)


---



So far so good.  However when my
db2auth.so library is loaded by an application, the application detects
the following undefined symbol:


        /usr/lib64/libssl.so.0.9.7:
undefined symbol: X509_free




As a result the application fails.



I don't have a problem when the same
code is compiled as part of a static executable (i.e. no "undefined
symbol"), however I also need to build a workable .so as well.




Does anybody have any suggestions on
what to do (e.g. perhaps this issue doesn't exist with a later OpenSSL
release or maybe there is some magic gcc linker directive)?




Thanks in advance,



Gene


--=_alternative 00751E188525740A_=--
__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager majordomo@openssl.org