This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: FW: I hate to ask this question (.la files and depends)
- From: Michael Matz <matz at kde dot org>
- To: "James A. Cleland" <jcleland at jamescleland dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Fri, 1 Mar 2002 14:43:30 +0100 (MET)
- Subject: Re: FW: I hate to ask this question (.la files and depends)
On Wed, 27 Feb 2002, James A. Cleland wrote:
> Here's what my /usr/lib/libstdc++.la depend line looks like:
>
> # Libraries that this one depends upon.
> dependency_libs=' -L/usr/local/src/gcc-build/i686-pc-linux-gnu/libstdc++-v3/
> src -L/usr/local/src/gcc-build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -lm
> -lm -lm -L/usr/local/src/gcc-build/gcc -L/usr/lib/gcc-lib/i686-pc-linux-gnu/
> 3.0.3 -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.3/../../.. -lgcc_s -lgcc -lc
> -lgcc_s -lgcc -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc'
Yes, that's the initial cause, that also all later libs depending on
libstdc++.la (or even just libsupc++) contains more and more -lgcc_s's.
I once explained why this is so (it's a combination of a bug and a
deficiency in libtool) in (I believe) great detail on one of the libtool
mailing lists. Search some archives.
> I have two, rather obvious questions.
>
> 1.) What can I get rid of in here besides the build tree dirs? What about
> the /usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.3/../../.. which could just as
> easily read /usr/lib?
The -L's refering to the builddir are bogus (i.e. it's a bug in libtool
adding them, or better not removing them in the to-be-installed version of
the .la file (with .lai suffix). I know that some sooner version of the
ml-branch of libtool were not having this bug).
> What files should I be correcting (if any) besides libstdc++.la?
Basically it should be enough to fix libsupc++.la, libstdc++.la, and then
relink all dependend libs. Maybe also manual fixing for all other .la's
built by gcc's build process is needed (i.e. libgcj and so on).
> 2.) I also see this alot:
> libtool: link: warning:
> `/usr/lib/gcc-lib/i686-pc-linux-gnu/3.0.3/../../../libstdc++.la' seems to be
> moved
> What does this mean?
libtool gives that message, when the "libdir" entry from the installed .la
file and the actual path where that .la file is found (when searching for
it as a dependend lib for creating another lib or program) do not agree.
Usually that can only happen if you move the .la files by hand to another
place after installing them. But that multiple '../../' above might also
reveal some bug in forming that "libdir=" entry (by not canonicalizing
that path).
Ciao,
Michael.