You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Patrick Welche <pr...@newn.cam.ac.uk> on 2004/01/15 16:04:37 UTC

missing symbols for modules.o

Essentially a build of httpd-cvs on NetBSD-1.6ZG/i386, autoconf 2.59, cvs
libtool, gcc 3.3.2, goes fine until the final link to -o httpd:

/usr/lib/crt0.o(.text+0x86): In function `___start':
: undefined reference to `main'
modules.o(.data+0x0): undefined reference to `core_module'
modules.o(.data+0x4): undefined reference to `authn_file_module'
modules.o(.data+0x8): undefined reference to `authn_default_module'
...

Have any of you seen this? My first encounter with this starts at:

http://mail.gnu.org/archive/html/libtool/2003-11/msg00120.html


Cheers,

Patrick

Re: missing symbols for modules.o

Posted by Patrick Welche <pr...@newn.cam.ac.uk>.
On Thu, Jan 15, 2004 at 07:11:03PM +0000, Joe Orton wrote:
> On Thu, Jan 15, 2004 at 06:13:36PM +0000, Patrick Welche wrote:
> > modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0xc8): In function `check_password':
> > /usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:129: undefined reference to `ap_pcfg_openfile'

> What's the complete link line libtool invokes gcc with in this case?


gcc -g -O2 -o .libs/httpd modules.o -Wl,--export-dynamic  -pthread -L/usr/src/local/httpd-2.0/srclib/apr-util/xml/expat/lib modules/aaa/.libs/libauthn_file.a modules/aaa/.libs/libauthn_default.a modules/aaa/.libs/libauthz_host.a modules/aaa/.libs/libauthz_groupfile.a modules/aaa/.libs/libauthz_user.a modules/aaa/.libs/libauthz_default.a modules/aaa/.libs/libauth_basic.a modules/filters/.libs/libinclude.a modules/loggers/.libs/liblog_config.a modules/metadata/.libs/libenv.a modules/metadata/.libs/libsetenvif.a modules/ssl/.libs/libssl.a modules/http/.libs/libhttp.a modules/http/.libs/libmime.a modules/dav/main/.libs/libdav.a modules/generators/.libs/libstatus.a modules/generators/.libs/libinfo.a modules/generators/.libs/libcgi.a modules/dav/fs/.libs/libdav_fs.a modules/dav/lock/.libs/libdav_lock.a modules/mappers/.libs/libnegotiation.a modules/mappers/.libs/libdir.a modules/mappers/.libs/libimap.a modules/mappers/.libs/libactions.a modules/mappers/.libs/libalias.a modules/mappers/.libs/librewrite.a modules/mappers/.libs/libso.a server/mpm/prefork/.libs/libprefork.a server/.libs/libmain.a os/unix/.libs/libos.a -lm -lssl -lcrypto /usr/src/local/httpd-2.0/srclib/pcre/.libs/libpcre.a /usr/src/local/httpd-2.0/srclib/apr-util/.libs/libaprutil-1.so /usr/src/local/httpd-2.0/srclib/apr-util/xml/expat/lib/.libs/libexpat.so /usr/src/local/httpd-2.0/srclib/apr/.libs/libapr-1.so -lcrypt -lpthread -Wl,--rpath -Wl,/usr/local/lib

> Technically this is still violating the library handling guidelines in
> the libtool manual, but I'm not sure it should fail like this.

What is making following the guidelines difficult? (I don't understand them
but that's another issue :/ )

> If you
> add -static in the build/libraries.mk link line the rebuild libmain.la
> and libprefork.la I'd guess it will work.

Yes, it did! For the first time since last November it works!

Cheers,

Patrick

Re: missing symbols for modules.o

Posted by Joe Orton <jo...@redhat.com>.
On Thu, Jan 15, 2004 at 06:13:36PM +0000, Patrick Welche wrote:
> On Thu, Jan 15, 2004 at 05:19:34PM +0000, Joe Orton wrote:
> > On Thu, Jan 15, 2004 at 05:16:35PM +0000, Patrick Welche wrote:
> > > libtool: link: libtool library `mod_authn_file.la' must begin with `lib'
> > 
> > Yeah, you have to switch to using static convenience libraries...  Can
> > you try the attached patch (requires a full re-./buildconf etc)?
> 
> One good thing is that the .a files in modules/*/.libs aren't empty. Now
> I get (libtool .. --mode=link .. -o httpd .. -export-dynamic .. libauthn_file.la .. )
> 
> modules.o(.data+0x0): undefined reference to `core_module'
> modules.o(.data+0x34): undefined reference to `mpm_prefork_module'
> modules.o(.data+0x80): undefined reference to `core_module'
> modules.o(.data+0xb4): undefined reference to `mpm_prefork_module'
> modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0xc8): In function `check_password':
> /usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:129: undefined reference to `ap_pcfg_openfile'
> modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0xee):/usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:137: undefined reference to `ap_cfg_getline
> '
> modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0x11a):/usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:146: undefined reference to `ap_getword' 

What's the complete link line libtool invokes gcc with in this case?
Technically this is still violating the library handling guidelines in
the libtool manual, but I'm not sure it should fail like this. If you
add -static in the build/libraries.mk link line the rebuild libmain.la
and libprefork.la I'd guess it will work.

> I also had a bit of buildconf fun, and repeated your patch - this bit is
> even stranger than in apr though, as even a sed isn't needed..

Yeah, I fixed that on HEAD already too, thanks.

joe

Re: missing symbols for modules.o

Posted by Patrick Welche <pr...@newn.cam.ac.uk>.
On Thu, Jan 15, 2004 at 05:19:34PM +0000, Joe Orton wrote:
> On Thu, Jan 15, 2004 at 05:16:35PM +0000, Patrick Welche wrote:
> > libtool: link: libtool library `mod_authn_file.la' must begin with `lib'
> 
> Yeah, you have to switch to using static convenience libraries...  Can
> you try the attached patch (requires a full re-./buildconf etc)?

One good thing is that the .a files in modules/*/.libs aren't empty. Now
I get (libtool .. --mode=link .. -o httpd .. -export-dynamic .. libauthn_file.la .. )

