]> git.pld-linux.org Git - packages/gcc.git/blob - gcc-ada-link.patch
- fix "could not split insn" with "-O1 -ffast-math".
[packages/gcc.git] / gcc-ada-link.patch
1 --- gcc-4.0-20040919/gcc/ada/link.c.orig        2004-09-13 12:18:40.000000000 +0200
2 +++ gcc-4.0-20040919/gcc/ada/link.c     2004-09-26 12:24:29.079704096 +0200
3 @@ -164,9 +164,9 @@
4  
5  #elif defined (linux)
6  const char *__gnat_object_file_option = "";
7 -const char *__gnat_run_path_option = "-Wl,-rpath,";
8 -char __gnat_shared_libgnat_default = STATIC;
9 -int __gnat_link_max = 8192;
10 +const char *__gnat_run_path_option = "";
11 +char __gnat_shared_libgnat_default = SHARED;
12 +int __gnat_link_max = 131072;
13  unsigned char __gnat_objlist_file_supported = 1;
14  unsigned char __gnat_using_gnu_linker = 1;
15  const char *__gnat_object_library_extension = ".a";
16 --- gcc-4.1-20050522/gcc/ada/Makefile.in.orig   2005-05-26 10:48:40.000000000 +0000
17 +++ gcc-4.1-20050522/gcc/ada/Makefile.in        2005-05-26 10:59:25.000000000 +0000
18 @@ -139,7 +139,7 @@
19  objext = .o
20  exeext =
21  arext  = .a
22 -soext  = .so
23 +soext  = .so.1
24  shext  =
25  hyphen = -
26  
27 @@ -1367,6 +1367,31 @@
28    LIBRARY_VERSION := $(LIB_VERSION)
29  endif
30  
31 +ifeq ($(strip $(filter-out sparc64% linux%,$(arch) $(osys))),)
32 +  LIBGNAT_TARGET_PAIRS = \
33 +  a-intnam.ads<a-intnam-linux.ads \
34 +  s-inmaop.adb<s-inmaop-posix.adb \
35 +  s-intman.adb<s-intman-posix.adb \
36 +  s-osinte.adb<s-osinte-posix.adb \
37 +  s-osinte.ads<s-osinte-linux.ads \
38 +  s-osprim.adb<s-osprim-posix.adb \
39 +  s-taprop.adb<s-taprop-linux.adb \
40 +  s-taspri.ads<s-taspri-linux.ads \
41 +  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
42 +  s-parame.adb<s-parame-linux.adb \
43 +  system.ads<system-linux-sparc64.ads
44 +
45 +  TOOLS_TARGET_PAIRS =  \
46 +    mlib-tgt.adb<mlib-tgt-linux.adb \
47 +    indepsw.adb<indepsw-linux.adb
48 +
49 +  THREADSLIB = -lpthread
50 +  GNATLIB_SHARED = gnatlib-shared-dual
51 +  GMEM_LIB = gmemlib
52 +  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
53 +  LIBRARY_VERSION := $(LIB_VERSION)
54 +endif
55 +
56  ifeq ($(strip $(filter-out hppa% linux%,$(arch) $(osys))),)
57    LIBGNAT_TARGET_PAIRS = \
58    a-intnam.ads<a-intnam-linux.ads \
59 @@ -1468,6 +1493,31 @@
60    LIBRARY_VERSION := $(LIB_VERSION)
61  endif
62  
63 +ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
64 +  LIBGNAT_TARGET_PAIRS = \
65 +  a-intnam.ads<a-intnam-linux.ads \
66 +  s-inmaop.adb<s-inmaop-posix.adb \
67 +  s-intman.adb<s-intman-posix.adb \
68 +  s-osinte.adb<s-osinte-posix.adb \
69 +  s-osinte.ads<s-osinte-linux.ads \
70 +  s-osprim.adb<s-osprim-posix.adb \
71 +  s-taprop.adb<s-taprop-linux.adb \
72 +  s-taspri.ads<s-taspri-linux.ads \
73 +  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
74 +  s-parame.adb<s-parame-linux.adb \
75 +  system.ads<system-linux-sparc.ads
76 +
77 +  TOOLS_TARGET_PAIRS =  \
78 +    mlib-tgt.adb<mlib-tgt-linux.adb \
79 +    indepsw.adb<indepsw-linux.adb
80 +
81 +  THREADSLIB = -lpthread
82 +  GNATLIB_SHARED = gnatlib-shared-dual
83 +  GMEM_LIB = gmemlib
84 +  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
85 +  LIBRARY_VERSION := $(LIB_VERSION)
86 +endif
87 +
88  ifeq ($(strip $(filter-out powerpc darwin%,$(arch) $(osys))),)
89    LIBGNAT_TARGET_PAIRS = \
90    a-intnam.ads<a-intnam-darwin.ads \
91 @@ -1763,6 +1813,9 @@
92  GCC_FOR_TARGET=./xgcc -B./ $(FLAGS_FOR_TARGET)
93  
94  gnatlib: ../stamp-gnatlib1 ../stamp-gnatlib2
95 +       $(RMDIR) save
96 +       $(MKDIR) save
97 +       $(MV) *.o save/
98         $(MAKE) -C rts \
99                 CC="`echo \"$(GCC_FOR_TARGET)\" \
100                 | sed -e 's^./xgcc^../../xgcc^' -e 's^-B./^-B../../^'`" \
101 @@ -1779,6 +1832,8 @@
102                 srcdir=$(fsrcdir) \
103                 -f ../Makefile \
104                 $(GNATRTL_OBJS)
105 +       $(MV) save/*.o .
106 +       $(RMDIR) save
107         $(RM) rts/libgnat$(arext) rts/libgnarl$(arext)
108         $(AR) $(AR_FLAGS) rts/libgnat$(arext) \
109            $(addprefix rts/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))
110 @@ -1816,7 +1871,8 @@
111                 -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
112                 $(GNATRTL_TASKING_OBJS) \
113                 $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
114 -               $(THREADSLIB)
115 +               $(THREADSLIB) \
116 +               ./libgnat-$(LIBRARY_VERSION)$(soext)
117         cd rts; $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
118                 libgnat$(soext)
119         cd rts; $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
120 @@ -1863,7 +1919,7 @@
121              THREAD_KIND="$(THREAD_KIND)" \
122               gnatlib
123         $(RM) rts/libgna*$(soext)
124 -       cd rts; ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
125 +       cd rts; ../../xgcc -B../../ -shared -shared-libgcc $(TARGET_LIBGCC2_CFLAGS) \
126                 -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
127                 $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
128                 $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
129 --- gcc-4.0-20050514/gcc/ada.orig/system-linux-sparc64.ads      1970-01-01 00:00:00.000000000 +0000
130 +++ gcc-4.0-20050514/gcc/ada/system-linux-sparc64.ads   2005-05-21 18:34:52.000000000 +0000
131 @@ -0,0 +1,151 @@
132 +------------------------------------------------------------------------------
133 +--                                                                          --
134 +--                        GNAT RUN-TIME COMPONENTS                          --
135 +--                                                                          --
136 +--                               S Y S T E M                                --
137 +--                                                                          --
138 +--                                 S p e c                                  --
139 +--                          (GNU/Linux-SPARC64 Version)                     --
140 +--                                                                          --
141 +--          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
142 +--                                                                          --
143 +-- This specification is derived from the Ada Reference Manual for use with --
144 +-- GNAT. The copyright notice above, and the license provisions that follow --
145 +-- apply solely to the  contents of the part following the private keyword. --
146 +--                                                                          --
147 +-- GNAT is free software;  you can  redistribute it  and/or modify it under --
148 +-- terms of the  GNU General Public License as published  by the Free Soft- --
149 +-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
150 +-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
151 +-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
152 +-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
153 +-- for  more details.  You should have  received  a copy of the GNU General --
154 +-- Public License  distributed with GNAT;  see file COPYING.  If not, write --
155 +-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
156 +-- MA 02111-1307, USA.                                                      --
157 +--                                                                          --
158 +-- As a special exception,  if other files  instantiate  generics from this --
159 +-- unit, or you link  this unit with other files  to produce an executable, --
160 +-- this  unit  does not  by itself cause  the resulting  executable  to  be --
161 +-- covered  by the  GNU  General  Public  License.  This exception does not --
162 +-- however invalidate  any other reasons why  the executable file  might be --
163 +-- covered by the  GNU Public License.                                      --
164 +--                                                                          --
165 +-- GNAT was originally developed  by the GNAT team at  New York University. --
166 +-- Extensive contributions were provided by Ada Core Technologies Inc.      --
167 +--                                                                          --
168 +------------------------------------------------------------------------------
169 +
170 +package System is
171 +pragma Pure (System);
172 +--  Note that we take advantage of the implementation permission to
173 +--  make this unit Pure instead of Preelaborable, see RM 13.7(36)
174 +
175 +   type Name is (SYSTEM_NAME_GNAT);
176 +   System_Name : constant Name := SYSTEM_NAME_GNAT;
177 +
178 +   --  System-Dependent Named Numbers
179 +
180 +   Min_Int               : constant := Long_Long_Integer'First;
181 +   Max_Int               : constant := Long_Long_Integer'Last;
182 +
183 +   Max_Binary_Modulus    : constant := 2 ** Long_Long_Integer'Size;
184 +   Max_Nonbinary_Modulus : constant := Integer'Last;
185 +
186 +   Max_Base_Digits       : constant := Long_Long_Float'Digits;
187 +   Max_Digits            : constant := Long_Long_Float'Digits;
188 +
189 +   Max_Mantissa          : constant := 63;
190 +   Fine_Delta            : constant := 2.0 ** (-Max_Mantissa);
191 +
192 +   Tick                  : constant := 0.000_001;
193 +
194 +   --  Storage-related Declarations
195 +
196 +   type Address is private;
197 +   Null_Address : constant Address;
198 +
199 +   Storage_Unit : constant := 8;
200 +   Word_Size    : constant := 64;
201 +   Memory_Size  : constant := 2 ** 64;
202 +
203 +   --  Address comparison
204 +
205 +   function "<"  (Left, Right : Address) return Boolean;
206 +   function "<=" (Left, Right : Address) return Boolean;
207 +   function ">"  (Left, Right : Address) return Boolean;
208 +   function ">=" (Left, Right : Address) return Boolean;
209 +   function "="  (Left, Right : Address) return Boolean;
210 +
211 +   pragma Import (Intrinsic, "<");
212 +   pragma Import (Intrinsic, "<=");
213 +   pragma Import (Intrinsic, ">");
214 +   pragma Import (Intrinsic, ">=");
215 +   pragma Import (Intrinsic, "=");
216 +
217 +   --  Other System-Dependent Declarations
218 +
219 +   type Bit_Order is (High_Order_First, Low_Order_First);
220 +   Default_Bit_Order : constant Bit_Order := High_Order_First;
221 +
222 +   --  Priority-related Declarations (RM D.1)
223 +
224 +   Max_Priority           : constant Positive := 30;
225 +   Max_Interrupt_Priority : constant Positive := 31;
226 +
227 +   subtype Any_Priority       is Integer      range  0 .. 31;
228 +   subtype Priority           is Any_Priority range  0 .. 30;
229 +   subtype Interrupt_Priority is Any_Priority range 31 .. 31;
230 +
231 +   Default_Priority : constant Priority := 15;
232 +
233 +private
234 +
235 +   type Address is mod Memory_Size;
236 +   Null_Address : constant Address := 0;
237 +
238 +   --------------------------------------
239 +   -- System Implementation Parameters --
240 +   --------------------------------------
241 +
242 +   --  These parameters provide information about the target that is used
243 +   --  by the compiler. They are in the private part of System, where they
244 +   --  can be accessed using the special circuitry in the Targparm unit
245 +   --  whose source should be consulted for more detailed descriptions
246 +   --  of the individual switch values.
247 +
248 +   AAMP                      : constant Boolean := False;
249 +   Backend_Divide_Checks     : constant Boolean := False;
250 +   Backend_Overflow_Checks   : constant Boolean := False;
251 +   Command_Line_Args         : constant Boolean := True;
252 +   Configurable_Run_Time     : constant Boolean := False;
253 +   Denorm                    : constant Boolean := True;
254 +   Duration_32_Bits          : constant Boolean := False;
255 +   Exit_Status_Supported     : constant Boolean := True;
256 +   Fractional_Fixed_Ops      : constant Boolean := False;
257 +   Frontend_Layout           : constant Boolean := False;
258 +   Functions_Return_By_DSP   : constant Boolean := False;
259 +   Machine_Overflows         : constant Boolean := False;
260 +   Machine_Rounds            : constant Boolean := True;
261 +   OpenVMS                   : constant Boolean := False;
262 +   Preallocated_Stacks       : constant Boolean := False;
263 +   Signed_Zeros              : constant Boolean := True;
264 +   Stack_Check_Default       : constant Boolean := False;
265 +   Stack_Check_Probes        : constant Boolean := False;
266 +   Support_64_Bit_Divides    : constant Boolean := True;
267 +   Support_Aggregates        : constant Boolean := True;
268 +   Support_Composite_Assign  : constant Boolean := True;
269 +   Support_Composite_Compare : constant Boolean := True;
270 +   Support_Long_Shifts       : constant Boolean := True;
271 +   Suppress_Standard_Library : constant Boolean := False;
272 +   Use_Ada_Main_Program_Name : constant Boolean := False;
273 +   ZCX_By_Default            : constant Boolean := True;
274 +   GCC_ZCX_Support           : constant Boolean := True;
275 +   Front_End_ZCX_Support     : constant Boolean := False;
276 +
277 +   --  Obsolete entries, to be removed eventually (bootstrap issues!)
278 +
279 +   High_Integrity_Mode       : constant Boolean := False;
280 +   Long_Shifts_Inlined       : constant Boolean := True;
281 +
282 +end System;
This page took 0.047204 seconds and 3 git commands to generate.