libtool
[Top][All Lists]
Advanced

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

Re: how to use circular dependencies


From: tom fogal
Subject: Re: how to use circular dependencies
Date: Wed, 10 Aug 2005 10:58:50 -0400

 <address@hidden>Ralf Wildenhues writes:
>Hi Tom,
>
>Sorry for the high response latency.  I saw your post on the automake

Oh, no worries.

>list.  From your response below (you stated that you did not need
>libtool after all),  I gathered that this bug report is not so urgent
>resp. that without using libtool things would work for you.  More below.

Well yes and no =). The post I made on the this list a little while
back was for a work project, and I eventually found I didn't really
need libtool and worked around it that way. Now I'm trying with a
different, personal project that happens to have circular dependencies
too, but theres no way I can avoid circular dependencies here =)

>* tom fogal wrote on Mon, Jul 11, 2005 at 10:24:34PM CEST:
>>  <address@hidden>Ralf Wildenhues writes:
>> >* tom fogal wrote on Fri, Jul 08, 2005 at 08:14:51PM CEST:
>> >> Hi all, I'm trying to get libtool to link a program that depends on a
>> >> circular list of static (libtool) libraries.
>> >> 
>> >> I'm using a command line like:
>*snip*
>> >> unfortunately this ends up not working because libtool is
>> >> removing/reordering some of the libraries:
>> >
>> >I presume this is because the libraries have interdependencies listed in
>> >the respective .la files.
>> 
>> erm.. hopefully? This is all an autoconf/automake generated thing; it
>> appears I was doing what are called 'libtool convenience libraries'. I
>> simply pulled out + posted the line that caused problems.
>
>OK.

<snip - how one of the libraries is linked (they are all similar)>

>I don't understand exactly what you mean by this.
>Do you have circular dependencies in shared libraries, in static
>libraries, or in convenience libraries (or a combination of these)?

If I understand what a convenience library is correctly (static library
that doesnt get installed), then both these projects are/were stuck
with circular dependencies in convenience libraries only.

>> The line I just gave above is from me changing one of the Makefile.ams
>> to use libtool again.
>> 
>> The relevant Makefile.am snippets are:
>> 
>> # old way -- using libtool
>> noinst_LTLIBRARIES=libSPPdbg.la
>> libSPPdbg_la_SOURCES= \
>>       dbg_basics.f \
>*snip*
>> 
>> address@hidden@lib/libSPPstrings.la
>                     ^^
>I believe there is a slash (/) missing here.

Its been too long for my little brain to remember clearly, but I
vaguely remember having that slash there and seeing an extra / during
builds. The build didn't seem to care about it, but it was
aesthetically displeasing to me...
Anyway let me verify that before you quote me on it =)

>> The "new way" is the same but s/LTLIBRARIES/LIBRARIES/ and s/la/a/. All
>> the libaries are (were) built in this same manner.
>
>*snip*

<snip>

>> Well if theres more I can do to help in building a test case, just let
>> me know / ask.
>
>It would save us some work if you could create a small/minimal test case
>project which exhibits your failure.  I can't guarantee a quick fix
>though, I haven't delved into the deplibs code for a while and it's
>quite intricate.

Okay. Would it suffice if I made a minimal project that demonstrates
the behavior? I'm not sure I completely understand the libtool tests,
but it seems there is a series of sub-projects that are run by shell
scripts in the tests/ directory...

Thanks for all your help!

-tom




reply via email to

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