modules.o(.data+0x0): undefined reference to `core_module'
modules.o(.data+0x34): undefined reference to `mpm_prefork_module'
modules.o(.data+0x80): undefined reference to `core_module'
modules.o(.data+0xb4): undefined reference to `mpm_prefork_module'
modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0xc8): In function `check_password':
/usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:129: undefined reference to `ap_pcfg_openfile'
modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0xee):/usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:137: undefined reference to `ap_cfg_getline
'
modules/aaa/.libs/libauthn_file.a(mod_authn_file.o)(.text+0x11a):/usr/src/local/httpd-2.0/modules/aaa/mod_authn_file.c:146: undefined reference to `ap_getword' 


I also had a bit of buildconf fun, and repeated your patch - this bit is
even stranger than in apr though, as even a sed isn't needed..

Cheers,

Patrick

Re: missing symbols for modules.o

Posted by Joe Orton <jo...@redhat.com>.
On Thu, Jan 15, 2004 at 05:16:35PM +0000, Patrick Welche wrote:
> On Thu, Jan 15, 2004 at 03:24:37PM +0000, Joe Orton wrote:
> > On Thu, Jan 15, 2004 at 03:04:37PM +0000, Patrick Welche wrote:
> > > modules.o(.data+0x4): undefined reference to `authn_file_module'
> > > ...
> > > 
> > > Have any of you seen this? My first encounter with this starts at:
> > > 
> > > http://mail.gnu.org/archive/html/libtool/2003-11/msg00120.html
> > 
> > If you remove the "-module" from MOD_LINK in build/rules.mk{,in} as Gary
> > suggests, then rebuild everything, does that help?  It clearly shouldn't
> > be there in the first place.
> 
> Then I get
> 
> /usr/src/local/httpd-2.0/srclib/apr/libtool --silent --mode=link gcc -g -O2 -pthread    -L/usr/src/local/httpd-2.0/srclib/apr-util/xml/expat/lib   -o mod_authn_file.la mod_authn_file.lo
> libtool: link: libtool library `mod_authn_file.la' must begin with `lib'
> 
> (I remember being stumped here before.. :( )

Yeah, you have to switch to using static convenience libraries...  Can
you try the attached patch (requires a full re-./buildconf etc)?

joe


Re: missing symbols for modules.o

Posted by Patrick Welche <pr...@newn.cam.ac.uk>.
On Thu, Jan 15, 2004 at 03:24:37PM +0000, Joe Orton wrote:
> On Thu, Jan 15, 2004 at 03:04:37PM +0000, Patrick Welche wrote:
> > modules.o(.data+0x4): undefined reference to `authn_file_module'
> > ...
> > 
> > Have any of you seen this? My first encounter with this starts at:
> > 
> > http://mail.gnu.org/archive/html/libtool/2003-11/msg00120.html
> 
> If you remove the "-module" from MOD_LINK in build/rules.mk{,in} as Gary
> suggests, then rebuild everything, does that help?  It clearly shouldn't
> be there in the first place.

Then I get

/usr/src/local/httpd-2.0/srclib/apr/libtool --silent --mode=link gcc -g -O2 -pthread    -L/usr/src/local/httpd-2.0/srclib/apr-util/xml/expat/lib   -o mod_authn_file.la mod_authn_file.lo
libtool: link: libtool library `mod_authn_file.la' must begin with `lib'

(I remember being stumped here before.. :( )

Cheers,

Patrick

Re: missing symbols for modules.o

Posted by Joe Orton <jo...@redhat.com>.
On Thu, Jan 15, 2004 at 03:04:37PM +0000, Patrick Welche wrote:
> Essentially a build of httpd-cvs on NetBSD-1.6ZG/i386, autoconf 2.59, cvs
> libtool, gcc 3.3.2, goes fine until the final link to -o httpd:
> 
> /usr/lib/crt0.o(.text+0x86): In function `___start':
> : undefined reference to `main'
> modules.o(.data+0x0): undefined reference to `core_module'
> modules.o(.data+0x4): undefined reference to `authn_file_module'
> modules.o(.data+0x8): undefined reference to `authn_default_module'
> ...
> 
> Have any of you seen this? My first encounter with this starts at:
> 
> http://mail.gnu.org/archive/html/libtool/2003-11/msg00120.html

If you remove the "-module" from MOD_LINK in build/rules.mk{,in} as Gary
suggests, then rebuild everything, does that help?  It clearly shouldn't
be there in the first place.

joe