You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2003/01/30 17:31:38 UTC

[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?rev=1.7>1.7 / <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c?rev=1.7&content-type=text/vnd.viewcvs-markup>(view) - <http://cvs.apache.org/viewcvs/apache-1.3/src/os/unix/os.c?annotate=1.7>annotate - <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=MAIN>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