cons-discuss
[Top][All Lists]
Advanced

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

Help needed in Debugging dependencies


From: Zachary Deretsky
Subject: Help needed in Debugging dependencies
Date: Tue, 13 Mar 2001 18:48:09 -0800

I am fighting the following problem:

I am building shared objects or executables linked with other shared
libraries.

-d flag shows that cons checks dependency only on the first shared library
specified with -l flags. Then cons calls the linker, but the other shared
objects down on the command line have not been buit yet and linker croaks. I
belive cons has a bug in this area.

To proceed I explicitly call the Depends method and make my shared
object/executable depend on the INSTALLED versions of other libraries.

That is, if I have '-lautils -lstg' on the link line then I add
$mycons->Depends("autest", ("$LIB/libautils.so", "$LIB/libstg.so")) call.

This way cons builds everything, but on subsequent invocations it rebuilds
libraries again.
I suspect there is some thrashing between libraries in the build and install
areas.

How can I debug this?


> I think that most, if not all, problems of this nature come down to
> Cons believing that a file is a source file even though it is actually
> derived somehow, explicitly or implicitly, in the process of a build.
> This could be for various reasons (multiple names for files, hidden
> circularities, explicit code to touch files, etc.). There are two
> things that could be done that would make these easy to find:
>
> 1. Patch -d to show the signature of each file. Then you can
> figure out
> which source files changed by simply diffing the output from two runs.
> I'll bet you a nickel that this simple change would pinpoint Eric's
> problem.
>


It is really vital for using cons to be able to examine all the info upon
which it makes decisions. It would be sufficient if a (reasonably sorted)
dump goes into a side file so that diff is possible.
Does anyone have patches along the line Bob suggests?

Thanks, Zach






reply via email to

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