summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-06-08 20:33:16 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-06-08 20:33:16 +0100
commitf47eeddbd692ac3c6109c18c9f04a3ad4dc789ba (patch)
treeabe9f2ef67deb85c5cde312123b53aac4daaf225 /meta
parentd579b7c746b7113d5a4867b851ed2dc7733299a8 (diff)
downloadpoky-f47eeddbd692ac3c6109c18c9f04a3ad4dc789ba.tar.gz
gcc-runtime: Various bug fixes
* Use the -nostdinc++ to CXX fixing libstdc++ * Generate libgcc in gcc-cross, save the result and use in gcc-runtime * Fix the layout of the crt*.o files so the SDK compiler can find them Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta')
-rw-r--r--meta/packages/gcc/gcc-configure-runtime.inc10
-rw-r--r--meta/packages/gcc/gcc-cross-canadian_4.3.3.bb2
-rw-r--r--meta/packages/gcc/gcc-cross.inc2
-rw-r--r--meta/packages/gcc/gcc-cross_4.3.3.bb2
-rw-r--r--meta/packages/gcc/gcc-package-cross.inc27
-rw-r--r--meta/packages/gcc/gcc-package-runtime.inc4
-rw-r--r--meta/packages/gcc/gcc-runtime_4.3.3.bb3
7 files changed, 29 insertions, 21 deletions
diff --git a/meta/packages/gcc/gcc-configure-runtime.inc b/meta/packages/gcc/gcc-configure-runtime.inc
index 7b43aabf99..180ca8d0ee 100644
--- a/meta/packages/gcc/gcc-configure-runtime.inc
+++ b/meta/packages/gcc/gcc-configure-runtime.inc
@@ -6,20 +6,20 @@ EXTRA_OECONF_PATHS = " \
6 --with-sysroot=${STAGING_DIR_TARGET} \ 6 --with-sysroot=${STAGING_DIR_TARGET} \
7 --with-build-sysroot=${STAGING_DIR_TARGET}" 7 --with-build-sysroot=${STAGING_DIR_TARGET}"
8 8
9RUNTIMETARGET = "libgcc libssp libstdc++-v3" 9RUNTIMETARGET = "libssp libstdc++-v3"
10# ? 10# ?
11# libiberty 11# libiberty
12# libmudflap 12# libmudflap
13# libgfortran 13# libgfortran
14 14
15do_configure () { 15do_configure () {
16 cp ${STAGING_DIR_NATIVE}${prefix_native}/include/gcc-build-internal-${TARGET_SYS}/* ${S}/gcc 16 export CXX="${CXX} -nostdinc++"
17 for d in ${RUNTIMETARGET}; do 17 for d in ${RUNTIMETARGET}; do
18 echo "Configuring $d" 18 echo "Configuring $d"
19 mkdir -p ${B}/$d/ 19 mkdir -p ${B}/$d/
20 cd ${B}/$d/ 20 cd ${B}/$d/
21 chmod a+x ${S}/$d/configure 21 chmod a+x ${S}/$d/configure
22 ${S}/$d/configure ${CONFIGUREOPTS} ${EXTRA_OECONF_PATHS} 22 ${S}/$d/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
23 done 23 done
24} 24}
25 25
@@ -31,6 +31,10 @@ do_compile () {
31} 31}
32 32
33do_install () { 33do_install () {
34 # Install libgcc from our gcc-cross saved data
35 install -d ${D}${base_libdir} ${D}${libdir}
36 cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-${TARGET_SYS}/* ${D}
37
34 for d in ${RUNTIMETARGET}; do 38 for d in ${RUNTIMETARGET}; do
35 cd ${B}/$d/ 39 cd ${B}/$d/
36 oe_runmake 'DESTDIR=${D}' install 40 oe_runmake 'DESTDIR=${D}' install
diff --git a/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb b/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb
index 64030ad32a..ae3aab27ba 100644
--- a/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb
+++ b/meta/packages/gcc/gcc-cross-canadian_4.3.3.bb
@@ -5,7 +5,7 @@ require gcc-cross-canadian.inc
5require gcc-configure-sdk.inc 5require gcc-configure-sdk.inc
6require gcc-package-sdk.inc 6require gcc-package-sdk.inc
7 7
8PR = "r9" 8PR = "r12"
9 9
10DEPENDS += "gmp-nativesdk mpfr-nativesdk" 10DEPENDS += "gmp-nativesdk mpfr-nativesdk"
11RDEPENDS_${PN} += "mpfr-nativesdk" 11RDEPENDS_${PN} += "mpfr-nativesdk"
diff --git a/meta/packages/gcc/gcc-cross.inc b/meta/packages/gcc/gcc-cross.inc
index 8f13a36a8f..02b23ffce0 100644
--- a/meta/packages/gcc/gcc-cross.inc
+++ b/meta/packages/gcc/gcc-cross.inc
@@ -11,6 +11,6 @@ require gcc-configure-cross.inc
11require gcc-package-cross.inc 11require gcc-package-cross.inc
12 12
13do_compile () { 13do_compile () {
14 oe_runmake all-host 14 oe_runmake all-host all-target-libgcc
15} 15}
16 16
diff --git a/meta/packages/gcc/gcc-cross_4.3.3.bb b/meta/packages/gcc/gcc-cross_4.3.3.bb
index dbb6352d4a..76d32673c1 100644
--- a/meta/packages/gcc/gcc-cross_4.3.3.bb
+++ b/meta/packages/gcc/gcc-cross_4.3.3.bb
@@ -1,4 +1,4 @@
1PR = "r10" 1PR = "r12"
2 2
3require gcc-${PV}.inc 3require gcc-${PV}.inc
4require gcc-cross4.inc 4require gcc-cross4.inc
diff --git a/meta/packages/gcc/gcc-package-cross.inc b/meta/packages/gcc/gcc-package-cross.inc
index 999925a6fa..8a170d083b 100644
--- a/meta/packages/gcc/gcc-package-cross.inc
+++ b/meta/packages/gcc/gcc-package-cross.inc
@@ -16,18 +16,21 @@ do_install () {
16 rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/$d 16 rm -rf ${D}${STAGING_DIR_NATIVE}${prefix_native}/$d
17 done 17 done
18 18
19 # gcc-runtime requires some headers, we stash them here 19 # gcc-runtime installs libgcc into a special location in staging since it breaks doing a standalone build
20 if [ "${PN}" == "gcc-cross" -o "${PN}" == "gcc-crosssdk" ]; then 20 if [ "${PN}" == "gcc-cross" -o "${PN}" == "gcc-crosssdk" ]; then
21 install -d ${D}${includedir}/gcc-build-internal-${TARGET_SYS} 21 dest=${D}/${includedir}/gcc-build-internal-${TARGET_SYS}
22 for f in *.h *.c libgcc.mvars; do 22 oe_runmake "DESTDIR=$dest" libdir=${target_libdir} base_libdir=${target_base_libdir} prefix=${target_prefix} exec_prefix=${target_exec_prefix} install-target-libgcc
23 cp ${B}/gcc/$f ${D}${includedir}/gcc-build-internal-${TARGET_SYS}/ 23
24 done 24 # Ideally here we'd override the libgcc Makefile's idea of slibdir but
25 # Special for PowerPC (and possibly others) 25 # for now, we just move the files to the correct location
26 if [ -f ${B}/gcc/tramp.S ]; then 26
27 cp ${B}/gcc/*.S ${D}${includedir}/gcc-build-internal-${TARGET_SYS}/ 27 install -d $dest${target_base_libdir}
28 fi 28 mv $dest${target_exec_prefix}/${TARGET_SYS}/lib*/* $dest${target_base_libdir}
29 if [ -f libgcc.mvars]; then 29 rm -rf $dest${target_exec_prefix}/${TARGET_SYS}
30 cp ${B}/gcc/libgcc.mvars ${D}${includedir}/gcc-build-internal-${TARGET_SYS}/ 30
31 fi 31 # Also need to move gcc from /usr/lib/gcc/* to /usr/lib/ else the search paths won't find the crt*.o files
32
33 mv $dest${target_libdir}/gcc/* $dest${target_libdir}/
34 rmdir $dest${target_libdir}/gcc
32 fi 35 fi
33} 36}
diff --git a/meta/packages/gcc/gcc-package-runtime.inc b/meta/packages/gcc/gcc-package-runtime.inc
index 908d2d513c..40a9ed0d70 100644
--- a/meta/packages/gcc/gcc-package-runtime.inc
+++ b/meta/packages/gcc/gcc-package-runtime.inc
@@ -17,8 +17,8 @@ PACKAGES = "\
17FILES_libgcc = "${base_libdir}/libgcc*.so.*" 17FILES_libgcc = "${base_libdir}/libgcc*.so.*"
18FILES_libgcc-dev = " \ 18FILES_libgcc-dev = " \
19 ${base_libdir}/libgcc*.so \ 19 ${base_libdir}/libgcc*.so \
20 ${libdir}/gcc/${TARGET_SYS}/${BINV}/crt* \ 20 ${libdir}/${TARGET_SYS}/${BINV}/crt* \
21 ${libdir}/gcc/${TARGET_SYS}/${BINV}/libgcc*" 21 ${libdir}/${TARGET_SYS}/${BINV}/libgcc*"
22 22
23FILES_libg2c = "${target_libdir}/libg2c.so.*" 23FILES_libg2c = "${target_libdir}/libg2c.so.*"
24FILES_libg2c-dev = "\ 24FILES_libg2c-dev = "\
diff --git a/meta/packages/gcc/gcc-runtime_4.3.3.bb b/meta/packages/gcc/gcc-runtime_4.3.3.bb
index b625668be0..f94e07ce2b 100644
--- a/meta/packages/gcc/gcc-runtime_4.3.3.bb
+++ b/meta/packages/gcc/gcc-runtime_4.3.3.bb
@@ -1,4 +1,4 @@
1PR = "r10" 1PR = "r12"
2 2
3require gcc-${PV}.inc 3require gcc-${PV}.inc
4require gcc-configure-runtime.inc 4require gcc-configure-runtime.inc
@@ -8,3 +8,4 @@ SRC_URI_append = "file://fortran-cross-compile-hack.patch;patch=1"
8 8
9ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}" 9ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"
10 10
11EXTRA_OECONF += "--disable-libunwind-exceptions"