gcc4: Sync with OE.dev
authorRichard Purdie <richard@openedhand.com>
Wed, 20 Dec 2006 13:38:24 +0000 (13:38 +0000)
committerRichard Purdie <richard@openedhand.com>
Wed, 20 Dec 2006 13:38:24 +0000 (13:38 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1063 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/gcc/gcc-4.1.1/fix-ICE-in-arm_unwind_emit_set.diff [new file with mode: 0644]
meta/packages/gcc/gcc-4.1.1/gcc-4.1.1-pr13685-1.patch [new file with mode: 0644]
meta/packages/gcc/gcc-4.1.1/unbreak-armv4t.patch [new file with mode: 0644]
meta/packages/gcc/gcc-cross_4.1.1.bb
meta/packages/gcc/gcc4-build.inc
meta/packages/gcc/gcc_4.1.1.bb

diff --git a/meta/packages/gcc/gcc-4.1.1/fix-ICE-in-arm_unwind_emit_set.diff b/meta/packages/gcc/gcc-4.1.1/fix-ICE-in-arm_unwind_emit_set.diff
new file mode 100644 (file)
index 0000000..568e15a
--- /dev/null
@@ -0,0 +1,18 @@
+--- trunk/gcc/config/arm/arm.c 2006/09/19 13:18:27     117055
++++ trunk/gcc/config/arm/arm.c 2006/09/19 13:19:24     117056
+@@ -15415,6 +15415,15 @@
+         /* Move from sp to reg.  */
+         asm_fprintf (asm_out_file, "\t.movsp %r\n", REGNO (e0));
+       }
++     else if (GET_CODE (e1) == PLUS
++            && GET_CODE (XEXP (e1, 0)) == REG
++            && REGNO (XEXP (e1, 0)) == SP_REGNUM
++            && GET_CODE (XEXP (e1, 1)) == CONST_INT)
++      {
++        /* Set reg to offset from sp.  */
++        asm_fprintf (asm_out_file, "\t.movsp %r, #%d\n",
++                     REGNO (e0), (int)INTVAL(XEXP (e1, 1)));
++      }
+       else
+       abort ();
+       break;
diff --git a/meta/packages/gcc/gcc-4.1.1/gcc-4.1.1-pr13685-1.patch b/meta/packages/gcc/gcc-4.1.1/gcc-4.1.1-pr13685-1.patch
new file mode 100644 (file)
index 0000000..a56b130
--- /dev/null
@@ -0,0 +1,26 @@
+Submitted By: Alexander E. Patrakov\r
+Date: 2006-12-11\r
+Initial Package Version: 4.1.1\r
+Upstream Status: backport\r
+Origin: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28621\r
+Description: Fix crash of programs compiled with -Os -ffast-math\r
+(affects procps on the LiveCD)\r
+--- gcc-4.1.1/gcc/config/i386/i386.c\r
++++ gcc-4.1.1/gcc/config/i386/i386.c\r
+@@ -1502,12 +1502,10 @@\r
+     }\r
\r
+   /* Validate -mpreferred-stack-boundary= value, or provide default.\r
+-     The default of 128 bits is for Pentium III's SSE __m128, but we\r
+-     don't want additional code to keep the stack aligned when\r
+-     optimizing for code size.  */\r
+-  ix86_preferred_stack_boundary = (optimize_size\r
+-                                 ? TARGET_64BIT ? 128 : 32\r
+-                                 : 128);\r
++     The default of 128 bits is for Pentium III's SSE __m128, We can't\r
++     change it because of optimize_size.  Otherwise, we can't mix object\r
++     files compiled with -Os and -On.  */\r
++  ix86_preferred_stack_boundary = 128;\r
+   if (ix86_preferred_stack_boundary_string)\r
+     {\r
+       i = atoi (ix86_preferred_stack_boundary_string);\r
diff --git a/meta/packages/gcc/gcc-4.1.1/unbreak-armv4t.patch b/meta/packages/gcc/gcc-4.1.1/unbreak-armv4t.patch
new file mode 100644 (file)
index 0000000..b3399ab
--- /dev/null
@@ -0,0 +1,12 @@
+diff -urN gcc-4.1.1/gcc/config/arm/linux-eabi.h gcc-4.1.1-arm9tdmi/gcc/config/arm/linux-eabi.h
+--- gcc-4.1.1/gcc/config/arm/linux-eabi.h      2006-10-22 11:11:49.000000000 -0700
++++ gcc-4.1.1-arm9tdmi/gcc/config/arm/linux-eabi.h     2006-10-24 21:34:01.000000000 -0700
+@@ -45,7 +45,7 @@
+    The ARM10TDMI core is the default for armv5t, so set
+    SUBTARGET_CPU_DEFAULT to achieve this.  */
+ #undef SUBTARGET_CPU_DEFAULT
+-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
index 4c53017..5721dee 100644 (file)
@@ -5,7 +5,7 @@ inherit cross
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
 # NOTE: split PR.  If the main .oe changes something that affects its *build*
 # remember to increment this one too.
-PR = "r6"
+PR = "r9"
 
 DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
index 817d8b5..b8a214a 100644 (file)
@@ -1,97 +1,6 @@
-HAS_GFORTRAN = "no"
+FORTRAN = ",f95"
+HAS_GFORTRAN ?= "yes"
 HAS_G2C = "no"
 
-MIRRORS_prepend () {
-${GNU_MIRROR}/gcc/releases/    ftp://gcc.gnu.org/pub/gcc/releases/
-${GNU_MIRROR}/gcc/     http://mirrors.rcn.net/pub/sourceware/gcc/releases/
-${GNU_MIRROR}/gcc/releases/    http://gcc.get-software.com/releases/
-${GNU_MIRROR}/gcc/     http://gcc.get-software.com/releases/
-}
-
-gcclibdir ?= "${libdir}/gcc"
-S = "${WORKDIR}/gcc-${PV}"
-B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
-BINV ?= "${PV}"
-
-# gcj doesn't work on some architectures
-JAVA = ",java"
-JAVA_arm = ""
-JAVA_armeb = ""
-JAVA_mipsel = ""
-JAVA_sh3 = ""
-# gcc4-build sets this to f95
-#FORTRAN ?= "f77"
-#LANGUAGES ?= "c,c++,${JAVA}"
-LANGUAGES ?= "c,c++,${JAVA}"
-
-EXTRA_OECONF = "${@['--enable-clocale=generic', ''][bb.data.getVar('USE_NLS', d, 1) != 'no']} \
-                --with-gnu-ld \
-                --enable-shared \
-                --enable-target-optspace \
-                --enable-languages=${LANGUAGES} \
-                --enable-threads=posix \
-                --enable-multilib \
-                --enable-c99 \
-                --enable-long-long \
-                --enable-symvers=gnu \
-                --enable-libstdcxx-pch \
-                --program-prefix=${TARGET_PREFIX} \
-                ${EXTRA_OECONF_PATHS} \
-                ${EXTRA_OECONF_DEP}"
-
-EXTRA_OECONF_PATHS = " \
-                      --with-local-prefix=${prefix}/local \
-                      --with-gxx-include-dir=${includedir}/c++/${BINV}"
-
-EXTRA_OECONF_DEP = ""
-EXTRA_OECONF_uclibc = "--disable-__cxa_atexit"
-EXTRA_OECONF_glibc = "--enable-__cxa_atexit"
-EXTRA_OECONF += "${@get_gcc_fpu_setting(bb, d)}"
-CPPFLAGS = ""
-
-# Used by configure to define additional values for FLAGS_FOR_TARGET -
-# passed to all the compilers.
-ARCH_FLAGS_FOR_TARGET = ""
-#NOTE: not tested on other platforms, the following is probably correct
-# everywhere!
-ARCH_FLAGS_FOR_TARGET_slugos = "${TARGET_CC_ARCH}"
-ARCH_FLAGS_FOR_TARGET_unslung = "${TARGET_CC_ARCH}"
-EXTRA_OEMAKE += "ARCH_FLAGS_FOR_TARGET='${ARCH_FLAGS_FOR_TARGET}'"
-
-require gcc-fpu.inc
-
-python __anonymous () {
-    import bb, re
-    if (re.match('linux-uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None):
-        bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_uclibc}', d)
-    elif (re.match('linux$', bb.data.getVar('TARGET_OS', d, 1)) != None):
-        bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_glibc}', 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 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}"
-       (cd ${S} && gnu-configize) || die "failure running gnu-configize"
-       oe_runconf
-}
+include gcc3-build.inc
 
index e2d3d25..e323533 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r9"
 DESCRIPTION = "The GNU cc and gcc C compilers."
 HOMEPAGE = "http://www.gnu.org/software/gcc/"
 SECTION = "devel"
@@ -27,19 +27,25 @@ SRC_URI = "http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2 \
        file://arm-thumb-cache.patch;patch=1 \
        file://ldflags.patch;patch=1 \
        file://cse.patch;patch=1 \
-       file://zecke-xgcc-cpp.patch;patch=1 "
+       file://zecke-xgcc-cpp.patch;patch=1 \
+       file://unbreak-armv4t.patch;patch=1 \
+        file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \
+        file://gcc-4.1.1-pr13685-1.patch;patch=1 \
+       "
 
 SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
 
 #Set the fortran bits
+# 'fortran' or '', not 'f77' like gcc3 had 
 FORTRAN = "" 
 HAS_GFORTRAN = "no"
 HAS_G2C = "no"
 
 #Set the java bits
 JAVA_arm = ""  
+JAVA = ""
 
-LANGUAGES = "c,c++"
+LANGUAGES = "c,c++${FORTRAN}${JAVA}"
 require gcc3-build.inc