From 33ee4079a242275ef53be12de6b1e9115096b878 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 24 Jul 2010 01:07:54 +0100 Subject: [PATCH] binutils: Add native version and tweak Enable use of BBCLASSEXTEND to generate a native verison of binutils for the libiberty, libbfd and libopcodes libs. Also stop installing useless libs in the cross-canadian recipe. Partially based on a patch by Mark Hatle . Signed-off-by: Richard Purdie --- .../binutils/binutils-cross-canadian.inc | 10 ++++---- meta/packages/binutils/binutils.inc | 24 +++++++++++++++++++ meta/packages/binutils/binutils_2.20.1.bb | 2 ++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/meta/packages/binutils/binutils-cross-canadian.inc b/meta/packages/binutils/binutils-cross-canadian.inc index 23dfa161eb..04fa6e2de0 100644 --- a/meta/packages/binutils/binutils-cross-canadian.inc +++ b/meta/packages/binutils/binutils-cross-canadian.inc @@ -13,8 +13,10 @@ do_install () { ln -sf "${bindir}/`basename $l`" "${D}${prefix}/${TARGET_SYS}/bin/`basename $l | sed -e 's,${TARGET_PREFIX},,'`" done - # Install the libiberty header - install -d ${D}${includedir} - install -m 644 ${S}/include/ansidecl.h ${D}${includedir} - install -m 644 ${S}/include/libiberty.h ${D}${includedir} + # We're not interested in the libs or headers, these would come from the + # nativesdk or target version of the binutils recipe + rm -f ${D}${libdir}/libbfd* + rm -f ${D}${libdir}/libiberty* + rm -f ${D}${libdir}/libopcodes* + rm -f ${D}${includedir}/*.h } diff --git a/meta/packages/binutils/binutils.inc b/meta/packages/binutils/binutils.inc index 98ddbcfdd2..89c952b1c1 100644 --- a/meta/packages/binutils/binutils.inc +++ b/meta/packages/binutils/binutils.inc @@ -39,8 +39,11 @@ FILES_${PN}-symlinks = " \ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \ + --enable-install-libbfd \ --enable-shared" +EXTRA_OECONF_virtclass-native = "--enable-target=all --enable-64-bit-bfd --enable-install-libbfd" + # This is necessary due to a bug in the binutils Makefiles # EXTRA_OEMAKE = "configure-build-libiberty all" @@ -108,6 +111,27 @@ do_install () { rm ${D}${bindir}/ar ${D}${bindir}/strings } +do_install_virtclass-native () { + autotools_do_install + + # Install the libiberty header + install -d ${D}${includedir} + install -m 644 ${S}/include/ansidecl.h ${D}${includedir} + install -m 644 ${S}/include/libiberty.h ${D}${includedir} + + # We only want libiberty, libbfd and libopcodes + rm -rf ${D}${bindir} + rm -rf ${D}${prefix}/${TARGET_SYS} + rm -rf ${D}${prefix}/lib/ldscripts + rm -rf ${D}${prefix}/share/info + rm -rf ${D}${prefix}/share/locale + rm -rf ${D}${prefix}/share/man + rmdir ${D}${prefix}/share || : + rmdir ${D}/${libdir}/gcc-lib || : + rmdir ${D}/${libdir}64/gcc-lib || : + rmdir ${D}/${libdir} || : + rmdir ${D}/${libdir}64 || : +} pkg_postinst_${PN}-symlinks () { update-alternatives --install ${bindir}/ar ar ${TARGET_SYS}-ar 100 diff --git a/meta/packages/binutils/binutils_2.20.1.bb b/meta/packages/binutils/binutils_2.20.1.bb index 3197b5efb3..a533bd8bb0 100644 --- a/meta/packages/binutils/binutils_2.20.1.bb +++ b/meta/packages/binutils/binutils_2.20.1.bb @@ -31,3 +31,5 @@ SRC_URI = "\ SRC_URI += "\ file://binutils-2.16.1-e300c2c3.patch \ " + +BBCLASSEXTEND = "native"