summaryrefslogtreecommitdiffstats
path: root/contrib/crossrpms/patches/gcc-core-4.1.1-rtems-20060909.diff
blob: 4ced94ff7f38c7316960d3f98bdb5d2b10453301 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
diff -uNr gcc-4.1.1.orig/gcc/config/arm/rtems-elf.h gcc-4.1.1/gcc/config/arm/rtems-elf.h
--- gcc-4.1.1.orig/gcc/config/arm/rtems-elf.h	2005-11-22 00:28:29.000000000 +0100
+++ gcc-4.1.1/gcc/config/arm/rtems-elf.h	2006-09-09 06:01:37.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.1.orig/gcc/config/bfin/rtems.h gcc-4.1.1/gcc/config/bfin/rtems.h
--- gcc-4.1.1.orig/gcc/config/bfin/rtems.h	1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.1.1/gcc/config/bfin/rtems.h	2006-09-09 05:59:58.000000000 +0200
@@ -0,0 +1,29 @@
+/* Definitions for rtems targeting a bfin
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   Contributed by Ralf Corsépius (ralf.corsepius@rtems.org).
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING.  If not, write to
+the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
+/* Target OS preprocessor built-ins.  */
+#define TARGET_OS_CPP_BUILTINS()		\
+  do						\
+    {						\
+      builtin_define ("__rtems__");		\
+      builtin_assert ("system=rtems");		\
+    }						\
+  while (0)
diff -uNr gcc-4.1.1.orig/gcc/config/c4x/rtems.h gcc-4.1.1/gcc/config/c4x/rtems.h
--- gcc-4.1.1.orig/gcc/config/c4x/rtems.h	2005-06-25 03:22:41.000000000 +0200
+++ gcc-4.1.1/gcc/config/c4x/rtems.h	2006-09-09 05:59:58.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.1.orig/gcc/config/mips/elf.h gcc-4.1.1/gcc/config/mips/elf.h
--- gcc-4.1.1.orig/gcc/config/mips/elf.h	2005-07-09 10:46:34.000000000 +0200
+++ gcc-4.1.1/gcc/config/mips/elf.h	2006-09-09 05:59:58.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.1.orig/gcc/config/mips/t-rtems gcc-4.1.1/gcc/config/mips/t-rtems
--- gcc-4.1.1.orig/gcc/config/mips/t-rtems	2005-01-15 09:38:53.000000000 +0100
+++ gcc-4.1.1/gcc/config/mips/t-rtems	2006-09-09 05:59:58.000000000 +0200
@@ -1,5 +1,16 @@
 # Custom multilibs for RTEMS
 
-MULTILIB_OPTIONS = mips1/mips3/mips32 msoft-float/msingle-float
-MULTILIB_DIRNAMES = mips1 mips3 mips32 soft-float single
-MULTILIB_MATCHES = msingle-float=m4650
+# default is mips1 EB hard-float
+MULTILIB_OPTIONS = mips1/mips3/mips32 EB/EL msoft-float
+MULTILIB_DIRNAMES = mips1 mips3 mips32 eb el soft-float
+MULTILIB_MATCHES = EL=mel EB=meb
+
+MULTILIB_EXCEPTIONS =
+
+# Big endian only
+MULTILIB_EXCEPTIONS += EL*
+MULTILIB_EXCEPTIONS += mips32/EL*
+
+# Little endian only
+MULTILIB_EXCEPTIONS += mips3
+MULTILIB_EXCEPTIONS += mips3/msoft-float
diff -uNr gcc-4.1.1.orig/gcc/config.gcc gcc-4.1.1/gcc/config.gcc
--- gcc-4.1.1.orig/gcc/config.gcc	2006-05-09 22:02:29.000000000 +0200
+++ gcc-4.1.1/gcc/config.gcc	2006-09-09 05:59:58.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.1.orig/gcc/Makefile.in gcc-4.1.1/gcc/Makefile.in
--- gcc-4.1.1.orig/gcc/Makefile.in	2006-05-17 20:38:58.000000000 +0200
+++ gcc-4.1.1/gcc/Makefile.in	2006-09-09 05:59:58.000000000 +0200
@@ -3616,9 +3616,9 @@
 install-driver: installdirs xgcc$(exeext)
 	-rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
 	-$(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
-	-rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)
+	-rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-$(version)$(exeext)
 	-( cd $(DESTDIR)$(bindir) && \
-	   $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version) )
+	   $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version)$(exeext) )
 	-if [ -f gcc-cross$(exeext) ] ; then \
 	  if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
 	    rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \