]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-cross-intermediate: Ensure we move the libraries from the correct location
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 28 Mar 2012 11:13:23 +0000 (11:13 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 28 Mar 2012 15:52:57 +0000 (16:52 +0100)
This fixes multilib issues if you try for example to use a BASELIB of /lib32
which wouldn't work without this change since the compiler install location
is taken from gcc -print-multi-os-directory which can still turn out to be
"/lib".

The reason is that a 32 bit gcc has no multilib code enabled and will always
return "." as that value rather than "../${base_libdir}" which our changes
to gcc enable and return in 64 bit mode.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/gcc/gcc-cross-intermediate.inc

index ea105e6eb0e0e952d55ab002030bc5af72acc770..316a7647ecd6341b0e416d2c6e4b010901d6d3b9 100644 (file)
@@ -37,7 +37,8 @@ do_compile () {
 do_install () {
        oe_runmake 'DESTDIR=${D}' install
        install -d ${D}${target_base_libdir}/
-       mv ${D}${exec_prefix}/${TARGET_SYS}/${baselib}/* ${D}${target_base_libdir}/
+       osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc -print-multi-os-directory`
+       mv ${D}${exec_prefix}/${TARGET_SYS}/lib/$osdir/* ${D}${target_base_libdir}/
 
        # We don't really need this (here shares/ contains man/, info/, locale/).
        rm -rf ${D}${datadir}/