aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc/gcc-4.4.1.inc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2009-09-05 19:14:35 -0700
committerKhem Raj <raj.khem@gmail.com>2009-09-05 19:19:54 -0700
commit9300c4759938436bde9b722f46c12b12beebc20d (patch)
tree64ca1db8dd551d10f735723d4766f3dc05c20d55 /recipes/gcc/gcc-4.4.1.inc
parent1578d2e0a527f2baa6ccda851fcb51c72ba40fbf (diff)
downloadopenembedded-9300c4759938436bde9b722f46c12b12beebc20d.tar.gz
gcc-4.4.1: Fix canadian cross compilation.
* Forward port cache amnesia patch * Forward port gcc-flags-for-build patch * do_configure needs to be overridden for 4.4.1 Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gcc/gcc-4.4.1.inc')
-rw-r--r--recipes/gcc/gcc-4.4.1.inc47
1 files changed, 46 insertions, 1 deletions
diff --git a/recipes/gcc/gcc-4.4.1.inc b/recipes/gcc/gcc-4.4.1.inc
index 6ac5ab48ad..9bc4d17dd6 100644
--- a/recipes/gcc/gcc-4.4.1.inc
+++ b/recipes/gcc/gcc-4.4.1.inc
@@ -7,7 +7,7 @@ LICENSE = "GPLv3"
DEPENDS = "mpfr gmp"
-INC_PR = "r4"
+INC_PR = "r5"
FILESPATHPKG .= ":gcc-$PV"
@@ -18,6 +18,8 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://gcc-disable-linux-unwind-with-libc-inhibit.patch;patch=1 \
file://gcc-link-libgcc-with-libm.patch;patch=1 \
file://gcc-improve-tls-macro.patch;patch=1 \
+ file://cache-amnesia.patch;patch=1 \
+ file://gcc-flags-for-build.patch;patch=1 \
"
# Language Overrides
FORTRAN = ""
@@ -28,3 +30,46 @@ EXTRA_OECONF_BASE = " --enable-libssp \
--disable-libmudflap"
EXTRA_OECONF_append_linux-uclibc = " ${@base_contains('TARGET_ARCH', 'powerpc', '--disable-decimal-float --without-long-double-128', '',d)}"
+do_configure () {
+ # Setup these vars for cross building only
+ # ... because foo_FOR_TARGET apparently gets misinterpreted inside the
+ # gcc build stuff when the build is producing a cross compiler - i.e.
+ # when the 'current' target is the 'host' system, and the host is not
+ # the target (because the build is actually making a cross compiler!)
+ if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
+ export CC_FOR_TARGET="${CC}"
+ export GCC_FOR_TARGET="${CC}"
+ export CXX_FOR_TARGET="${CXX}"
+ export AS_FOR_TARGET="${HOST_PREFIX}as"
+ export LD_FOR_TARGET="${HOST_PREFIX}ld"
+ export NM_FOR_TARGET="${HOST_PREFIX}nm"
+ export AR_FOR_TARGET="${HOST_PREFIX}ar"
+ export GFORTRAN_FOR_TARGET="gfortran"
+ export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib"
+ fi
+ export CC_FOR_BUILD="${BUILD_CC}"
+ export CXX_FOR_BUILD="${BUILD_CXX}"
+ export CFLAGS_FOR_BUILD="${BUILD_CFLAGS}"
+ export CPPFLAGS_FOR_BUILD="${BUILD_CPPFLAGS}"
+ export CXXFLAGS_FOR_BUILD="${BUILD_CXXFLAGS}"
+ export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}"
+ export ARCH_FLAGS_FOR_TARGET="${ARCH_FLAGS_FOR_TARGET}"
+
+ # Make sure LDFLAGS are honored.
+ sed -i 's/^LDFLAGS = $/LDFLAGS = @LDFLAGS@/' ${S}/Makefile.in
+ sed -i 's/^LDFLAGS = $/LDFLAGS = @LDFLAGS@/' ${S}/Makefile.tpl
+
+ (cd ${S} && gnu-configize) || die "failure running gnu-configize"
+
+ # splice our idea of where the headers live into gcc's world
+ #echo "NATIVE_SYSTEM_HEADER_DIR = ${layout_includedir}" > ${T}/t-oe
+ #sed 's%^tmake_file=.*$%& ${T}/t-oe%' < ${S}/gcc/Makefile.in >${S}/gcc/Makefile.in.new
+ #mv ${S}/gcc/Makefile.in.new ${S}/gcc/Makefile.in
+
+ #echo "#define STANDARD_INCLUDE_DIR \"${layout_includedir}\"" >> ${S}/gcc/defaults.h
+
+ oe_runconf
+
+ # make sure that no @LDFLAG@ is left in the generated Makefile
+ sed -i "s/@LDFLAGS@//g" ${B}/Makefile
+}