From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Wed Jan 20 1999 - 02:42:06 EST
On Jan 20, 1999, Godmar Back <gback@cs.utah.edu> wrote:
> It's just a convenience library, which means that anything linked with
> it will get *all* its object code. Think of it as a macro that
> expands to the list of all object files in it.
> seemed to imply something else, namely that anything linked with it
> will get all its object code.
This is correct. The point is that *libkaffevm* is linked with
libkthreads, not Kaffe. Then, Kaffe is linked with libkaffevm, but
not with libkthreads.
> In truth, it only gets the object code that is needed to resolve
> references.
Right.
>> Nope, because libkaffevm is linked with libkthreads. It is at this
>> point that libkthreads expands to the list of object files, and
>> therefore libkaffevm gets all the object files from libkaffevm.
The last word was obviously supposed to be libkthreads.
> So libtool introduces an abstraction of "linking" a library with
> another library, which means merging their object files.
There are two kinds of libraries: convenience libraries and libtool
archives. Merging occurs when you link a convenience library into
another library or another program. Conventional linking occurs when
a libtool archive is linked into a program, and when a library
(libtool archive, traditional archive or shared library) is linked
into the shared version of a libtool library. Also, when a dependency
cannot be satisfied at libtool archive linking time, this dependency
will be added whenever a program or another library is linked with it.
-- 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
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:47 EDT