This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: V3 vs. AIX


On Feb  5, 2001, David Edelsohn <dje@watson.ibm.com> wrote:

> 	I think the main point is that libtool adopts the behavior that
> most GNU/Linux developers expect: undefined symbols are okay at link-edit
> time.  Regardless of whether libtool is using AIX's SysV mode or the
> traditional AIX shared library mode, it needs to follow that assumption.
> If V3 wants to link with -no-undefined, that would help track down these
> problems, but the current philosophy is the programmer needs to request
> that pedantic behavior explicitly.

Right.  IIRC, the only three systems that require shared libraries to
be complete by default are MS-Windows, BeOS and AIX.  That's hardly a
majority, and, apparently, libtool standardized on the behavior that
would be the least surprising on the majority of the OSs.

Also keep in mind that libtool is not only about creating shared
libraries.  It's about creating libraries in general, static or
shared.  And I don't know of any system that requires static libraries
to be complete.

So, if you want libtool to verify that a library is complete, you must
use -no-undefined.  On systems that really don't support incomplete
shared libraries, such as MS-Windows and old versions of BeOS, libtool
will only create a shared library if -no-undefined is given;
otherwise, it will fallback to a static library.

This seems like the sanest way to offer a consistent
library-construction interface across multiple operating systems, each
one with its weirdnesses in shared-library support.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]