* [PATCH 00/10] external-csl-toolchain fixes and improvements
@ 2012-01-27 17:13 Christopher Larson
2012-01-27 17:13 ` [PATCH 01/10] libc-package: fix typo in LOCALETREESRC default value Christopher Larson
` (11 more replies)
0 siblings, 12 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
- Fixes the external-csl-toolchain and corresponding tcmode to be compatible
with current metadata (e.g. uses current providers), and ensures it works again
- Kills the arch and version specific bits, making it work fine with a number
of different versions of the CodeSourcery arm, mips, ppc, and ia32 toolchains
- Makes the packaging match up with the packaging of the internal toolchain by
leveraging the eglibc packaging .inc and ensuring our other packages are
named correctly
- Extracts versioning information for both the recipe and emitted packages
from the external toolchain at ConfigParsed time. This code is not pretty,
largely kept as is from the Mentor internal external toolchain, but it does
work. A future commit or commits will clean that up.
I've tested with with the fall 2010, spring 2011, and fall 2011 releases, for
the qemux86, qemuarm, qemumips, and qemuppc machines. I used buildhistory to
compare the packages and image content between internal and external, ensuring
that they match up with almost no differences.
The following changes since commit fba0459da7f274ae284d36b7fdbf2f9d10a52610:
distro_tracking_fields: fix the typos in the field of maintainer. (2012-01-27 09:52:00 +0000)
are available in the git repository at:
git://github.com/kergoth/oe-core external-toolchain
Christopher Larson (10):
libc-package: fix typo in LOCALETREESRC default value
eglibc-package.inc: don't include debug files in -pic
binutils: fixes for build with an external csl toolchain
external-csl-toolchain: fix critical PATH manipulation bug
external-csl-toolchain: fixes for metadata changes
external-csl-toolchain: avoid the hardcoded version/prefix
external-csl-toolchain: support mips/ppc/arm
external-csl-toolchain: support ia32
external-csl-toolchain: leverage eglibc's packaging for more granular output
external-csl-toolchain: extract version info from the toolchain
meta/classes/libc-package.bbclass | 6 +-
meta/conf/distro/include/csl-versions.inc | 105 +++++++++++++++
meta/conf/distro/include/tcmode-external-csl.inc | 112 ++++++++++++++++
.../distro/include/tcmode-external-csl2008q3.inc | 28 ----
meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
meta/recipes-core/meta/external-csl-toolchain.bb | 140 ++++++++++++++++++++
.../meta/external-csl-toolchain_2008q3-72.bb | 64 ---------
meta/recipes-devtools/binutils/binutils.inc | 5 +-
8 files changed, 365 insertions(+), 97 deletions(-)
create mode 100644 meta/conf/distro/include/csl-versions.inc
create mode 100644 meta/conf/distro/include/tcmode-external-csl.inc
delete mode 100644 meta/conf/distro/include/tcmode-external-csl2008q3.inc
create mode 100644 meta/recipes-core/meta/external-csl-toolchain.bb
delete mode 100644 meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
Christopher Larson (10):
libc-package: fix typo in LOCALETREESRC default value
eglibc-package.inc: don't include debug files in -pic
binutils: fixes for build with an external csl toolchain
external-csl-toolchain: fix critical PATH manipulation bug
external-csl-toolchain: fixes for metadata changes
external-csl-toolchain: avoid the hardcoded version/prefix
external-csl-toolchain: support mips/ppc/arm
external-csl-toolchain: support ia32
external-csl-toolchain: leverage eglibc's packaging for more granular
output
external-csl-toolchain: extract version info from the toolchain
meta/classes/libc-package.bbclass | 6 +-
meta/conf/distro/include/csl-versions.inc | 105 +++++++++++++++
meta/conf/distro/include/tcmode-external-csl.inc | 112 ++++++++++++++++
.../distro/include/tcmode-external-csl2008q3.inc | 28 ----
meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
meta/recipes-core/meta/external-csl-toolchain.bb | 140 ++++++++++++++++++++
.../meta/external-csl-toolchain_2008q3-72.bb | 64 ---------
meta/recipes-devtools/binutils/binutils.inc | 5 +-
8 files changed, 365 insertions(+), 97 deletions(-)
create mode 100644 meta/conf/distro/include/csl-versions.inc
create mode 100644 meta/conf/distro/include/tcmode-external-csl.inc
delete mode 100644 meta/conf/distro/include/tcmode-external-csl2008q3.inc
create mode 100644 meta/recipes-core/meta/external-csl-toolchain.bb
delete mode 100644 meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
--
1.7.8.rc4
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 01/10] libc-package: fix typo in LOCALETREESRC default value
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-27 17:13 ` [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic Christopher Larson
` (10 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/classes/libc-package.bbclass | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
index 8cd5fec..440218f 100644
--- a/meta/classes/libc-package.bbclass
+++ b/meta/classes/libc-package.bbclass
@@ -80,7 +80,7 @@ rm -rf ${TMP_LOCALE}
TMP_LOCALE="/tmp/locale${libdir}/locale"
-LOCALETREESRC ?= "{PKGD}"
+LOCALETREESRC ?= "${PKGD}"
do_prep_locale_tree() {
treedir=${WORKDIR}/locale-tree
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
2012-01-27 17:13 ` [PATCH 01/10] libc-package: fix typo in LOCALETREESRC default value Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-28 20:21 ` Khem Raj
2012-01-27 17:13 ` [PATCH 03/10] binutils: fixes for build with an external csl toolchain Christopher Larson
` (9 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index e5a9b9d..870b95d 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -42,7 +42,7 @@ FILES_libcidn${PKGSUFFIX} = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.
FILES_libmemusage${PKGSUFFIX} = "${base_libdir}/libmemusage.so"
FILES_eglibc-extra-nss${PKGSUFFIX} = "${base_libdir}/libnss_*-*.so ${base_libdir}/libnss_*.so.*"
FILES_sln${PKGSUFFIX} = "/sbin/sln"
-FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/"
+FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o"
FILES_libsotruss${PKGSUFFIX} = "${libdir}/audit/sotruss-lib.so"
FILES_${PN}-dev_append += "${bindir}/rpcgen ${libdir}/*_nonshared.a \
${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal"
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 03/10] binutils: fixes for build with an external csl toolchain
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
2012-01-27 17:13 ` [PATCH 01/10] libc-package: fix typo in LOCALETREESRC default value Christopher Larson
2012-01-27 17:13 ` [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-28 20:23 ` Khem Raj
2012-01-27 17:13 ` [PATCH 04/10] external-csl-toolchain: fix critical PATH manipulation bug Christopher Larson
` (8 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/recipes-devtools/binutils/binutils.inc | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc
index 6130ab4..e343242 100644
--- a/meta/recipes-devtools/binutils/binutils.inc
+++ b/meta/recipes-devtools/binutils/binutils.inc
@@ -51,6 +51,7 @@ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
--enable-install-libbfd \
--enable-shared \
+ --disable-werror \
${@base_contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}"
EXTRA_OECONF_virtclass-native = "--enable-target=all --enable-64-bit-bfd --enable-install-libbfd"
@@ -113,11 +114,11 @@ do_install () {
cd ${D}${bindir}
# Symlinks for ease of running these on the native target
- for p in ${TARGET_SYS}-* ; do
+ for p in ${TARGET_PREFIX}* ; do
ln -sf $p `echo $p | sed -e s,${TARGET_PREFIX},,`
done
- rm ${D}${bindir}/ar ${D}${bindir}/strings
+ rm -f ${D}${bindir}/ar ${D}${bindir}/strings
oe_multilib_header bfd.h
}
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 04/10] external-csl-toolchain: fix critical PATH manipulation bug
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (2 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 03/10] binutils: fixes for build with an external csl toolchain Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-27 17:13 ` [PATCH 05/10] external-csl-toolchain: fixes for metadata changes Christopher Larson
` (7 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
.../distro/include/tcmode-external-csl2008q3.inc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/meta/conf/distro/include/tcmode-external-csl2008q3.inc b/meta/conf/distro/include/tcmode-external-csl2008q3.inc
index 93615b9..1586365 100644
--- a/meta/conf/distro/include/tcmode-external-csl2008q3.inc
+++ b/meta/conf/distro/include/tcmode-external-csl2008q3.inc
@@ -6,7 +6,7 @@ TARGET_VENDOR = "-none"
EXTERNAL_TOOLCHAIN = "/usr/local/csl/arm-2008q3"
-PATH =. ":${EXTERNAL_TOOLCHAIN}/bin:"
+PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
PREFERRED_PROVIDER_linux-libc-headers = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc = "external-csl-toolchain"
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 05/10] external-csl-toolchain: fixes for metadata changes
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (3 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 04/10] external-csl-toolchain: fix critical PATH manipulation bug Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-27 17:13 ` [PATCH 06/10] external-csl-toolchain: avoid the hardcoded version/prefix Christopher Larson
` (6 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
These allow the recipe to build again:
- add compilerlibs, g++, libgcc to the provides
- add linux-libc-headers-dev to the packages
- in libc-package, only sed the ldd.bash.in file if it exists, as the external
toolchain is using that class as well
- shift the inherit location of the libc classes, as they were overriding the
recipe's do_install
- use ?= for EXTERNAL_TOOLCHAIN, so the user can set it
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/classes/libc-package.bbclass | 4 +++-
.../distro/include/tcmode-external-csl2008q3.inc | 7 ++++++-
.../meta/external-csl-toolchain_2008q3-72.bb | 16 +++++++++-------
3 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
index 440218f..4acf91a 100644
--- a/meta/classes/libc-package.bbclass
+++ b/meta/classes/libc-package.bbclass
@@ -40,7 +40,9 @@ python __anonymous () {
OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
do_configure_prepend() {
- sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in
+ if [ -e ${S}/elf/ldd.bash.in ]; then
+ sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in
+ fi
}
diff --git a/meta/conf/distro/include/tcmode-external-csl2008q3.inc b/meta/conf/distro/include/tcmode-external-csl2008q3.inc
index 1586365..31055dc 100644
--- a/meta/conf/distro/include/tcmode-external-csl2008q3.inc
+++ b/meta/conf/distro/include/tcmode-external-csl2008q3.inc
@@ -4,22 +4,27 @@
TARGET_VENDOR = "-none"
-EXTERNAL_TOOLCHAIN = "/usr/local/csl/arm-2008q3"
+EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/arm-2008q3"
PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
PREFERRED_PROVIDER_linux-libc-headers = "external-csl-toolchain"
+PREFERRED_PROVIDER_linux-libc-headers-dev = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc-initial = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc-intermediate = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-g++ = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-binutils = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-libc-for-gcc = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-compilerlibs = "external-csl-toolchain"
+PREFERRED_PROVIDER_libgcc = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/libc = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/libintl = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/libiconv = "external-csl-toolchain"
PREFERRED_PROVIDER_glibc-thread-db = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-csl-toolchain"
+
PREFERRED_VERSION_external-csl-toolchain = "2008q3-72"
TARGET_CPPFLAGS_prepend = " -isystem${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/include "
diff --git a/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb b/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
index a874c8b..b5a3607 100644
--- a/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
@@ -1,7 +1,12 @@
+inherit libc-common
+inherit libc-package
+
INHIBIT_DEFAULT_DEPS = "1"
# License applies to this recipe code, not the toolchain itself
LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PROVIDES = "\
linux-libc-headers \
@@ -11,21 +16,22 @@ PROVIDES = "\
virtual/arm-none-linux-gnueabi-gcc-intermediate \
virtual/arm-none-linux-gnueabi-binutils \
virtual/arm-none-linux-gnueabi-libc-for-gcc \
+ virtual/arm-none-linux-gnueabi-compilerlibs \
virtual/libc \
virtual/libintl \
virtual/libiconv \
glibc-thread-db \
+ libgcc \
virtual/linux-libc-headers "
RPROVIDES = "glibc-utils libsegfault glibc-thread-db"
PACKAGES_DYNAMIC = "glibc-gconv-*"
-PR = "r1"
+PR = "r2"
#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-${PV}-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2"
SRC_URI = "file://SUPPORTED"
do_install() {
- echo "EXTERNAL_TOOLCHAIN is ${EXTERNAL_TOOLCHAIN}"
install -d ${D}${sysconfdir} ${D}${bindir} ${D}${sbindir} ${D}${base_bindir} ${D}${libdir}
install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir}
@@ -40,10 +46,7 @@ do_install() {
GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile"
-inherit libc-common
-inherit libc-package
-
-PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers"
+PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers linux-libc-headers-dev"
FILES_libgcc = "${base_libdir}/libgcc_s.so.1"
FILES_libgcc-dev = "${base_libdir}/libgcc_s.so"
FILES_libstdc++ = "${libdir}/libstdc++.so.*"
@@ -61,4 +64,3 @@ FILES_linux-libc-headers = "${includedir}/asm* \
${includedir}/sound \
${includedir}/video \
"
-
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 06/10] external-csl-toolchain: avoid the hardcoded version/prefix
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (4 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 05/10] external-csl-toolchain: fixes for metadata changes Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-27 17:13 ` [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm Christopher Larson
` (5 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
...ernal-csl2008q3.inc => tcmode-external-csl.inc} | 21 +++++++----------
...hain_2008q3-72.bb => external-csl-toolchain.bb} | 24 ++++++++++----------
2 files changed, 21 insertions(+), 24 deletions(-)
rename meta/conf/distro/include/{tcmode-external-csl2008q3.inc => tcmode-external-csl.inc} (51%)
rename meta/recipes-core/meta/{external-csl-toolchain_2008q3-72.bb => external-csl-toolchain.bb} (67%)
diff --git a/meta/conf/distro/include/tcmode-external-csl2008q3.inc b/meta/conf/distro/include/tcmode-external-csl.inc
similarity index 51%
rename from meta/conf/distro/include/tcmode-external-csl2008q3.inc
rename to meta/conf/distro/include/tcmode-external-csl.inc
index 31055dc..0af3a45 100644
--- a/meta/conf/distro/include/tcmode-external-csl2008q3.inc
+++ b/meta/conf/distro/include/tcmode-external-csl.inc
@@ -1,22 +1,22 @@
#
-# Configuration to use external CSL 2008q3-72 toolchain (ARM EABI)
+# Configuration to use external CSL toolchain
#
TARGET_VENDOR = "-none"
-EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/arm-2008q3"
+EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/${TARGET_ARCH}"
PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
PREFERRED_PROVIDER_linux-libc-headers = "external-csl-toolchain"
PREFERRED_PROVIDER_linux-libc-headers-dev = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc-initial = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-gcc-intermediate = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-g++ = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-binutils = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-libc-for-gcc = "external-csl-toolchain"
-PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-compilerlibs = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "external-csl-toolchain"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "external-csl-toolchain"
PREFERRED_PROVIDER_libgcc = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/libc = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/libintl = "external-csl-toolchain"
@@ -24,9 +24,6 @@ PREFERRED_PROVIDER_virtual/libiconv = "external-csl-toolchain"
PREFERRED_PROVIDER_glibc-thread-db = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-csl-toolchain"
-
-PREFERRED_VERSION_external-csl-toolchain = "2008q3-72"
-
TARGET_CPPFLAGS_prepend = " -isystem${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/include "
TARGET_LDFLAGS_prepend = " -L${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib -Wl,-rpath-link,${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib "
diff --git a/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb b/meta/recipes-core/meta/external-csl-toolchain.bb
similarity index 67%
rename from meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
rename to meta/recipes-core/meta/external-csl-toolchain.bb
index b5a3607..f1e5332 100644
--- a/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain.bb
@@ -10,13 +10,13 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3
PROVIDES = "\
linux-libc-headers \
- virtual/arm-none-linux-gnueabi-gcc \
- virtual/arm-none-linux-gnueabi-g++ \
- virtual/arm-none-linux-gnueabi-gcc-initial \
- virtual/arm-none-linux-gnueabi-gcc-intermediate \
- virtual/arm-none-linux-gnueabi-binutils \
- virtual/arm-none-linux-gnueabi-libc-for-gcc \
- virtual/arm-none-linux-gnueabi-compilerlibs \
+ virtual/${TARGET_PREFIX}gcc \
+ virtual/${TARGET_PREFIX}g++ \
+ virtual/${TARGET_PREFIX}gcc-initial \
+ virtual/${TARGET_PREFIX}gcc-intermediate \
+ virtual/${TARGET_PREFIX}binutils \
+ virtual/${TARGET_PREFIX}libc-for-gcc \
+ virtual/${TARGET_PREFIX}compilerlibs \
virtual/libc \
virtual/libintl \
virtual/libiconv \
@@ -27,7 +27,7 @@ RPROVIDES = "glibc-utils libsegfault glibc-thread-db"
PACKAGES_DYNAMIC = "glibc-gconv-*"
PR = "r2"
-#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-${PV}-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2"
+#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
SRC_URI = "file://SUPPORTED"
@@ -35,10 +35,10 @@ do_install() {
install -d ${D}${sysconfdir} ${D}${bindir} ${D}${sbindir} ${D}${base_bindir} ${D}${libdir}
install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir}
- cp -a ${EXTERNAL_TOOLCHAIN}/arm-none-linux-gnueabi/libc/lib/* ${D}${base_libdir}
- cp -a ${EXTERNAL_TOOLCHAIN}/arm-none-linux-gnueabi/libc/etc/* ${D}${sysconfdir}
- cp -a ${EXTERNAL_TOOLCHAIN}/arm-none-linux-gnueabi/libc/sbin/* ${D}${base_sbindir}
- cp -a ${EXTERNAL_TOOLCHAIN}/arm-none-linux-gnueabi/libc/usr/* ${D}/usr
+ cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/lib/* ${D}${base_libdir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/etc/* ${D}${sysconfdir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/sbin/* ${D}${base_sbindir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/usr/* ${D}/usr
sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libc.so
sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libpthread.so
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (5 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 06/10] external-csl-toolchain: avoid the hardcoded version/prefix Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-28 20:28 ` Khem Raj
2012-01-27 17:13 ` [PATCH 08/10] external-csl-toolchain: support ia32 Christopher Larson
` (4 subsequent siblings)
11 siblings, 1 reply; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
- Rather than adjusting TARGET_VENDOR, which results in our TARGET_SYS
matching the external toolchain, override TARGET_PREFIX to match external,
and leave TARGET_SYS alone
- Grab the optimized files out of the toolchain if available
- Create a symlink in sysroot to ensure the sysroot layout matches toolchain
expectations (optimized files in a subdir)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/conf/distro/include/tcmode-external-csl.inc | 27 +++++++++++++++++-
meta/recipes-core/meta/external-csl-toolchain.bb | 32 +++++++++++++++++-----
2 files changed, 50 insertions(+), 9 deletions(-)
diff --git a/meta/conf/distro/include/tcmode-external-csl.inc b/meta/conf/distro/include/tcmode-external-csl.inc
index 0af3a45..1d82ca1 100644
--- a/meta/conf/distro/include/tcmode-external-csl.inc
+++ b/meta/conf/distro/include/tcmode-external-csl.inc
@@ -2,12 +2,20 @@
# Configuration to use external CSL toolchain
#
-TARGET_VENDOR = "-none"
-
EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/${TARGET_ARCH}"
PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
+CSL_TARGET_SYS_powerpc = "powerpc-linux-gnu"
+CSL_TARGET_SYS_powerpc64 = "powerpc-linux-gnu"
+CSL_TARGET_SYS_arm = "arm-none-linux-gnueabi"
+CSL_TARGET_SYS_mips = "mips-linux-gnu"
+CSL_TARGET_SYS_mipsel = "mips-linux-gnu"
+CSL_TARGET_SYS_mips64 = "mips-linux-gnu"
+CSL_TARGET_SYS = "${TARGET_SYS}"
+
+TARGET_PREFIX = "${CSL_TARGET_SYS}-"
+
PREFERRED_PROVIDER_linux-libc-headers = "external-csl-toolchain"
PREFERRED_PROVIDER_linux-libc-headers-dev = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-csl-toolchain"
@@ -28,3 +36,18 @@ TARGET_CPPFLAGS_prepend = " -isystem${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/include
TARGET_LDFLAGS_prepend = " -L${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib -Wl,-rpath-link,${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib "
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
+
+# Translate to CodeSourcery's names for their optimized files in the toolchain
+def csl_target_core(d):
+ coredata = {
+ 'armv7a-vfp-neon': 'armv7-a-neon',
+ 'mips': 'mips32',
+ 'mipsel': 'el',
+ 'ppce500': 'te500v1',
+ 'ppce500mc': 'te500mc',
+ 'ppce500v2': 'te500v2',
+ 'ppce600': 'te600'
+ }
+ return coredata.get(d.getVar('TUNE_PKGARCH', True), '')
+
+CSL_TARGET_CORE = "${@csl_target_core(d)}"
diff --git a/meta/recipes-core/meta/external-csl-toolchain.bb b/meta/recipes-core/meta/external-csl-toolchain.bb
index f1e5332..37ea271 100644
--- a/meta/recipes-core/meta/external-csl-toolchain.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain.bb
@@ -25,25 +25,43 @@ PROVIDES = "\
virtual/linux-libc-headers "
RPROVIDES = "glibc-utils libsegfault glibc-thread-db"
PACKAGES_DYNAMIC = "glibc-gconv-*"
-PR = "r2"
+PR = "r3"
-#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
+#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${CSL_TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
SRC_URI = "file://SUPPORTED"
do_install() {
install -d ${D}${sysconfdir} ${D}${bindir} ${D}${sbindir} ${D}${base_bindir} ${D}${libdir}
- install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir}
+ install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir} ${D}/usr
- cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/lib/* ${D}${base_libdir}
- cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/etc/* ${D}${sysconfdir}
- cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/sbin/* ${D}${base_sbindir}
- cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/usr/* ${D}/usr
+ if [ -d ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE} ]; then
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/lib/. ${D}${base_libdir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/etc/. ${D}${sysconfdir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/sbin/. ${D}${base_sbindir}
+ if [ ! -e ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/usr/include ]; then
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/include ${D}/usr/
+ fi
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/usr/. ${D}/usr/
+ else
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/lib/. ${D}${base_libdir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/etc/. ${D}${sysconfdir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/sbin/. ${D}${base_sbindir}
+ cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/. ${D}/usr/
+ fi
sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libc.so
sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libpthread.so
}
+SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
+external_toolchain_sysroot_adjust() {
+ if [ -n "${CSL_TARGET_CORE}" ]; then
+ rm -f ${SYSROOT_DESTDIR}/${CSL_TARGET_CORE}
+ ln -s . ${SYSROOT_DESTDIR}/${CSL_TARGET_CORE}
+ fi
+}
+
GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile"
PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers linux-libc-headers-dev"
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 08/10] external-csl-toolchain: support ia32
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (6 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-27 17:13 ` [PATCH 09/10] external-csl-toolchain: leverage eglibc's packaging for more granular output Christopher Larson
` (3 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Unfortunately, the CSL ia32 toolchain has non-prefixed binaries in its bindir
(e.g. gcc, ld). To avoid this messing up our build, we avoid adding this
bindir to our PATH, and instead add symlinks to the prefixed binaries to our
staging toolchain bindir.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/conf/distro/include/tcmode-external-csl.inc | 59 +++++++++++++++++++++-
meta/recipes-core/meta/external-csl-toolchain.bb | 5 ++
2 files changed, 63 insertions(+), 1 deletions(-)
diff --git a/meta/conf/distro/include/tcmode-external-csl.inc b/meta/conf/distro/include/tcmode-external-csl.inc
index 1d82ca1..0135590 100644
--- a/meta/conf/distro/include/tcmode-external-csl.inc
+++ b/meta/conf/distro/include/tcmode-external-csl.inc
@@ -4,7 +4,8 @@
EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/${TARGET_ARCH}"
-PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
+TOOLCHAIN_PATH_ADD = "${EXTERNAL_TOOLCHAIN}/bin:"
+PATH =. "${TOOLCHAIN_PATH_ADD}"
CSL_TARGET_SYS_powerpc = "powerpc-linux-gnu"
CSL_TARGET_SYS_powerpc64 = "powerpc-linux-gnu"
@@ -12,6 +13,8 @@ CSL_TARGET_SYS_arm = "arm-none-linux-gnueabi"
CSL_TARGET_SYS_mips = "mips-linux-gnu"
CSL_TARGET_SYS_mipsel = "mips-linux-gnu"
CSL_TARGET_SYS_mips64 = "mips-linux-gnu"
+CSL_TARGET_SYS_i686 = "i686-pc-linux-gnu"
+CSL_TARGET_SYS_i586 = "i686-pc-linux-gnu"
CSL_TARGET_SYS = "${TARGET_SYS}"
TARGET_PREFIX = "${CSL_TARGET_SYS}-"
@@ -41,6 +44,8 @@ TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
def csl_target_core(d):
coredata = {
'armv7a-vfp-neon': 'armv7-a-neon',
+ 'i586': 'sgxx-glibc',
+ 'i686': 'sgxx-glibc',
'mips': 'mips32',
'mipsel': 'el',
'ppce500': 'te500v1',
@@ -51,3 +56,55 @@ def csl_target_core(d):
return coredata.get(d.getVar('TUNE_PKGARCH', True), '')
CSL_TARGET_CORE = "${@csl_target_core(d)}"
+
+# Unfortunately, the CSL ia32 toolchain has non-prefixed binaries in its
+# bindir (e.g. gcc, ld). To avoid this messing up our build, we avoid adding
+# this bindir to our PATH, and instead add symlinks to the prefixed binaries
+# to our staging toolchain bindir.
+
+python toolchain_metadata_setup () {
+ if not isinstance(e, bb.event.ConfigParsed):
+ return
+
+ d = e.data
+
+ if d.getVar('TUNE_PKGARCH', True) in ('i586', 'i686'):
+ d.setVar('TOOLCHAIN_PATH_ADD', '')
+}
+addhandler toolchain_metadata_setup
+
+python toolchain_setup () {
+ if not isinstance(e, bb.event.BuildStarted):
+ return
+
+ d = e.data
+
+ if d.getVar('TUNE_PKGARCH', True) in ('i586', 'i686'):
+ populate_toolchain_links(d)
+}
+addhandler toolchain_setup
+
+def populate_toolchain_links(d):
+ import errno
+ import os
+ from glob import glob
+
+ d = d.createCopy()
+ d.finalize()
+
+ pattern = bb.data.expand('${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}*', d)
+ files = glob(pattern)
+ if not files:
+ bb.fatal("Unable to populate toolchain binary symlinks")
+
+ bindir = d.getVar('STAGING_BINDIR_TOOLCHAIN', True)
+ bb.mkdirhier(bindir)
+ for f in files:
+ base = os.path.basename(f)
+ newpath = os.path.join(bindir, base)
+ try:
+ os.symlink(f, newpath)
+ except OSError as exc:
+ if exc.errno == errno.EEXIST:
+ break
+ bb.fatal("Unable to populate toolchain binary symlink for %s: %s" % (newpath, exc))
diff --git a/meta/recipes-core/meta/external-csl-toolchain.bb b/meta/recipes-core/meta/external-csl-toolchain.bb
index 37ea271..a866e3e 100644
--- a/meta/recipes-core/meta/external-csl-toolchain.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain.bb
@@ -60,6 +60,11 @@ external_toolchain_sysroot_adjust() {
rm -f ${SYSROOT_DESTDIR}/${CSL_TARGET_CORE}
ln -s . ${SYSROOT_DESTDIR}/${CSL_TARGET_CORE}
fi
+
+ if [ "${TUNE_PKGARCH}" = "i586" ]; then
+ rm -f ${SYSROOT_DESTDIR}/system32
+ ln -s . ${SYSROOT_DESTDIR}/system32
+ fi
}
GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile"
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 09/10] external-csl-toolchain: leverage eglibc's packaging for more granular output
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (7 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 08/10] external-csl-toolchain: support ia32 Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-01-27 17:13 ` [PATCH 10/10] external-csl-toolchain: extract version info from the toolchain Christopher Larson
` (2 subsequent siblings)
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/recipes-core/meta/external-csl-toolchain.bb | 43 ++++++++++++++++++----
1 files changed, 35 insertions(+), 8 deletions(-)
diff --git a/meta/recipes-core/meta/external-csl-toolchain.bb b/meta/recipes-core/meta/external-csl-toolchain.bb
index a866e3e..8cf73da 100644
--- a/meta/recipes-core/meta/external-csl-toolchain.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain.bb
@@ -1,5 +1,4 @@
-inherit libc-common
-inherit libc-package
+require recipes-core/eglibc/eglibc-package.inc
INHIBIT_DEFAULT_DEPS = "1"
@@ -8,7 +7,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PROVIDES = "\
+PROVIDES += "\
linux-libc-headers \
virtual/${TARGET_PREFIX}gcc \
virtual/${TARGET_PREFIX}g++ \
@@ -22,9 +21,8 @@ PROVIDES = "\
virtual/libiconv \
glibc-thread-db \
libgcc \
- virtual/linux-libc-headers "
-RPROVIDES = "glibc-utils libsegfault glibc-thread-db"
-PACKAGES_DYNAMIC = "glibc-gconv-*"
+ virtual/linux-libc-headers \
+"
PR = "r3"
#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${CSL_TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
@@ -50,10 +48,25 @@ do_install() {
cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/. ${D}/usr/
fi
+ if [ -e ${D}${prefix}/info ]; then
+ mv ${D}${prefix}/info ${D}${infodir}
+ fi
+ if [ -e ${D}${prefix}/man ]; then
+ mv ${D}${prefix}/man ${D}${mandir}
+ fi
+
+ rm ${D}${sysconfdir}/rpc
+ rm -r ${D}${datadir}/zoneinfo
+ rm -r ${D}${libdir}/bin
+
sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libc.so
sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libpthread.so
}
+do_install_locale_append () {
+ rm -r ${D}${datadir}/locale ${D}${libdir}/locale
+}
+
SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
external_toolchain_sysroot_adjust() {
if [ -n "${CSL_TARGET_CORE}" ]; then
@@ -67,9 +80,23 @@ external_toolchain_sysroot_adjust() {
fi
}
-GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile"
+PACKAGES =+ "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers linux-libc-headers-dev"
+
+INSANE_SKIP_libgcc = "1"
+INSANE_SKIP_libstdc++ = "1"
+INSANE_SKIP_gdbserver = "1"
+
+PKG_${PN} = "eglibc"
+PKG_${PN}-dev = "eglibc-dev"
+PKG_${PN}-doc = "eglibc-doc"
+PKG_${PN}-dbg = "eglibc-dbg"
+PKG_${PN}-pic = "eglibc-pic"
+PKG_${PN}-utils = "eglibc-utils"
+PKG_${PN}-gconv = "eglibc-gconv"
+PKG_${PN}-extra-nss = "eglibc-extra-nss"
+PKG_${PN}-thread-db = "eglibc-thread-db"
+PKG_${PN}-pcprofile = "eglibc-pcprofile"
-PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers linux-libc-headers-dev"
FILES_libgcc = "${base_libdir}/libgcc_s.so.1"
FILES_libgcc-dev = "${base_libdir}/libgcc_s.so"
FILES_libstdc++ = "${libdir}/libstdc++.so.*"
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 10/10] external-csl-toolchain: extract version info from the toolchain
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (8 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 09/10] external-csl-toolchain: leverage eglibc's packaging for more granular output Christopher Larson
@ 2012-01-27 17:13 ` Christopher Larson
2012-02-03 16:00 ` [PATCH 00/10] external-csl-toolchain fixes and improvements Ken Werner
2012-02-03 16:17 ` Richard Purdie
11 siblings, 0 replies; 20+ messages in thread
From: Christopher Larson @ 2012-01-27 17:13 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/conf/distro/include/csl-versions.inc | 105 ++++++++++++++++++++++
meta/conf/distro/include/tcmode-external-csl.inc | 2 +
meta/recipes-core/meta/external-csl-toolchain.bb | 24 +++++
3 files changed, 131 insertions(+), 0 deletions(-)
create mode 100644 meta/conf/distro/include/csl-versions.inc
diff --git a/meta/conf/distro/include/csl-versions.inc b/meta/conf/distro/include/csl-versions.inc
new file mode 100644
index 0000000..22e8394
--- /dev/null
+++ b/meta/conf/distro/include/csl-versions.inc
@@ -0,0 +1,105 @@
+def csl_run(d, cmd, *args):
+ import bb.process
+ import subprocess
+
+ topdir = d.getVar('TOPDIR', True)
+ toolchain_path = d.getVar('EXTERNAL_TOOLCHAIN', True)
+ if not toolchain_path:
+ return 'UNKNOWN', 'UNKNOWN'
+
+ target_prefix = d.getVar('TARGET_PREFIX', True)
+ path = os.path.join(toolchain_path, 'bin', target_prefix + cmd)
+ args = [path] + list(args)
+
+ return bb.process.run(args, cwd=topdir, stderr=subprocess.PIPE)
+
+def csl_get_version(d):
+ try:
+ stdout, stderr = csl_run(d, 'gcc', '-v')
+ except bb.process.CmdError as exc:
+ bb.error('Failed to obtain CodeSourcery toolchain version: %s' % exc)
+ return 'UNKNOWN'
+ else:
+ last_line = stderr.splitlines()[-1]
+ return last_line
+
+def csl_get_main_version(d):
+ version = csl_get_version(d)
+ if version != 'UNKNOWN':
+ return version.split()[-1].rstrip(')')
+ else:
+ return version
+
+def csl_get_gcc_version(d):
+ version = csl_get_version(d)
+ if version != 'UNKNOWN':
+ return version.split()[2]
+ else:
+ return version
+
+def csl_get_libc_version(d):
+ import os,bb
+ syspath = bb.data.expand('${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}', d)
+ if not syspath:
+ return 'UNKNOWN'
+
+ libpath = syspath + '/libc/lib/'
+ if not os.path.exists(libpath):
+ libpath = syspath + '/libc/sgxx-glibc/lib/'
+
+ if os.path.exists(libpath):
+ for file in os.listdir(libpath):
+ if file.find('libc-') == 0:
+ return file[5:-3]
+ return 'UNKNOWN'
+
+def csl_get_kernel_version(d):
+ import os,bb
+ syspath = bb.data.expand('${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}', d)
+ if not syspath:
+ return 'UNKNOWN'
+
+ vf = syspath + '/libc/usr/include/linux/version.h'
+ if not os.path.exists(vf):
+ vf = syspath + '/libc/sgxx-glibc/usr/include/linux/version.h'
+
+ try:
+ f = open(vf, 'r')
+ except (OSError, IOError):
+ return 'UNKNOWN'
+
+ l = f.readlines();
+ f.close();
+ for s in l:
+ if s.find('LINUX_VERSION_CODE') > 0:
+ ver = int(s.split()[2])
+ maj = ver / 65536
+ ver = ver % 65536
+ min = ver / 256
+ ver = ver % 256
+ return str(maj)+'.'+str(min)+'.'+str(ver)
+ return 'UNKNOWN'
+
+def csl_get_gdb_version(d):
+ try:
+ stdout, stderr = csl_run(d, 'gdb', '-v')
+ except CmdError:
+ return 'UNKNOWN'
+ else:
+ first_line = stdout.splitlines()[0]
+ return first_line.split()[-1]
+
+python csl_version_handler () {
+ if not isinstance(e, bb.event.ConfigParsed):
+ return
+ d = e.data
+ ld = d.createCopy()
+ ld.finalize()
+
+ d.setVar('CSL_VER_MAIN', csl_get_main_version(ld))
+ d.setVar('CSL_VER_GCC', csl_get_gcc_version(ld))
+ d.setVar('CSL_VER_LIBC', csl_get_libc_version(ld))
+ d.setVar('CSL_VER_KERNEL', csl_get_kernel_version(ld))
+ d.setVar('CSL_VER_GDB', csl_get_gdb_version(ld))
+}
+addhandler csl_version_handler
diff --git a/meta/conf/distro/include/tcmode-external-csl.inc b/meta/conf/distro/include/tcmode-external-csl.inc
index 0135590..1ff808d 100644
--- a/meta/conf/distro/include/tcmode-external-csl.inc
+++ b/meta/conf/distro/include/tcmode-external-csl.inc
@@ -108,3 +108,5 @@ def populate_toolchain_links(d):
if exc.errno == errno.EEXIST:
break
bb.fatal("Unable to populate toolchain binary symlink for %s: %s" % (newpath, exc))
+
+require conf/distro/include/csl-versions.inc
diff --git a/meta/recipes-core/meta/external-csl-toolchain.bb b/meta/recipes-core/meta/external-csl-toolchain.bb
index 8cf73da..c9f35c4 100644
--- a/meta/recipes-core/meta/external-csl-toolchain.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain.bb
@@ -23,6 +23,7 @@ PROVIDES += "\
libgcc \
virtual/linux-libc-headers \
"
+PV = "${CSL_VER_MAIN}"
PR = "r3"
#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${CSL_TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
@@ -97,6 +98,29 @@ PKG_${PN}-extra-nss = "eglibc-extra-nss"
PKG_${PN}-thread-db = "eglibc-thread-db"
PKG_${PN}-pcprofile = "eglibc-pcprofile"
+PKGV_${PN} = "${CSL_VER_LIBC}"
+PKGV_${PN}-dev = "${CSL_VER_LIBC}"
+PKGV_${PN}-doc = "${CSL_VER_LIBC}"
+PKGV_${PN}-dbg = "${CSL_VER_LIBC}"
+PKGV_${PN}-pic = "${CSL_VER_LIBC}"
+PKGV_${PN}-utils = "${CSL_VER_LIBC}"
+PKGV_${PN}-gconv = "${CSL_VER_LIBC}"
+PKGV_${PN}-extra-nss = "${CSL_VER_LIBC}"
+PKGV_${PN}-thread-db = "${CSL_VER_LIBC}"
+PKGV_${PN}-pcprofile = "${CSL_VER_LIBC}"
+PKGV_catchsegv = "${CSL_VER_LIBC}"
+PKGV_libsegfault = "${CSL_VER_LIBC}"
+PKGV_sln = "${CSL_VER_LIBC}"
+PKGV_nscd = "${CSL_VER_LIBC}"
+PKGV_ldd = "${CSL_VER_LIBC}"
+PKGV_libgcc = "${CSL_VER_GCC}"
+PKGV_libgcc-dev = "${CSL_VER_GCC}"
+PKGV_libstdc++ = "${CSL_VER_GCC}"
+PKGV_libstdc++-dev = "${CSL_VER_GCC}"
+PKGV_linux-libc-headers = "${CSL_VER_KERNEL}"
+PKGV_linux-libc-headers-dev = "${CSL_VER_KERNEL}"
+PKGV_gdbserver = "${CSL_VER_GDBSERVER}"
+
FILES_libgcc = "${base_libdir}/libgcc_s.so.1"
FILES_libgcc-dev = "${base_libdir}/libgcc_s.so"
FILES_libstdc++ = "${libdir}/libstdc++.so.*"
--
1.7.8.rc4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic
2012-01-27 17:13 ` [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic Christopher Larson
@ 2012-01-28 20:21 ` Khem Raj
2012-02-02 18:26 ` Chris Larson
0 siblings, 1 reply; 20+ messages in thread
From: Khem Raj @ 2012-01-28 20:21 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On (27/01/12 11:13), Christopher Larson wrote:
> From: Christopher Larson <chris_larson@mentor.com>
>
> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> ---
> meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
> index e5a9b9d..870b95d 100644
> --- a/meta/recipes-core/eglibc/eglibc-package.inc
> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
> @@ -42,7 +42,7 @@ FILES_libcidn${PKGSUFFIX} = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.
> FILES_libmemusage${PKGSUFFIX} = "${base_libdir}/libmemusage.so"
> FILES_eglibc-extra-nss${PKGSUFFIX} = "${base_libdir}/libnss_*-*.so ${base_libdir}/libnss_*.so.*"
> FILES_sln${PKGSUFFIX} = "/sbin/sln"
> -FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/"
> +FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o"
are there just .o in there which are left ? not *.os ?
> FILES_libsotruss${PKGSUFFIX} = "${libdir}/audit/sotruss-lib.so"
> FILES_${PN}-dev_append += "${bindir}/rpcgen ${libdir}/*_nonshared.a \
> ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal"
> --
> 1.7.8.rc4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
--
-Khem
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 03/10] binutils: fixes for build with an external csl toolchain
2012-01-27 17:13 ` [PATCH 03/10] binutils: fixes for build with an external csl toolchain Christopher Larson
@ 2012-01-28 20:23 ` Khem Raj
2012-02-02 18:25 ` Chris Larson
0 siblings, 1 reply; 20+ messages in thread
From: Khem Raj @ 2012-01-28 20:23 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On (27/01/12 11:13), Christopher Larson wrote:
> From: Christopher Larson <chris_larson@mentor.com>
>
> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> ---
> meta/recipes-devtools/binutils/binutils.inc | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc
> index 6130ab4..e343242 100644
> --- a/meta/recipes-devtools/binutils/binutils.inc
> +++ b/meta/recipes-devtools/binutils/binutils.inc
> @@ -51,6 +51,7 @@ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
> EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
> --enable-install-libbfd \
> --enable-shared \
> + --disable-werror \
I specifically wanted to avoid this option but I guess we have to have
it to support wide versions of gcc.
> ${@base_contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}"
>
> EXTRA_OECONF_virtclass-native = "--enable-target=all --enable-64-bit-bfd --enable-install-libbfd"
> @@ -113,11 +114,11 @@ do_install () {
> cd ${D}${bindir}
>
> # Symlinks for ease of running these on the native target
> - for p in ${TARGET_SYS}-* ; do
> + for p in ${TARGET_PREFIX}* ; do
> ln -sf $p `echo $p | sed -e s,${TARGET_PREFIX},,`
> done
>
> - rm ${D}${bindir}/ar ${D}${bindir}/strings
> + rm -f ${D}${bindir}/ar ${D}${bindir}/strings
>
> oe_multilib_header bfd.h
> }
> --
> 1.7.8.rc4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
--
-Khem
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm
2012-01-27 17:13 ` [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm Christopher Larson
@ 2012-01-28 20:28 ` Khem Raj
2012-02-02 18:27 ` Chris Larson
0 siblings, 1 reply; 20+ messages in thread
From: Khem Raj @ 2012-01-28 20:28 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On (27/01/12 11:13), Christopher Larson wrote:
> From: Christopher Larson <chris_larson@mentor.com>
>
> - Rather than adjusting TARGET_VENDOR, which results in our TARGET_SYS
> matching the external toolchain, override TARGET_PREFIX to match external,
> and leave TARGET_SYS alone
> - Grab the optimized files out of the toolchain if available
> - Create a symlink in sysroot to ensure the sysroot layout matches toolchain
> expectations (optimized files in a subdir)
>
> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> ---
> meta/conf/distro/include/tcmode-external-csl.inc | 27 +++++++++++++++++-
> meta/recipes-core/meta/external-csl-toolchain.bb | 32 +++++++++++++++++-----
> 2 files changed, 50 insertions(+), 9 deletions(-)
>
> diff --git a/meta/conf/distro/include/tcmode-external-csl.inc b/meta/conf/distro/include/tcmode-external-csl.inc
> index 0af3a45..1d82ca1 100644
> --- a/meta/conf/distro/include/tcmode-external-csl.inc
> +++ b/meta/conf/distro/include/tcmode-external-csl.inc
> @@ -2,12 +2,20 @@
> # Configuration to use external CSL toolchain
> #
>
> -TARGET_VENDOR = "-none"
> -
> EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/${TARGET_ARCH}"
>
> PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
>
> +CSL_TARGET_SYS_powerpc = "powerpc-linux-gnu"
> +CSL_TARGET_SYS_powerpc64 = "powerpc-linux-gnu"
hmm is it using powerpc-linux-gnu canonical name to do both ppc32
and ppc64
> +CSL_TARGET_SYS_arm = "arm-none-linux-gnueabi"
> +CSL_TARGET_SYS_mips = "mips-linux-gnu"
> +CSL_TARGET_SYS_mipsel = "mips-linux-gnu"
> +CSL_TARGET_SYS_mips64 = "mips-linux-gnu"
same as above
> +CSL_TARGET_SYS = "${TARGET_SYS}"
> +
> +TARGET_PREFIX = "${CSL_TARGET_SYS}-"
> +
> PREFERRED_PROVIDER_linux-libc-headers = "external-csl-toolchain"
> PREFERRED_PROVIDER_linux-libc-headers-dev = "external-csl-toolchain"
> PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-csl-toolchain"
> @@ -28,3 +36,18 @@ TARGET_CPPFLAGS_prepend = " -isystem${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/include
> TARGET_LDFLAGS_prepend = " -L${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib -Wl,-rpath-link,${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib "
>
> TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
> +
> +# Translate to CodeSourcery's names for their optimized files in the toolchain
> +def csl_target_core(d):
> + coredata = {
> + 'armv7a-vfp-neon': 'armv7-a-neon',
> + 'mips': 'mips32',
> + 'mipsel': 'el',
> + 'ppce500': 'te500v1',
> + 'ppce500mc': 'te500mc',
> + 'ppce500v2': 'te500v2',
> + 'ppce600': 'te600'
> + }
> + return coredata.get(d.getVar('TUNE_PKGARCH', True), '')
> +
> +CSL_TARGET_CORE = "${@csl_target_core(d)}"
> diff --git a/meta/recipes-core/meta/external-csl-toolchain.bb b/meta/recipes-core/meta/external-csl-toolchain.bb
> index f1e5332..37ea271 100644
> --- a/meta/recipes-core/meta/external-csl-toolchain.bb
> +++ b/meta/recipes-core/meta/external-csl-toolchain.bb
> @@ -25,25 +25,43 @@ PROVIDES = "\
> virtual/linux-libc-headers "
> RPROVIDES = "glibc-utils libsegfault glibc-thread-db"
> PACKAGES_DYNAMIC = "glibc-gconv-*"
> -PR = "r2"
> +PR = "r3"
>
> -#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
> +#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${CSL_TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
>
> SRC_URI = "file://SUPPORTED"
>
> do_install() {
> install -d ${D}${sysconfdir} ${D}${bindir} ${D}${sbindir} ${D}${base_bindir} ${D}${libdir}
> - install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir}
> + install -d ${D}${base_libdir} ${D}${base_sbindir} ${D}${datadir} ${D}/usr
>
> - cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/lib/* ${D}${base_libdir}
> - cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/etc/* ${D}${sysconfdir}
> - cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/sbin/* ${D}${base_sbindir}
> - cp -a ${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/libc/usr/* ${D}/usr
> + if [ -d ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE} ]; then
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/lib/. ${D}${base_libdir}
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/etc/. ${D}${sysconfdir}
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/sbin/. ${D}${base_sbindir}
> + if [ ! -e ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/usr/include ]; then
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/include ${D}/usr/
> + fi
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/${CSL_TARGET_CORE}/usr/. ${D}/usr/
> + else
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/lib/. ${D}${base_libdir}
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/etc/. ${D}${sysconfdir}
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/sbin/. ${D}${base_sbindir}
> + cp -a ${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc/usr/. ${D}/usr/
> + fi
>
> sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libc.so
> sed -i -e "s# /lib# ../../lib#g" -e "s# /usr/lib# .#g" ${D}${libdir}/libpthread.so
> }
>
> +SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
> +external_toolchain_sysroot_adjust() {
> + if [ -n "${CSL_TARGET_CORE}" ]; then
> + rm -f ${SYSROOT_DESTDIR}/${CSL_TARGET_CORE}
> + ln -s . ${SYSROOT_DESTDIR}/${CSL_TARGET_CORE}
> + fi
> +}
> +
> GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile"
>
> PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers linux-libc-headers-dev"
> --
> 1.7.8.rc4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
--
-Khem
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 03/10] binutils: fixes for build with an external csl toolchain
2012-01-28 20:23 ` Khem Raj
@ 2012-02-02 18:25 ` Chris Larson
0 siblings, 0 replies; 20+ messages in thread
From: Chris Larson @ 2012-02-02 18:25 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On Sat, Jan 28, 2012 at 1:23 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On (27/01/12 11:13), Christopher Larson wrote:
>> From: Christopher Larson <chris_larson@mentor.com>
>>
>> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
>> ---
>> meta/recipes-devtools/binutils/binutils.inc | 5 +++--
>> 1 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc
>> index 6130ab4..e343242 100644
>> --- a/meta/recipes-devtools/binutils/binutils.inc
>> +++ b/meta/recipes-devtools/binutils/binutils.inc
>> @@ -51,6 +51,7 @@ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
>> EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
>> --enable-install-libbfd \
>> --enable-shared \
>> + --disable-werror \
>
> I specifically wanted to avoid this option but I guess we have to have
> it to support wide versions of gcc.
Yeah, it'd be nice if it wasn't needed, but sadly it is for some.
--
Christopher Larson
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic
2012-01-28 20:21 ` Khem Raj
@ 2012-02-02 18:26 ` Chris Larson
0 siblings, 0 replies; 20+ messages in thread
From: Chris Larson @ 2012-02-02 18:26 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On Sat, Jan 28, 2012 at 1:21 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On (27/01/12 11:13), Christopher Larson wrote:
>> From: Christopher Larson <chris_larson@mentor.com>
>>
>> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
>> ---
>> meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
>> index e5a9b9d..870b95d 100644
>> --- a/meta/recipes-core/eglibc/eglibc-package.inc
>> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
>> @@ -42,7 +42,7 @@ FILES_libcidn${PKGSUFFIX} = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.
>> FILES_libmemusage${PKGSUFFIX} = "${base_libdir}/libmemusage.so"
>> FILES_eglibc-extra-nss${PKGSUFFIX} = "${base_libdir}/libnss_*-*.so ${base_libdir}/libnss_*.so.*"
>> FILES_sln${PKGSUFFIX} = "/sbin/sln"
>> -FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/"
>> +FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o"
>
> are there just .o in there which are left ? not *.os ?
I don't see any .os in libc_pic in either the packages from the eglibc
recipe from oe-core or the external csl toolchain.
--
Christopher Larson
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm
2012-01-28 20:28 ` Khem Raj
@ 2012-02-02 18:27 ` Chris Larson
0 siblings, 0 replies; 20+ messages in thread
From: Chris Larson @ 2012-02-02 18:27 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On Sat, Jan 28, 2012 at 1:28 PM, Khem Raj <raj.khem@gmail.com> wrote:
> hmm is it using powerpc-linux-gnu canonical name to do both ppc32
> and ppc64
>
>> +CSL_TARGET_SYS_arm = "arm-none-linux-gnueabi"
>> +CSL_TARGET_SYS_mips = "mips-linux-gnu"
>> +CSL_TARGET_SYS_mipsel = "mips-linux-gnu"
>
>
>> +CSL_TARGET_SYS_mips64 = "mips-linux-gnu"
>
> same as above
Yeah, from what I can tell it's handled via -m32/-m64, not via the prefix.
--
Christopher Larson
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 00/10] external-csl-toolchain fixes and improvements
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (9 preceding siblings ...)
2012-01-27 17:13 ` [PATCH 10/10] external-csl-toolchain: extract version info from the toolchain Christopher Larson
@ 2012-02-03 16:00 ` Ken Werner
2012-02-03 16:34 ` Richard Purdie
2012-02-03 16:17 ` Richard Purdie
11 siblings, 1 reply; 20+ messages in thread
From: Ken Werner @ 2012-02-03 16:00 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On 01/27/2012 06:13 PM, Christopher Larson wrote:
> From: Christopher Larson<chris_larson@mentor.com>
>
> - Fixes the external-csl-toolchain and corresponding tcmode to be compatible
> with current metadata (e.g. uses current providers), and ensures it works again
> - Kills the arch and version specific bits, making it work fine with a number
> of different versions of the CodeSourcery arm, mips, ppc, and ia32 toolchains
> - Makes the packaging match up with the packaging of the internal toolchain by
> leveraging the eglibc packaging .inc and ensuring our other packages are
> named correctly
> - Extracts versioning information for both the recipe and emitted packages
> from the external toolchain at ConfigParsed time. This code is not pretty,
> largely kept as is from the Mentor internal external toolchain, but it does
> work. A future commit or commits will clean that up.
>
> I've tested with with the fall 2010, spring 2011, and fall 2011 releases, for
> the qemux86, qemuarm, qemumips, and qemuppc machines. I used buildhistory to
> compare the packages and image content between internal and external, ensuring
> that they match up with almost no differences.
>
> The following changes since commit fba0459da7f274ae284d36b7fdbf2f9d10a52610:
>
> distro_tracking_fields: fix the typos in the field of maintainer. (2012-01-27 09:52:00 +0000)
>
> are available in the git repository at:
> git://github.com/kergoth/oe-core external-toolchain
Hi,
Good work!
I just switched to this branch and configured OE-core to compile for
qemuarm using the external CSL 2011.03 toolchain. When attempting to
build the sato image bitbake aborts when compiling libproxy_0.4.7.bb.
I've changed the cmake.bbclass to have cmake find the binaries of the
external toolchain as posted here:
http://lists.linuxtogo.org/pipermail/openembedded-core/2011-December/014432.html
With this patch applied the build of the core-image-sate and
qt4e-demo-image finished successfully. Both images are booting fine
using QEMU.
Regards,
Ken
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 00/10] external-csl-toolchain fixes and improvements
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
` (10 preceding siblings ...)
2012-02-03 16:00 ` [PATCH 00/10] external-csl-toolchain fixes and improvements Ken Werner
@ 2012-02-03 16:17 ` Richard Purdie
11 siblings, 0 replies; 20+ messages in thread
From: Richard Purdie @ 2012-02-03 16:17 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On Fri, 2012-01-27 at 11:13 -0600, Christopher Larson wrote:
> From: Christopher Larson <chris_larson@mentor.com>
>
> - Fixes the external-csl-toolchain and corresponding tcmode to be compatible
> with current metadata (e.g. uses current providers), and ensures it works again
> - Kills the arch and version specific bits, making it work fine with a number
> of different versions of the CodeSourcery arm, mips, ppc, and ia32 toolchains
> - Makes the packaging match up with the packaging of the internal toolchain by
> leveraging the eglibc packaging .inc and ensuring our other packages are
> named correctly
> - Extracts versioning information for both the recipe and emitted packages
> from the external toolchain at ConfigParsed time. This code is not pretty,
> largely kept as is from the Mentor internal external toolchain, but it does
> work. A future commit or commits will clean that up.
>
> I've tested with with the fall 2010, spring 2011, and fall 2011 releases, for
> the qemux86, qemuarm, qemumips, and qemuppc machines. I used buildhistory to
> compare the packages and image content between internal and external, ensuring
> that they match up with almost no differences.
>
> The following changes since commit fba0459da7f274ae284d36b7fdbf2f9d10a52610:
>
> distro_tracking_fields: fix the typos in the field of maintainer. (2012-01-27 09:52:00 +0000)
>
> are available in the git repository at:
> git://github.com/kergoth/oe-core external-toolchain
>
> Christopher Larson (10):
> libc-package: fix typo in LOCALETREESRC default value
> eglibc-package.inc: don't include debug files in -pic
> binutils: fixes for build with an external csl toolchain
> external-csl-toolchain: fix critical PATH manipulation bug
> external-csl-toolchain: fixes for metadata changes
> external-csl-toolchain: avoid the hardcoded version/prefix
> external-csl-toolchain: support mips/ppc/arm
> external-csl-toolchain: support ia32
> external-csl-toolchain: leverage eglibc's packaging for more granular output
> external-csl-toolchain: extract version info from the toolchain
Merged to master. Thanks for these, good to see those recipes fulfilling
their full potential :)
Cheers,
Richard
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 00/10] external-csl-toolchain fixes and improvements
2012-02-03 16:00 ` [PATCH 00/10] external-csl-toolchain fixes and improvements Ken Werner
@ 2012-02-03 16:34 ` Richard Purdie
0 siblings, 0 replies; 20+ messages in thread
From: Richard Purdie @ 2012-02-03 16:34 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer; +Cc: Christopher Larson
On Fri, 2012-02-03 at 17:00 +0100, Ken Werner wrote:
> I just switched to this branch and configured OE-core to compile for
> qemuarm using the external CSL 2011.03 toolchain. When attempting to
> build the sato image bitbake aborts when compiling libproxy_0.4.7.bb.
> I've changed the cmake.bbclass to have cmake find the binaries of the
> external toolchain as posted here:
> http://lists.linuxtogo.org/pipermail/openembedded-core/2011-December/014432.html
>
> With this patch applied the build of the core-image-sate and
> qt4e-demo-image finished successfully. Both images are booting fine
> using QEMU.
Thanks for reporting that. I've merged the patch you refer to above.
Cheers,
Richard
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2012-02-03 16:42 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-27 17:13 [PATCH 00/10] external-csl-toolchain fixes and improvements Christopher Larson
2012-01-27 17:13 ` [PATCH 01/10] libc-package: fix typo in LOCALETREESRC default value Christopher Larson
2012-01-27 17:13 ` [PATCH 02/10] eglibc-package.inc: don't include debug files in -pic Christopher Larson
2012-01-28 20:21 ` Khem Raj
2012-02-02 18:26 ` Chris Larson
2012-01-27 17:13 ` [PATCH 03/10] binutils: fixes for build with an external csl toolchain Christopher Larson
2012-01-28 20:23 ` Khem Raj
2012-02-02 18:25 ` Chris Larson
2012-01-27 17:13 ` [PATCH 04/10] external-csl-toolchain: fix critical PATH manipulation bug Christopher Larson
2012-01-27 17:13 ` [PATCH 05/10] external-csl-toolchain: fixes for metadata changes Christopher Larson
2012-01-27 17:13 ` [PATCH 06/10] external-csl-toolchain: avoid the hardcoded version/prefix Christopher Larson
2012-01-27 17:13 ` [PATCH 07/10] external-csl-toolchain: support mips/ppc/arm Christopher Larson
2012-01-28 20:28 ` Khem Raj
2012-02-02 18:27 ` Chris Larson
2012-01-27 17:13 ` [PATCH 08/10] external-csl-toolchain: support ia32 Christopher Larson
2012-01-27 17:13 ` [PATCH 09/10] external-csl-toolchain: leverage eglibc's packaging for more granular output Christopher Larson
2012-01-27 17:13 ` [PATCH 10/10] external-csl-toolchain: extract version info from the toolchain Christopher Larson
2012-02-03 16:00 ` [PATCH 00/10] external-csl-toolchain fixes and improvements Ken Werner
2012-02-03 16:34 ` Richard Purdie
2012-02-03 16:17 ` Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox