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