Re: cryptic libtool error message

Date view Thread view Subject view Author view

From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Tue Jan 26 1999 - 21:33:19 EST


On Jan 27, 1999, Godmar Back <gback@cs.utah.edu> wrote:

>> that selectively drop libraries, or (after my last patch) that the
>> full list of dependencies has been dropped, in the mechanism used for

> Call me dumb, but you point out where in the following jumbolog
> it says the list of dependencies that could not be satisfied?

The `after my last patch' sentence intended to mean that it would only
print this message after I updated Kaffe's libtool suite, but that it
was currently modified in the libtool CVS tree to print:

*** Warning: inter-library dependencies are not known to be supported.
*** All declared inter-library dependencies are being dropped.

> Secondly, what exactly does it mean for a system to support "inter-library
> dependencies"?

There are various levels of support to inter-library dependencies.
The main point is to be able to know whether it is possible specify a
dependency library in the link command of a shared library, and if
this will cause the dependency library to be implicitly
opened/dlopened whenever the dependent library is.

Some platforms can do that with with static (by copying of imported
symbols) and shared (through dynamic dependency) libraries. Some
require the dependency library to be shared; others don't require
this, but will silently copy unusable (non-PIC) parts of static
libraries into a shared library, and crash only at run-time. Some
will only support one level of inter-library dependencies (i.e., if
b.so depends on c.so and a.so is linked with b.so, c.so won't be
loaded), and some just don't support inter-library dependencies at
all. More details can be found at
http://www.gnu.org/software/libtool/deplibs.html

libtool hides all this complexity, but since i.-l.d. haven't been
ported to all platforms yet, sometimes it makes conservative
assumptions about the features of the system. FreeBSD >1 with
a.out-style libraries is one of the platforms that is marked with
deplibs_check_method=unknown, that means that we don't really know
whether inter-library dependencies are supported. If we knew they
were not, we'd have used `=none'. If they were supported, we'd use
some of the supported inter-library dependency checking mechanisms
such as pass_all, file_magic* or test_compile. Details about each
different i.-l.d. checking mechanism can be found in the libtool
manual.

-- 
Alexandre Oliva  http://www.dcc.unicamp.br/~oliva  aoliva@{acm.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Universidade Estadual de Campinas, SP, Brasil


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:49 EDT