You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by "Ralf S. Engelschall" <rs...@engelschall.com> on 1999/03/10 12:10:01 UTC

Re: config/3823: enabling a module as shared does not cause it to link against the necessary extra libraries

The following reply was made to PR config/3823; it has been noted by GNATS.

From: "Ralf S. Engelschall" <rs...@engelschall.com>
To: apbugs@apache.org
Cc:  Subject: Re: config/3823: enabling a module as shared does not cause it to link against the necessary extra libraries
Date: Wed, 10 Mar 1999 11:57:40 +0100

 In article <19...@hyperreal.org> you wrote:
 
 > Given a module with a configuration like this, APACI configuration finds that it
 > does need to link the additional libraries:
 > 
 >  * MODULE-DEFINITION-START
 >  * Name: mysql_auth_module
 >  * ConfigStart
 >      MYSQL_LIB="-L/usr/local/lib/mysql -lmysqlclient -lm"
 >      if [ "X$MYSQL_LIB" != "X" ]; then
 >          LIBS="$LIBS $MYSQL_LIB"
 >          echo " + using $MYSQL_LIB for MySQL support"
 >      fi
 >  * ConfigEnd
 >  * MODULE-DEFINITION-END
 > 
 > This works fine when this module is compiled statically.  However, if you make
 > this module --enable-shared during the config, then the resulting .so file does not
 > have the additional libraries linked, but those libraries are referenced for linking
 > when building httpd.
 
 It's not such easy because usually you cannot link DSO's against other DSOs
 (i.e. shared libraries here). To solve the problem you either have to build
 this MySQL module statically or build on a smart platform (usually all
 ELF-based platforms are of this type where you can link a DSO against a DSO)
 and use --enable-rule=SHARED_CHAIN.
                                        Ralf S. Engelschall
                                        rse@engelschall.com
                                        www.engelschall.com