[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
libtool, Apache 2.0, AIX
From: |
Jeff Trawick |
Subject: |
libtool, Apache 2.0, AIX |
Date: |
30 Nov 2001 13:57:11 -0500 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
Apache 2.0 uses libtool and has for some time now.
On AIX we're trying to use libtool 1.4.2 but are running into some
issues that perhaps someone can shed some light on.
background info:
Apache 2.0 uses code in libapr and libaprutil, implicitly loaded
with httpd.
As always, Apache 2.0 does dlopen() on DSOs configured in
httpd.conf. These DSOs reference symbols in the main executable
(httpd), libapr, libaprutil, and anything else needed by the DSO.
libtool+AIX behaviors which we don't understand:
(Some of this we can work-around with AIX-specific logic in our own
build. Some of this we might be able to patch into libtool. For all
of this, it would be useful if the suggested behavior is inappropriate
for some reason.)
1) after building our shared libraries, libtool is putting them in an
archive file and that archive file is what gets installed... why
is this? while this works on AIX, it is non-intuitive... people
expect foo.so, particularly with Apache DSOs like mod_include...
currently on AIX I need to use the Apache syntax
LoadModule mod_foo libfoo.a(libfoo.so.0)
and turn on the dlopen() flag that allows members to be loaded.
While the libfoo isn't a major problem for libraries used
implicitly by httpd (libapr and libaprutil), it is messy for DSOs
because of the Apache configuration file syntax implications.
So... really important for us to avoid the archive/member thing for
Apache DSOs. nice for us to avoid the archive/member thing for
libapr/libaprutil
It seems to me that doing run-time linking will trick libtool into
skipping the archive/member thing but we don't want run-time
linking.
2) export file format
libtool seems to be building a nice export file on AIX, but it is
missing a small detail which would allow it to be used as an
import file
remember that on AIX, a shared library which needs symbols from
another shared library must use import files to tell the loader
which symbols are expected from which shared libraries...
Apache builds libaprutil.a(libaprutil.so) which depends on
libapr.a(libapr.so). It would be nice if the export file for
libapr had "#! libapr.a(libapr.so)" at the top so it can be used as
an import file
3) implicitly specifying import files
(closely related to #2 above)
libaprutil depends on libapr
when I build libaprutil it would be nice for the libapr
import/export file to be specified by libtool; it should be able to
know that I'm building a shared library (libaprutil) which depends
on another shared library (libapr)
currently, libaprutil is not usable because the dynamic linker
doesn't know how to resolve the symbols
4) it would be nice to get libtool-generated export files for main
executables... libtool has the nice logic to generate the export
files... I don't know how to get one generated for the main
executable (e.g., .libs/httpd.exp to go with .libs/httpd)
we do have logic to generate our own export files, but if we get
libtool to implicitly use import files libtool would want to use a
file it had generated
Thanks and best wishes,
Jeff
--
Jeff Trawick | address@hidden | PGP public key at web site:
http://www.geocities.com/SiliconValley/Park/9289/
Born in Roswell... married an alien...
- libtool, Apache 2.0, AIX,
Jeff Trawick <=
- Re: libtool, Apache 2.0, AIX, Marc Stephenson, 2001/11/30
- Re: libtool, Apache 2.0, AIX, Jeff Trawick, 2001/11/30
- Re: libtool, Apache 2.0, AIX, Robert Boehne, 2001/11/30
- Re: libtool, Apache 2.0, AIX, Jeff Trawick, 2001/11/30
- Re: libtool, Apache 2.0, AIX, Jeff Trawick, 2001/11/30