diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2007-06-13 15:40:32 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2007-06-13 15:40:32 +0000 |
commit | c0064d39964c4f190a5f67334ae02c3152c3daa5 (patch) | |
tree | 99e1709ea7b09239f343f22bfba75704cb7ef44f /contrib | |
parent | 2007-06-12 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-c0064d39964c4f190a5f67334ae02c3152c3daa5.tar.bz2 |
Add sparc fpu bug fix.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/crossrpms/patches/gcc-core-4.1.2-rtems4.8-20070613.diff | 114 | ||||
-rw-r--r-- | contrib/crossrpms/patches/gcc-core-4.2.0-rtems4.8-20070613.diff | 43 |
2 files changed, 157 insertions, 0 deletions
diff --git a/contrib/crossrpms/patches/gcc-core-4.1.2-rtems4.8-20070613.diff b/contrib/crossrpms/patches/gcc-core-4.1.2-rtems4.8-20070613.diff new file mode 100644 index 0000000000..3a2dccffe5 --- /dev/null +++ b/contrib/crossrpms/patches/gcc-core-4.1.2-rtems4.8-20070613.diff @@ -0,0 +1,114 @@ +diff -uNr gcc-4.1.2.orig/gcc/config/arm/rtems-elf.h gcc-4.1.2/gcc/config/arm/rtems-elf.h +--- gcc-4.1.2.orig/gcc/config/arm/rtems-elf.h 2005-11-22 00:28:29.000000000 +0100 ++++ gcc-4.1.2/gcc/config/arm/rtems-elf.h 2007-06-13 17:19:33.000000000 +0200 +@@ -27,6 +27,7 @@ + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ ++ builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) + +diff -uNr gcc-4.1.2.orig/gcc/config/c4x/rtems.h gcc-4.1.2/gcc/config/c4x/rtems.h +--- gcc-4.1.2.orig/gcc/config/c4x/rtems.h 2005-06-25 03:22:41.000000000 +0200 ++++ gcc-4.1.2/gcc/config/c4x/rtems.h 2007-06-13 17:19:33.000000000 +0200 +@@ -24,6 +24,5 @@ + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ +- builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) +diff -uNr gcc-4.1.2.orig/gcc/config/mips/elf.h gcc-4.1.2/gcc/config/mips/elf.h +--- gcc-4.1.2.orig/gcc/config/mips/elf.h 2005-07-09 10:46:34.000000000 +0200 ++++ gcc-4.1.2/gcc/config/mips/elf.h 2007-06-13 17:19:33.000000000 +0200 +@@ -48,5 +48,3 @@ + + #undef ENDFILE_SPEC + #define ENDFILE_SPEC "crtend%O%s crtn%O%s" +- +-#define NO_IMPLICIT_EXTERN_C 1 +diff -uNr gcc-4.1.2.orig/gcc/config/mips/mips.h gcc-4.1.2/gcc/config/mips/mips.h +--- gcc-4.1.2.orig/gcc/config/mips/mips.h 2006-02-17 22:38:59.000000000 +0100 ++++ gcc-4.1.2/gcc/config/mips/mips.h 2007-06-13 17:19:34.000000000 +0200 +@@ -450,6 +450,8 @@ + #endif + #endif /* IN_LIBGCC2 */ + ++#define TARGET_LIBGCC_SDATA_SECTION ".sdata" ++ + #ifndef MULTILIB_ENDIAN_DEFAULT + #if TARGET_ENDIAN_DEFAULT == 0 + #define MULTILIB_ENDIAN_DEFAULT "EL" +@@ -2712,7 +2714,6 @@ + /* Define the strings to put out for each section in the object file. */ + #define TEXT_SECTION_ASM_OP "\t.text" /* instructions */ + #define DATA_SECTION_ASM_OP "\t.data" /* large data */ +-#define SDATA_SECTION_ASM_OP "\t.sdata" /* small data */ + + #undef READONLY_DATA_SECTION_ASM_OP + #define READONLY_DATA_SECTION_ASM_OP "\t.rdata" /* read-only data */ +diff -uNr gcc-4.1.2.orig/gcc/config/sparc/sparc.c gcc-4.1.2/gcc/config/sparc/sparc.c +--- gcc-4.1.2.orig/gcc/config/sparc/sparc.c 2006-04-14 09:02:43.000000000 +0200 ++++ gcc-4.1.2/gcc/config/sparc/sparc.c 2007-06-13 17:29:33.000000000 +0200 +@@ -675,7 +675,7 @@ + error ("-mcmodel= is not supported on 32 bit systems"); + } + +- fpu = TARGET_FPU; /* save current -mfpu status */ ++ fpu = target_flags & MASK_FPU; /* save current -mfpu status */ + + /* Set the default CPU. */ + for (def = &cpu_default[0]; def->name; ++def) +diff -uNr gcc-4.1.2.orig/gcc/config.gcc gcc-4.1.2/gcc/config.gcc +--- gcc-4.1.2.orig/gcc/config.gcc 2006-10-16 01:12:23.000000000 +0200 ++++ gcc-4.1.2/gcc/config.gcc 2007-06-13 17:19:34.000000000 +0200 +@@ -761,6 +761,11 @@ + tmake_file=bfin/t-bfin-elf + use_collect2=no + ;; ++bfin*-rtems*) ++ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h" ++ tmake_file=bfin/t-bfin-elf ++ use_collect2=no ++ ;; + bfin*-*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" + tmake_file=bfin/t-bfin +@@ -1560,7 +1565,7 @@ + tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" + use_fixproto=yes + ;; +-mips*-*-rtems*) ++mips-*-rtems*) + tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" + tmake_file="mips/t-elf t-rtems mips/t-rtems" + ;; +diff -uNr gcc-4.1.2.orig/gcc/crtstuff.c gcc-4.1.2/gcc/crtstuff.c +--- gcc-4.1.2.orig/gcc/crtstuff.c 2005-11-15 02:21:29.000000000 +0100 ++++ gcc-4.1.2/gcc/crtstuff.c 2007-06-13 17:19:34.000000000 +0200 +@@ -225,6 +225,9 @@ + in one DSO or the main program is not used in another object. The + dynamic linker takes care of this. */ + ++#ifdef TARGET_LIBGCC_SDATA_SECTION ++extern void *__dso_handle __attribute__ ((__section__ (TARGET_LIBGCC_SDATA_SECTION))); ++#endif + #ifdef HAVE_GAS_HIDDEN + extern void *__dso_handle __attribute__ ((__visibility__ ("hidden"))); + #endif +diff -uNr gcc-4.1.2.orig/Makefile.in gcc-4.1.2/Makefile.in +--- gcc-4.1.2.orig/Makefile.in 2006-04-04 23:03:05.000000000 +0200 ++++ gcc-4.1.2/Makefile.in 2007-06-13 17:19:34.000000000 +0200 +@@ -329,9 +329,9 @@ + # CFLAGS will be just -g. We want to ensure that TARGET libraries + # (which we know are built with gcc) are built with optimizations so + # prepend -O2 when setting CFLAGS_FOR_TARGET. +-CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) ++CFLAGS_FOR_TARGET = $(strip -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)) + SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ +-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) ++CXXFLAGS_FOR_TARGET = $(strip $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)) + LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) + LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates + LDFLAGS_FOR_TARGET = diff --git a/contrib/crossrpms/patches/gcc-core-4.2.0-rtems4.8-20070613.diff b/contrib/crossrpms/patches/gcc-core-4.2.0-rtems4.8-20070613.diff new file mode 100644 index 0000000000..1e93b37495 --- /dev/null +++ b/contrib/crossrpms/patches/gcc-core-4.2.0-rtems4.8-20070613.diff @@ -0,0 +1,43 @@ +diff -uNr gcc-4.2.0.orig/gcc/config/arm/rtems-elf.h gcc-4.2.0/gcc/config/arm/rtems-elf.h +--- gcc-4.2.0.orig/gcc/config/arm/rtems-elf.h 2005-11-21 23:56:34.000000000 +0100 ++++ gcc-4.2.0/gcc/config/arm/rtems-elf.h 2007-06-13 17:12:24.000000000 +0200 +@@ -27,6 +27,7 @@ + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ ++ builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) + +diff -uNr gcc-4.2.0.orig/gcc/config/c4x/rtems.h gcc-4.2.0/gcc/config/c4x/rtems.h +--- gcc-4.2.0.orig/gcc/config/c4x/rtems.h 2005-06-25 03:22:41.000000000 +0200 ++++ gcc-4.2.0/gcc/config/c4x/rtems.h 2007-06-13 17:12:24.000000000 +0200 +@@ -24,6 +24,5 @@ + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ +- builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) +diff -uNr gcc-4.2.0.orig/gcc/config/mips/elf.h gcc-4.2.0/gcc/config/mips/elf.h +--- gcc-4.2.0.orig/gcc/config/mips/elf.h 2006-10-08 09:35:47.000000000 +0200 ++++ gcc-4.2.0/gcc/config/mips/elf.h 2007-06-13 17:12:24.000000000 +0200 +@@ -49,6 +49,4 @@ + #undef ENDFILE_SPEC + #define ENDFILE_SPEC "crtend%O%s crtn%O%s" + +-#define NO_IMPLICIT_EXTERN_C 1 +- + #define HANDLE_PRAGMA_PACK_PUSH_POP 1 +diff -uNr gcc-4.2.0.orig/gcc/config/sparc/sparc.c gcc-4.2.0/gcc/config/sparc/sparc.c +--- gcc-4.2.0.orig/gcc/config/sparc/sparc.c 2006-04-14 09:01:38.000000000 +0200 ++++ gcc-4.2.0/gcc/config/sparc/sparc.c 2007-06-13 17:13:39.000000000 +0200 +@@ -703,7 +703,7 @@ + error ("-mcmodel= is not supported on 32 bit systems"); + } + +- fpu = TARGET_FPU; /* save current -mfpu status */ ++ fpu = target_flags & MASK_FPU; /* save current -mfpu status */ + + /* Set the default CPU. */ + for (def = &cpu_default[0]; def->name; ++def) |