Return-Path: X-Original-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Delivered-To: apmail-httpd-modules-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 29741CB29 for ; Fri, 22 Jun 2012 19:08:04 +0000 (UTC) Received: (qmail 6800 invoked by uid 500); 22 Jun 2012 19:08:03 -0000 Delivered-To: apmail-httpd-modules-dev-archive@httpd.apache.org Received: (qmail 6774 invoked by uid 500); 22 Jun 2012 19:08:03 -0000 Mailing-List: contact modules-dev-help@httpd.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: modules-dev@httpd.apache.org Delivered-To: mailing list modules-dev@httpd.apache.org Received: (qmail 6766 invoked by uid 99); 22 Jun 2012 19:08:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Jun 2012 19:08:03 +0000 X-ASF-Spam-Status: No, hits=3.4 required=5.0 tests=FH_FAKE_RCVD_LINE_B,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ohaya@cox.net designates 68.230.241.216 as permitted sender) Received: from [68.230.241.216] (HELO eastrmfepo201.cox.net) (68.230.241.216) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Jun 2012 19:07:54 +0000 Received: from eastrmimpo210.cox.net ([68.230.241.225]) by eastrmfepo201.cox.net (InterMail vM.8.01.04.00 201-2260-137-20101110) with ESMTP id <20120622190733.CPFK5450.eastrmfepo201.cox.net@eastrmimpo210.cox.net> for ; Fri, 22 Jun 2012 15:07:33 -0400 Received: from eastrmwml214 ([172.18.18.217]) by eastrmimpo210.cox.net with bizsmtp id RX7Y1j0074h0NJL02X7Y2C; Fri, 22 Jun 2012 15:07:32 -0400 X-CT-Class: Clean X-CT-Score: 0.00 X-CT-RefID: str=0001.0A020209.4FE4C275.0003,ss=1,re=0.000,fgs=0 X-CT-Spam: 0 X-Authority-Analysis: v=1.1 cv=dW166oI5E3VWoXuUpr+q8axZtXMQIgkkR45LP3Vo3E4= c=1 sm=1 a=stNmDGG3w3AA:10 a=G8Uczd0VNMoA:10 a=X0LLrcwhTTAA:10 a=IkcTkHD0fZMA:10 a=TRy/vagDvAN6zvr8h90PzQ==:17 a=kviXuzpPAAAA:8 a=pGLkceISAAAA:8 a=-cjqgSpunYcj6a39whYA:9 a=QEXdDO2ut3YA:10 a=4vB-4DCPJfMA:10 a=MSl-tDqOz04A:10 a=TRy/vagDvAN6zvr8h90PzQ==:117 X-CM-Score: 0.00 Authentication-Results: cox.net; none Received: from 72.192.248.102 by webmail.east.cox.net; Fri, 22 Jun 2012 15:07:32 -0400 Message-ID: <20120622150732.5OJQD.197509.imail@eastrmwml214> Date: Fri, 22 Jun 2012 15:07:32 -0400 From: To: modules-dev@httpd.apache.org Subject: Re: Followup to earlier thread about "How to compiling/link/use Apache module that uses shared library?" In-Reply-To: <20120622150003.8JHAS.197397.imail@eastrmwml214> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) Sensitivity: Normal ---- ohaya@cox.net wrote: > > ---- Sorin Manolache wrote: > > On 2012-06-22 17:35, ohaya@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