gcc4: Sync with OE.dev

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1063 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie 2006-12-20 13:38:24 +00:00
parent 1292db8782
commit 1a4a231d88
6 changed files with 69 additions and 98 deletions

View File

@ -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;

View File

@ -0,0 +1,26 @@
Submitted By: Alexander E. Patrakov
Date: 2006-12-11
Initial Package Version: 4.1.1
Upstream Status: backport
Origin: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28621
Description: Fix crash of programs compiled with -Os -ffast-math
(affects procps on the LiveCD)
--- gcc-4.1.1/gcc/config/i386/i386.c
+++ gcc-4.1.1/gcc/config/i386/i386.c
@@ -1502,12 +1502,10 @@
}
/* Validate -mpreferred-stack-boundary= value, or provide default.
- The default of 128 bits is for Pentium III's SSE __m128, but we
- don't want additional code to keep the stack aligned when
- optimizing for code size. */
- ix86_preferred_stack_boundary = (optimize_size
- ? TARGET_64BIT ? 128 : 32
- : 128);
+ The default of 128 bits is for Pentium III's SSE __m128, We can't
+ change it because of optimize_size. Otherwise, we can't mix object
+ files compiled with -Os and -On. */
+ ix86_preferred_stack_boundary = 128;
if (ix86_preferred_stack_boundary_string)
{
i = atoi (ix86_preferred_stack_boundary_string);

View File

@ -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"

View 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++"

View 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

View 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