Re: another problem

Date view Thread view Subject view Author view

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


Date view Thread view Subject view Author view

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