www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Stracke <fran...@ecal.com>
Subject apache-api/4045: Cannot load dynamic modules written in C++
Date Thu, 11 Mar 1999 23:19:51 GMT

>Number:         4045
>Category:       apache-api
>Synopsis:       Cannot load dynamic modules written in C++
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Thu Mar 11 15:20:01 PST 1999
>Last-Modified:
>Originator:     francis@ecal.com
>Organization:
apache
>Release:        1.3.3
>Environment:
Linux 2.0.36 (RedHat 5.2)
gcc 2.7.2.3
C++ stuff with egcs-2.90.29
>Description:
I am developing an Apache module which uses an in-house library which is written in C++. 
I want to build the module as a DSO.  I can get the module to load by using LoadFile to pull
in the C++ runtime first; but the constructors on global objects (e.g., cerr) don't get invoked.
>How-To-Repeat:
Build a module in C++ and have it print messages to cerr.  If necessary, I can write you some
example code.
>Fix:
Yes, I have a fix: I added two dummy C++ files to the Apache build (two so that one can call
into the other and make the linker think it's being used) and linked httpd with g++ instead
of gcc.  This worked fine (the module still has to
avoid using any global objects with constructors of its own, but that'll have to do).

I have put together a patch to the configuration scripts to add this fix if (and only if)
configure is invoked with "--cplusplusmodules".  It picks a C++ compiler just the way it normally
picks a C compiler.  It does not affect the compilation of C files.  The patch is available
at <http://www.thibault.org/cplusplusmodules.tar.gz>.  The tarfile contains:

* Output of "diff -r -C3 dist patched" (where dist is the distributed source of 1.3.3, and
patched is my modified version)
* patched/src/dummy.C
* patched/src/dummy.H
* patched/src/dummy2.C

(where the last 3 are the dummy C++ files used)
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, ]
[you need to include <apbugs@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED.  This is not done]
[automatically because of the potential for mail loops. ]
[If you do not include this Cc, your reply may be ig-   ]
[nored unless you are responding to an explicit request ]
[from a developer.                                      ]
[Reply only with text; DO NOT SEND ATTACHMENTS!         ]




Mime
View raw message