Hi, +1 for the patch. We've been using BIND_VERBOSE in our code, and has not created a problem till now. The shl_load looks like : dso.c:122:shl_t os_handle = shl_load(path, BIND_IMMEDIATE|BIND_VERBOSE, 0L);
Here are my notes for building apache when using C++ modules : 1. Use shl_load instead of dlopen - because dlopen has some problems unwinding problem C++ library. 2. How to get C++ modules to work with Apache (on hp-ux): On PA : Case 1 : dlopen is used - Link httpd with "-lcl -lCsup" to prevent the unwinding problem How does link with libCsup solve this problem? libCsup is the library that can't be unloaded. But, if you link with libCsup, you may break customers who use the -AA libCsup_v2. Case 2 : shl_load is used (recommended solution) - Link httpd with "-lcl". - Force the use of shl_load during configure (the way we do is by creating a config.cache file, and feed it to configure). On IA : - Link httpd with "-lcl -lunwind" should resolve the problem (even if you use dlopen) Further, of late, we've been experiencing some problems with the default loader on HP-UX (PA).. The recommendation is to use the latest LD version (B.11.32) available (Patch PHSS_26559/PHSS_26560). Hope this helps, -Madhu >-----Original Message----- >From: William A. Rowe, Jr. [mailto:[EMAIL PROTECTED]] >Sent: Thursday, January 30, 2003 8:32 AM >To: [EMAIL PROTECTED]; [EMAIL PROTECTED] >Cc: Arliss, Noah; [EMAIL PROTECTED] >Subject: [PATCH] HPUX static's and Mixing C with C++ modules > > >Of course I'm really happy to *finally* get some feedback on that issue >(since we have few HPUX participants here, my pleas for comments went >mostly unanswered.) > >The small bit below deserves *instant* reaction; since it can >be done with >very little extra logic. It seems other issues with HPUX >shl_load() were >identified earlier by Alexis and Joe (Joe follows this list so >I didn't explicitly >cc him above) ... for the resolution of BIND_VERBOSE read; > >http://www.contactor.se/~dast/svn/archive-2002-12/0474.shtml > >I'm hoping they can provide extra feedback on this patch. [And, by the >way, I'm concerned that patch lost some useful diagnostics info >- perhaps we should reenable BIND_VERBOSE for --maintainer-mode?] >Anyways... > >An example thread of someone struggling here; > >http://h21007.www2.hp.com/cxx-dev/CXX/cxx-dev.0203/0071.html > >So... I'd ask you all to check out this patch (which seems >very reasonable) >and let me know if you encounter any issues. > >And Arliss... please give us some citations or reconciliation >between the >two comments below (they seem contradictary); > >At 09:43 AM 1/30/2003, Arliss, Noah wrote: >>3) shl_load does not like static initialization (even with >BIND_NOSTART >>removed from the shl_load call). >> >>It would be great if one or more of the following changes >could be made >>(mostly from Bill's attached mail): >> >> 4) Remove BIND_NOSTART from the bits set when calling >shl_load since >>that explicitly stops any static >> initialization. It would be great if I could get >this one into >>both apache 1.3 and 2.0. > >Note that this code has existed since rev 1.7 of >apache-1.3/src/os/unix/os.c >and has never been touched since it was introduced... > >Revision <http://cvs.apache.org/viewcvs.cgi/*checkout*/apache-1.3/src/os/unix/os.c?re v=1.7>1.7 / <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c?rev=1.7&content-t ype=text/vnd.viewcvs-markup>(view) - <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c?annotate=1.7>anno tate - <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c?r1=1.7>[select for diffs] , Sun Apr 12 15:49:28 1998 UTC (4 years, 9 months ago) by rse Branch: <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c?only_with_tag=MAI N>MAIN Changes since 1.6: +43 -0 lines Diff to <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c.diff?r1=1.6&r2=1. 7>previous 1.6 (<http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c.diff?r1=1.6&r2=1 .7&diff_format=h>colored) Although I though we have no chance under HP/UX for using shared objects I today figured out that their proprietary shl_xxx system calls are very close to the dlopen-style interface. And because our os/unix/ stuff already provides an abstraction layer we now can provide DSO support for HP/UX by emulating the dlopen-style interface while not changing anything inside mod_so ;-) So I think we are safe adopting these changes. The fact that this code was only modified once (the VERBOSE change) shows that the entire logic could stand a good vetting. The next question to answer (after these patches are applied) is who's job is it to call _main()? I presume that would be the module author's - if they desired it. But I'm looking for additional feedback and thoughts. Bill