summaryrefslogtreecommitdiff
path: root/meta/packages/binutils
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-07-24 01:07:54 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-07-24 01:07:54 +0100
commit33ee4079a242275ef53be12de6b1e9115096b878 (patch)
tree4eb4e067298dd25b6f0fb860e0ae2c56c3937463 /meta/packages/binutils
parent8b3f94e27d5747f99e13c4fbe9e30375c185092f (diff)
downloadopenembedded-core-33ee4079a242275ef53be12de6b1e9115096b878.tar.gz
openembedded-core-33ee4079a242275ef53be12de6b1e9115096b878.tar.bz2
openembedded-core-33ee4079a242275ef53be12de6b1e9115096b878.zip
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 <mhatle@windriver.com>. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/packages/binutils')
-rw-r--r--meta/packages/binutils/binutils-cross-canadian.inc10
-rw-r--r--meta/packages/binutils/binutils.inc24
-rw-r--r--meta/packages/binutils/binutils_2.20.1.bb2
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"