---- oh...@cox.net wrote: > > ---- oh...@cox.net wrote: > > > > ---- Sorin Manolache <sor...@gmail.com> wrote: > > > On 2012-06-22 17:35, oh...@cox.net wrote: > > > > > > > > > > > Sorry. I meant to say: > > > > > > > > "So, my code calls ObConfig_initialize() then it appears that that calls > > > > ObConfig::initialize() which is presumably a C++ function. " > > > > > > > > > > We develop our apache modules in C++ on a regular basis and they > > > interact with other modules written in plain C and there's no problem. > > > > > > What I think happens in your case is: > > > > > > I suspect that the Oracle lib was _statically_ linked with libcrypto. So > > > the code of some version of libcrypto is in the libobaccess binary. Then > > > mod_ssl is _dynamically_ linked with libcrypto. I suspect that the two > > > libcryptos have different versions and they are possibly incompatible => > > > segfaults at all kind of mallocs/frees. I think it has nothing to do > > > with new/delete vs malloc/free. > > > > > > S > > > > > > Hi, > > > > How can I determine whether the libobaccess.so was statically linked with > > libcrypto? > > > > Also, I'll check again, but I think that I checked before using ldd, and > > both obaccess.so and mod_ssl.so were pointing to the same libcrypto. > > > > Jim > > Hi, > > Sorry, I got confused. > > [root@apachemodule ~]# ldd /apps/httpd2222/modules/mod_ssl.so > libssl.so.4 => /lib64/libssl.so.4 (0x0000002a95697000) > libcrypto.so.4 => /lib64/libcrypto.so.4 (0x0000002a957d4000) > libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 > (0x0000002a95a05000) > libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000002a95b1b000) > libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000002a95c8d000) > libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000002a95d8f000) > libdl.so.2 => /lib64/libdl.so.2 (0x0000002a95eb2000) > libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a95fb6000) > libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a960c9000) > libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a961de000) > libresolv.so.2 => /lib64/libresolv.so.2 (0x0000002a96418000) > /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000) > [root@apachemodule ~]# > [root@apachemodule ~]# > [root@apachemodule ~]# ldd /apps/netpoint/lib64/libobaccess.so > libnsl.so.1 => /lib64/libnsl.so.1 (0x0000002a95ab8000) > libdl.so.2 => /lib64/libdl.so.2 (0x0000002a95bd0000) > libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a95cd3000) > libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000002a95de9000) > libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a95fd9000) > libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000002a9615f000) > libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a9626d000) > /lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000) > > Only mod_ssl.so is showing pointer to libcrypto. > > Is there a way to determine if libobaccess.so is linked statically to > libcrypto, and now showing up in the ldd? > > Jim >
Hi, I found this: http://stackoverflow.com/questions/4925012/can-i-get-a-report-of-all-the-libraries-linked-when-building-my-c-executable When I run: objdump -t /apps/netpoint/lib64/libobaccess.so | grep "ABS" I get a bunch of stuff, including a bunch of "x509_xxx.c", e.g.: [root@apachemodule ~]# objdump -t /apps/netpoint/lib64/libobaccess.so | grep "ABS" | grep "x509" 0000000000000000 l df *ABS* 0000000000000000 x509_fnc.c 0000000000000000 l df *ABS* 0000000000000000 x509_fnc.c 0000000000000000 l df *ABS* 0000000000000000 x_x509.c 0000000000000000 l df *ABS* 0000000000000000 x509_d2.c 0000000000000000 l df *ABS* 0000000000000000 x509_err.c 0000000000000000 l df *ABS* 0000000000000000 x509_vfy.c 0000000000000000 l df *ABS* 0000000000000000 x509_obj.c 0000000000000000 l df *ABS* 0000000000000000 x509name.c 0000000000000000 l df *ABS* 0000000000000000 x509type.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_fnc.c 0000000000000000 l df *ABS* 0000000000000000 x509_fnc.c 0000000000000000 l df *ABS* 0000000000000000 x509_fnc.c 0000000000000000 l df *ABS* 0000000000000000 x509_fnc.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_st.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_cmp.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu2.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu2.c 0000000000000000 l df *ABS* 0000000000000000 x509_def.c 0000000000000000 l df *ABS* 0000000000000000 x509_v3.c 0000000000000000 l df *ABS* 0000000000000000 x509_cct.c 0000000000000000 l df *ABS* 0000000000000000 x509_gpp.c 0000000000000000 l df *ABS* 0000000000000000 x509_ext.c 0000000000000000 l df *ABS* 0000000000000000 x509_ext.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c 0000000000000000 l df *ABS* 0000000000000000 x509_lu.c [root@apachemodule ~]# I just picked on, "x509_lu.c" and googled and that looks like it's part of openssl: http://www.polarhome.com/cvs/CVSROOT/openssl/crypto/x509/x509_lu.c Does that confirm that they statically linked stuff from openssl (and libcrypto) into libobaccess.so? Assuming that's the case, is there any way around this? Thanks, Jim