Cross compilation only!!! After crosscompiling a package its la file is installed in the lib directory with BUGGED information the libdir ALWAYS points to '/usr/lib'. If some package links against .so files (and not against the 'old' .a files) it fails to find so libraries because it searches on the BUILD not HOST! This can be fixed with a simple sed in the ebuild that requires the .so (even if this is curing the illness not the reason) but the sed for the 2nd problem of the la files is more complex - dependency_libs sometimes contains a full path to a library, sometimes not, sometimes several (e.g. libfusion.la). Better would be: let the installing ebuild fix the la file not the requiering. Reproducible: Always Steps to Reproduce: 1. open ANY .la file in the /usr/your-arch-tripplet/usr/lib folder 2. search for libdir Actual Results: libdir is wrong dependency_libs often is wrong Expected Results: libdir is correct dependency_libs is correct This is the reason why most X11 libs fail to crosscompile
What are you using for your crosscompile environment? crossdev?
I was using using sys-devel/crossdev-0.9.19 The cross-tool-chains have been setup with: USE="-* unicode" CFLAGS="-O -pipe" CXXFLAGS="-O -pipe" LD_FLAGS="" crossdev --b 2.16.91.0.6-r1 --k 2.4.36 --l 2.3.6-r6 --g 3.4.6-r2 -t powerpc-kernel24-linux-gnu -v and USE="-* unicode" CFLAGS="-O -pipe" CXXFLAGS="-O -pipe" LD_FLAGS="" crossdev powerpc-kernel26-linux-gnu The CFLAGS and CXXFLAGS have been used for compiling of packages also. The use-flags have been icu and unicode and some non-global flags. Sorry to have not more info but i wiped the cross-tool-chains from my pc after being done with the project.
no, the .la files are perfectly correct. nothing in the sysroot should know that it's in the sysroot or refer to it as such. presumably you're complaining that linking things with libtool often turn around and look at paths in your /. that is a limitation in libtool and is being handled at Bug 262298. *** This bug has been marked as a duplicate of bug 262298 ***