libtool
[Top][All Lists]
Advanced

[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...



reply via email to

[Prev in Thread] Current Thread [Next in Thread]