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.)
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