libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: static/shared libraries on AIX


From: libtool
Subject: Re: static/shared libraries on AIX
Date: Wed, 25 Apr 2001 23:37:52 -0500
User-agent: Mutt/1.1.12i

On Tue, Apr 17, 2001 at 02:51:08AM +0100, Gary V. Vaughan wrote:
> > AIX by default wants it's shared libraries called lib<name>.a.
> > So libltdl.a is created (as a symlink to libltdl.so.3.0.0).
> > The Makefile then wants to create a non-shared library also called
> > libltdl.a. This predictably fails as follows:
> > ar cru .libs/libltdl.a  ltdl.o
> > ar: 0707-108 File .libs/libltdl.a is not an archive file.
> 
> AIX is fast catching Ultrix in my league table of `most gratuitously 
> different Unix'...
> 
> > My changes get around this problem in two ways:
> >
> > - When building libtool with run-time-linking enabled, we no longer need
> >   to name our shared libraries lib<name>.a.  lib<name>.so is used instead,
> >   so the non-shared libltdl.a can be created without any collision.
> >
> > - When building libtool without run-time-linking, my changes do still
> > create a lib<name>.a.  However, it is an actual archive containing the
> > shared object (just like the quirky way the rest of AIX does it).
> >   What you end up with is a libltdl.a that contains both the shared and the
> >   non-shared object.  This is not really what was intended, and would
> > likely cause problems if you ever really needed to use the non-shared
> > object, but for the most part it seems to work.  The only other thing I can
> > think to do is not bulid the non-shared object in this case.

Can we decide to:
  1. On AIX systems that support run-time-linking, make it the
     *default* so lib<name>.a is "static" and lib<name>.so is
     shared. With this, "-brtl" would be "inserted" automatically
     into the compile/link phases.
  2. On AIX systems that do not support run-time-linking, support
     only shared libraries (so, lib<name>.a is shared and there is
     no lib<name>.so).

I'm trying to fix the remaining 'make check' failures on AIX and
knowing what to do about shared/static would certainly help. While the
above doesn't expose the full "robustness" of the AIX linker, methinks
it good enough.

-- 
albert chin (address@hidden)



reply via email to

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