Bruce Dubbs wrote:
> Bryan Kadzban wrote:
>> Bruce Dubbs wrote:
>>> Bryan Kadzban wrote:
>>>> Bruce Dubbs wrote:
>>>>> Seriously, I don't believe in multiboot.  If I can't build a 
>>>>> 64-bit version of a package, then I don't need it.  I should
>>>>> be able to put libraries in the directories I want.
>>>> Well, you are, of course, but this appears to be nothing more
>>>> than fallout from violating the assumptions of all the various
>>>> other packages -- in this case, that a 64-bit-mode link
>>>> requires the .la files from /usr/lib64.
>>> Then, as you have said, it should look there first.
>> Well, it does look there first; that's what's causing the warning 
>> message.  You installed the libraries to /usr/lib (since the
>> default --libdir is ${prefix}/lib), but libtool found them in
>> /usr/lib64.  :-)
> 
> But if it really looks in /usr/lib64, it will find the files.  It
> only should look in /usr/lib if it can't find them in /usr/lib64.
> The files don't get moved.  If it thinks it should be in /usr/lib,
> then it will find them there too.

But finding the files isn't the problem.  :-)

After libtool finds the files, it compares the directory part of the
filename that it found, against the libdir='foo' line in the file.  A
mismatch causes libtool to warn about the files having been moved.
(Because it doesn't know that the one path is a symlink to the other,
although I suppose it could be taught.  It thinks you installed to
/usr/lib, then moved the .la to /usr/lib64 manually.)

Installing the .la file with --libdir=${prefix}/lib (either explicitly
via ./configure or by default since that's the default) will put
libdir='/usr/lib' into the .la file at "libtool --mode=install" time.
Then when libtool finds that same file later, via the /usr/lib64 path,
the directory part of the filename will not match the libdir stored in
the file, and you get the warning.

The only way around this is to force libtool to use the same directory
for finding libs as you configured the various library packages to
install to (either /usr/lib or /usr/lib64 for both).  Or remove the
warning, or remove the .la files if you're sure you don't need them.

(For the record, the reason the warning exists is, as far as I can tell,
only because of dependent libraries.  Those are stored in the .la file
as well, as absolute paths.  So if the .la has been moved without being
edited, libtool will still go look for the dependent .la files in their
original paths.  It might or might not be able to find them, and they
might or might not refer to .so files for the correct architecture.
This isn't an issue in your case, but it is in general.)

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to