[oe] [PATCH 07/11] gcc-cross: add multilib overrides
Roman I Khimov
khimov at altell.ru
Wed Apr 15 12:35:56 UTC 2009
---
recipes/gcc/gcc-cross.inc | 2 ++
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 3fa6f61..3c8438b 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 77da3fe..5ae1894 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
+}
--
1.6.2.1
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the Openembedded-devel
mailing list