diff options
author | Roman I Khimov <khimov@altell.ru> | 2009-04-15 15:54:48 +0400 |
---|---|---|
committer | Roman I Khimov <khimov@altell.ru> | 2009-08-18 23:24:02 +0400 |
commit | 468e56e2f104f295484c2921fad84bcf90cc3e64 (patch) | |
tree | 36a7982c0976929155b92b2309ed648e2377dcc6 | |
parent | 4ab31c319f2adbb4e491bac9107891ed77b897e2 (diff) | |
download | openembedded-468e56e2f104f295484c2921fad84bcf90cc3e64.tar.gz |
gcc-cross: add multilib overrides
-rw-r--r-- | recipes/gcc/gcc-cross.inc | 2 | ||||
-rw-r--r-- | recipes/gcc/gcc-package-cross.inc | 35 |
2 files changed, 37 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-cross.inc b/recipes/gcc/gcc-cross.inc index 3fa6f61f0d..3c8438b190 100644 --- a/recipes/gcc/gcc-cross.inc +++ b/recipes/gcc/gcc-cross.inc @@ -9,4 +9,6 @@ target_base_libdir := "${base_libdir}" inherit cross DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc" +DEPENDS_multilib = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc virtual/${TARGET_SYS_MULTILIB}-libc-for-gcc" PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" +PROVIDES_multilib = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ virtual/${TARGET_SYS_MULTILIB}gcc virtual/${TARGET_SYS_MULTILIB}g++" diff --git a/recipes/gcc/gcc-package-cross.inc b/recipes/gcc/gcc-package-cross.inc index fa1f47f51a..46ce2f2b80 100644 --- a/recipes/gcc/gcc-package-cross.inc +++ b/recipes/gcc/gcc-package-cross.inc @@ -15,6 +15,13 @@ FILES_libgcc = "${target_base_libdir}/libgcc_s.so.1" FILES_libstdc++ = "${target_libdir}/libstdc++.so.*" +PACKAGES_append_multilib = " libgcc-${ARCH_MULTILIB} libssp-${ARCH_MULTILIB} libstdc++-${ARCH_MULTILIB} libg2c-${ARCH_MULTILIB} libgfortran-${ARCH_MULTILIB}" +FILES_libgcc-${ARCH_MULTILIB} = "${layout_base_prefix}/${LIB_MULTILIB}/libgcc_s.so.1" +FILES_libssp-${ARCH_MULTILIB} = "${layout_exec_prefix}/${LIB_MULTILIB}/libssp.so.*" +FILES_libstdc++-${ARCH_MULTILIB} = "${layout_exec_prefix}/${LIB_MULTILIB}/libstdc++.so.*" +FILES_libg2c-${ARCH_MULTILIB} = "${layout_exec_prefix}/${LIB_MULTILIB}/libg2c.so.*" +FILES_libgfortran-${ARCH_MULTILIB} = "${layout_exec_prefix}/${LIB_MULTILIB}/libgfortran.so.*" + do_install () { oe_runmake 'DESTDIR=${D}' install @@ -73,3 +80,31 @@ do_install () { cd $currdir fi } + +do_install_append_multilib () { + mkdir -p ${D}${base_multilibdir} + if [ -f ${D}${base_multilibdir}/libgcc_s.so.? ]; then + # Already in the right location + : + elif [ -f ${D}${prefix}/${LIB_MULTILIB}/libgcc_s.so.? ]; then + mv -f ${D}${prefix}/${LIB_MULTILIB}/libgcc_s.so* ${D}${base_multilibdir} || true + else + mv -f ${D}${prefix}/*/${LIB_MULTILIB}/libgcc_s.so* ${D}${base_multilibdir} || true + fi + + mkdir -p ${D}${multilibdir} + + mv -f ${D}${prefix}/*/${LIB_MULTILIB}/libstdc++.so* ${D}${multilibdir} || true + mv -f ${D}${prefix}/*/${LIB_MULTILIB}/libg2c.so* ${D}${multilibdir} || true + mv -f ${D}${prefix}/*/${LIB_MULTILIB}/libgfortran*.so* ${D}${multilibdir} || true + mv -f ${D}${prefix}/*/${LIB_MULTILIB}/libssp*.so* ${D}${multilibdir} || true + + # Manually run the target stripper since we won't get it run by + # the packaging. + if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then + ${TARGET_PREFIX}strip ${D}${multilibdir}/libstdc++.so.* + ${TARGET_PREFIX}strip ${D}${multilibdir}/libg2c.so.* || true + ${TARGET_PREFIX}strip ${D}${base_multilibdir}/libgcc_s.so.* || true + ${TARGET_PREFIX}strip ${D}${multilibdir}/libgfortran*.so* || true + fi +} |