provide KERNEL_BITS
[buildroot.git] / toolchain / gcc / 4.4.0 / gcc-4.3-pr33396-libgcc-intermodule.02b.patch
blob34e8c5d184fc56593cb3f95ba001626ead2eb2cb
1 diff -rdup gcc-4.4.0.old/gcc/gbl-ctors.h gcc-4.4.0/gcc/gbl-ctors.h
2 --- gcc-4.4.0.old/gcc/gbl-ctors.h 2005-10-31 18:03:18.000000000 +0100
3 +++ gcc-4.4.0/gcc/gbl-ctors.h 2008-10-07 09:20:26.000000000 +0200
4 @@ -38,6 +38,8 @@ Software Foundation, 51 Franklin Street,
5 Note that this file should only be compiled with GCC.
6 */
8 +#ifndef GCC_GBL_CTORS_H
9 +#define GCC_GBL_CTORS_H
10 /* Declare a pointer to void function type. */
12 typedef void (*func_ptr) (void);
13 @@ -84,3 +86,4 @@ do { \
14 } while (0)
15 #endif
17 +#endif /* GCC_GBL_CTORS_H */
18 diff -rdup gcc-4.4.0.old/gcc/libgcc2.c gcc-4.4.0/gcc/libgcc2.c
19 --- gcc-4.4.0.old/gcc/libgcc2.c 2008-06-09 19:58:55.000000000 +0200
20 +++ gcc-4.4.0/gcc/libgcc2.c 2008-10-07 09:20:26.000000000 +0200
21 @@ -1538,17 +1538,17 @@ FUNC (DWtype u)
22 && SIZE > (DI_SIZE - SIZE + FSSIZE) \
23 && !AVOID_FP_TYPE_CONVERSION(SIZE))
24 #if defined(L_floatundisf)
25 -#define FUNC __floatundisf
26 +#define FUNCU __floatundisf
27 #define FSTYPE SFtype
28 #define FSSIZE SF_SIZE
29 #else
30 -#define FUNC __floatundidf
31 +#define FUNCU __floatundidf
32 #define FSTYPE DFtype
33 #define FSSIZE DF_SIZE
34 #endif
36 FSTYPE
37 -FUNC (UDWtype u)
38 +FUNCU (UDWtype u)
40 #if FSSIZE >= W_TYPE_SIZE
41 /* When the word size is small, we never get any rounding error. */
42 diff -rdup gcc-4.4.0.old/libgcc/config/libbid/bid128_div.c gcc-4.4.0/libgcc/config/libbid/bid128_div.c
43 --- gcc-4.4.0.old/libgcc/config/libbid/bid128_div.c 2007-10-12 10:14:39.000000000 +0200
44 +++ gcc-4.4.0/libgcc/config/libbid/bid128_div.c 2008-10-07 09:20:26.000000000 +0200
45 @@ -34,9 +34,9 @@ Software Foundation, 51 Franklin Street,
46 #define FE_ALL_FLAGS FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW|FE_UNDERFLOW|FE_INEXACT
47 #endif
49 -extern UINT32 convert_table[5][128][2];
50 -extern SINT8 factors[][2];
51 -extern UINT8 packed_10000_zeros[];
52 +extern const UINT32 convert_table[5][128][2];
53 +extern const SINT8 factors[][2];
54 +extern const UINT8 packed_10000_zeros[];
56 BID128_FUNCTION_ARG2 (bid128_div, x, y)
58 diff -rdup gcc-4.4.0.old/libgcc/config/libbid/bid64_div.c gcc-4.4.0/libgcc/config/libbid/bid64_div.c
59 --- gcc-4.4.0.old/libgcc/config/libbid/bid64_div.c 2007-10-12 10:14:39.000000000 +0200
60 +++ gcc-4.4.0/libgcc/config/libbid/bid64_div.c 2008-10-07 09:20:26.000000000 +0200
61 @@ -66,9 +66,9 @@ Software Foundation, 51 Franklin Street,
62 #define FE_ALL_FLAGS FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW|FE_UNDERFLOW|FE_INEXACT
63 #endif
65 -extern UINT32 convert_table[5][128][2];
66 -extern SINT8 factors[][2];
67 -extern UINT8 packed_10000_zeros[];
68 +extern const UINT32 convert_table[5][128][2];
69 +extern const SINT8 factors[][2];
70 +extern const UINT8 packed_10000_zeros[];
73 #if DECIMAL_CALL_BY_REFERENCE
74 @@ -1366,11 +1366,6 @@ if (!done) {
76 //#define LEAVE_TRAILING_ZEROS
78 -extern UINT32 convert_table[5][128][2];
79 -extern SINT8 factors[][2];
80 -extern UINT8 packed_10000_zeros[];
83 //UINT64* bid64_div128x128(UINT64 res, UINT128 *px, UINT128 *py, unsigned rnd_mode, unsigned *pfpsf)
85 TYPE0_FUNCTION_ARG128_ARG128 (UINT64, bid64qq_div, x, y)
86 diff -rdup gcc-4.4.0.old/libgcc/configure gcc-4.4.0/libgcc/configure
87 --- gcc-4.4.0.old/libgcc/configure 2008-10-07 09:00:09.000000000 +0200
88 +++ gcc-4.4.0/libgcc/configure 2008-10-07 09:20:42.000000000 +0200
89 @@ -272,7 +272,7 @@ PACKAGE_STRING='GNU C Runtime Library 1.
90 PACKAGE_BUGREPORT=''
92 ac_unique_file="static-object.mk"
93 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
94 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libgcc_topdir enable_shared slibdir onestep INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AWK build build_cpu build_vendor build_os host host_cpu host_vendor host_os host_noncanonical build_libsubdir build_subdir host_subdir target_subdir AR ac_ct_AR LIPO ac_ct_LIPO NM ac_ct_NM RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP decimal_float enable_decimal_float fixed_point vis_hide set_have_cc_tls LIBGCC_LIBM tmake_file extra_parts asm_hidden_op LIBOBJS LTLIBOBJS'
95 ac_subst_files=''
96 ac_pwd=`pwd`
98 @@ -812,6 +812,7 @@ Optional Features:
99 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
100 --disable-shared don't provide a shared libgcc
101 --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory
102 + --enable-intermodule build the library in one step
103 --enable-decimal-float={no,yes,bid,dpd}
104 enable decimal float extension to C. Selecting 'bid'
105 or 'dpd' choses which decimal floating point format
106 @@ -1419,6 +1420,23 @@ fi
110 +# Build with intermodule optimisations
111 +echo "$as_me:$LINENO: checking for --enable-intermodule" >&5
112 +echo $ECHO_N "checking for --enable-intermodule... $ECHO_C" >&6
113 +# Check whether --enable-intermodule or --disable-intermodule was given.
114 +if test "${enable_intermodule+set}" = set; then
115 + enableval="$enable_intermodule"
116 + case "$enable_intermodule" in
117 + yes) onestep="-onestep";;
118 + *) onestep="";;
119 +esac
120 +else
121 + onestep=""
122 +fi;
123 +echo "$as_me:$LINENO: result: $enable_intermodule" >&5
124 +echo "${ECHO_T}$enable_intermodule" >&6
127 # Find a good install program. We prefer a C program (faster),
128 # so one script is as good as another. But avoid the broken or
129 # incompatible versions:
130 @@ -4241,6 +4259,7 @@ s,@LIBS@,$LIBS,;t t
131 s,@libgcc_topdir@,$libgcc_topdir,;t t
132 s,@enable_shared@,$enable_shared,;t t
133 s,@slibdir@,$slibdir,;t t
134 +s,@onestep@,$onestep,;t t
135 s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
136 s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
137 s,@INSTALL_DATA@,$INSTALL_DATA,;t t
138 diff -rdup gcc-4.4.0.old/libgcc/configure.ac gcc-4.4.0/libgcc/configure.ac
139 --- gcc-4.4.0.old/libgcc/configure.ac 2008-10-07 08:59:50.000000000 +0200
140 +++ gcc-4.4.0/libgcc/configure.ac 2008-10-07 09:20:26.000000000 +0200
141 @@ -78,6 +78,18 @@ else
143 AC_SUBST(slibdir)
145 +# Build with intermodule optimisations
146 +AC_MSG_CHECKING([for --enable-intermodule])
147 +AC_ARG_ENABLE(intermodule,
148 +[ --enable-intermodule build the library in one step],
149 +[case "$enable_intermodule" in
150 + yes) onestep="-onestep";;
151 + *) onestep="";;
152 +esac],
153 +[onestep=""])
154 +AC_MSG_RESULT($enable_intermodule)
155 +AC_SUBST(onestep)
157 AC_PROG_INSTALL
159 AC_PROG_AWK
160 diff -rdup gcc-4.4.0.old/libgcc/Makefile.in gcc-4.4.0/libgcc/Makefile.in
161 --- gcc-4.4.0.old/libgcc/Makefile.in 2008-10-07 08:59:50.000000000 +0200
162 +++ gcc-4.4.0/libgcc/Makefile.in 2008-10-07 09:20:26.000000000 +0200
163 @@ -165,6 +165,8 @@ STRIP_FOR_TARGET = $(STRIP)
164 libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version)
165 # Used to install the shared libgcc.
166 slibdir = @slibdir@
167 +# onestep setting for included iterator makefiles
168 +onestep = @onestep@
170 export AR_FOR_TARGET
171 export AR_CREATE_FOR_TARGET
172 @@ -327,8 +329,26 @@ LIB2_DIVMOD_FUNCS := $(filter-out $(LIB2
173 $(LIB2_DIVMOD_FUNCS))
175 # Build "libgcc1" (assembly) components.
177 +lib1asmfuncs-onestep-sources += $(gcc_srcdir)/config/$(LIB1ASMSRC)
178 +lib1asmfuncs-onestep-defines += $(patsubst %,-DL%,$(LIB1ASMFUNCS))
179 +libgcc-objects-onestep += $(if $(LIB1ASMSRC),lib1asmfuncs_onestep$(objext))
181 ifeq ($(enable_shared),yes)
183 +libgcc-s-objects-onestep += $(if $(LIB1ASMSRC),lib1asmfuncs_s_onestep$(objext))
185 +lib1asmfuncs-onestep-prereq += $(patsubst %,%.vis,$(LIB1ASMFUNCS))
187 +lib1asmfuncs_onestep$(objext): $(lib1asmfuncs-onestep-sources) \
188 + $(lib1asmfuncs-onestep-prereq)
189 + $(gcc_compile) $(lib1asmfuncs-onestep-defines) -xassembler-with-cpp \
190 + -c $(gcc_srcdir)/config/$(LIB1ASMSRC) \
191 + $(patsubst %,-include %,$(lib1asmfuncs-onestep-prereq)) -combine
192 +lib1asmfuncs_s_onestep$(objext): $(lib1asmfuncs-onestep-sources)
193 + $(gcc_s_compile) $(lib1asmfuncs-onestep-defines) -xassembler-with-cpp \
194 + -c $(gcc_srcdir)/config/$(LIB1ASMSRC) -combine
196 lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
197 $(lib1asmfuncs-o): %$(objext): $(gcc_srcdir)/config/$(LIB1ASMSRC) %.vis
198 $(gcc_compile) -DL$* -xassembler-with-cpp \
199 @@ -345,6 +365,10 @@ libgcc-s-objects += $(lib1asmfuncs-s-o)
201 else
203 +lib1asmfuncs_onestep$(objext): $(lib1asmfuncs-onestep-sources)
204 + $(gcc_compile) $(lib1asmfuncs-onestep-defines) -xassembler-with-cpp \
205 + -c $(gcc_srcdir)/config/$(LIB1ASMSRC) -combine
207 lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
208 $(lib1asmfuncs-o): %$(objext): $(gcc_srcdir)/config/$(LIB1ASMSRC)
209 $(gcc_compile) -DL$* -xassembler-with-cpp \
210 @@ -359,12 +383,16 @@ $(lib2funcs-o): %$(objext): $(gcc_srcdir
211 $(gcc_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
212 $(vis_hide)
213 libgcc-objects += $(lib2funcs-o)
214 +libgcc-onestep-sources += $(gcc_srcdir)/libgcc2.c
215 +libgcc-onestep-defines += $(patsubst %,-DL%,$(lib2funcs) $(LIB2FUNCS_ST))
217 ifeq ($(enable_shared),yes)
218 lib2funcs-s-o = $(patsubst %,%_s$(objext),$(lib2funcs))
219 $(lib2funcs-s-o): %_s$(objext): $(gcc_srcdir)/libgcc2.c
220 $(gcc_s_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c
221 libgcc-s-objects += $(lib2funcs-s-o)
222 +libgcc-s-onestep-sources += $(gcc_srcdir)/libgcc2.c
223 +libgcc-s-onestep-defines += $(patsubst %,-DL%,$(lib2funcs) $(LIB2FUNCS_ST))
224 endif
226 ifneq ($(LIB2_SIDITI_CONV_FUNCS),)
227 @@ -395,6 +423,8 @@ $(lib2-divmod-o): %$(objext): $(gcc_srcd
228 $(gcc_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
229 -fexceptions -fnon-call-exceptions $(vis_hide)
230 libgcc-objects += $(lib2-divmod-o)
231 +libgcc-onestep-sources += $(gcc_srcdir)/libgcc2.c
232 +libgcc-onestep-defines += $(patsubst %,-DL%,$(LIB2_DIVMOD_FUNCS))
234 ifeq ($(enable_shared),yes)
235 lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS))
236 @@ -402,6 +432,8 @@ $(lib2-divmod-s-o): %_s$(objext): $(gcc_
237 $(gcc_s_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
238 -fexceptions -fnon-call-exceptions
239 libgcc-s-objects += $(lib2-divmod-s-o)
240 +libgcc-s-onestep-sources += $(gcc_srcdir)/libgcc2.c
241 +libgcc-s-onestep-defines += $(patsubst %,-DL%,$(LIB2_DIVMOD_FUNCS))
242 endif
244 # $(FPBIT) et al. are pathnames relative to the GCC build
245 @@ -427,12 +459,16 @@ fpbit-o = $(patsubst %,%$(objext),$(FPBI
246 $(fpbit-o): %$(objext): $(FPBIT)
247 $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(FPBIT) $(vis_hide)
248 libgcc-objects += $(fpbit-o)
249 +libgcc-onestep-sources += $(FPBIT)
250 +libgcc-onestep-defines += $(patsubst %,-DL%,$(FPBIT_FUNCS))
252 ifeq ($(enable_shared),yes)
253 fpbit-s-o = $(patsubst %,%_s$(objext),$(FPBIT_FUNCS))
254 $(fpbit-s-o): %_s$(objext): $(FPBIT)
255 $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(FPBIT)
256 libgcc-s-objects += $(fpbit-s-o)
257 +libgcc-s-onestep-sources += $(FPBIT)
258 +libgcc-s-onestep-defines += $(patsubst %,-DL%,$(FPBIT_FUNCS))
259 endif
260 endif
262 @@ -442,12 +478,16 @@ dpbit-o = $(patsubst %,%$(objext),$(DPBI
263 $(dpbit-o): %$(objext): $(DPBIT)
264 $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(DPBIT) $(vis_hide)
265 libgcc-objects += $(dpbit-o)
266 +libgcc-onestep-sources += $(DPBIT)
267 +libgcc-onestep-defines += $(patsubst %,-DL%,$(DPBIT_FUNCS))
269 ifeq ($(enable_shared),yes)
270 dpbit-s-o = $(patsubst %,%_s$(objext),$(DPBIT_FUNCS))
271 $(dpbit-s-o): %_s$(objext): $(DPBIT)
272 $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(DPBIT)
273 libgcc-s-objects += $(dpbit-s-o)
274 +libgcc-s-onestep-sources += $(DPBIT)
275 +libgcc-s-onestep-defines += $(patsubst %,-DL%,$(DPBIT_FUNCS))
276 endif
277 endif
279 @@ -457,12 +497,16 @@ tpbit-o = $(patsubst %,%$(objext),$(TPBI
280 $(tpbit-o): %$(objext): $(TPBIT)
281 $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(TPBIT) $(vis_hide)
282 libgcc-objects += $(tpbit-o)
283 +libgcc-onestep-sources += $(TPBIT)
284 +libgcc-onestep-defines += $(patsubst %,-DL%,$(TPBIT_FUNCS))
286 ifeq ($(enable_shared),yes)
287 tpbit-s-o = $(patsubst %,%_s$(objext),$(TPBIT_FUNCS))
288 $(tpbit-s-o): %_s$(objext): $(TPBIT)
289 $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -c $(TPBIT)
290 libgcc-s-objects += $(tpbit-s-o)
291 +libgcc-s-onestep-sources += $(TPBIT)
292 +libgcc-s-onestep-defines += $(patsubst %,-DL%,$(TPBIT_FUNCS))
293 endif
294 endif
296 @@ -497,8 +541,10 @@ endif
298 dfp-objects = $(patsubst %,%$(objext),$(dfp-filenames))
299 ifeq ($(enable_decimal_float),bid)
300 +libgcc-onestep-sources += $(patsubst %,$(srcdir)/config/libbid/%.c,$(dfp-filenames))
301 $(dfp-objects): %$(objext): $(srcdir)/config/libbid/%.c
302 else
303 +libgcc-onestep-sources += $(patsubst %,$(srcdir)/../libdecnumber/%.c,$(dfp-filenames))
304 $(dfp-objects): %$(objext): $(srcdir)/../libdecnumber/%.c
305 endif
306 $(gcc_compile) -c $<
307 @@ -521,8 +567,10 @@ endif
309 decbits-objects = $(patsubst %,%$(objext),$(decbits-filenames))
310 ifeq ($(enable_decimal_float),bid)
311 +libgcc-onestep-sources += $(patsubst %,$(srcdir)/config/libbid/%.c,$(decbits-filenames))
312 $(decbits-objects): %$(objext): $(srcdir)/config/libbid/%.c
313 else
314 +libgcc-onestep-sources += $(patsubst %,$(srcdir)/../libdecnumber/$(enable_decimal_float)/%.c,$(decbits-filenames))
315 $(decbits-objects): %$(objext): $(srcdir)/../libdecnumber/$(enable_decimal_float)/%.c
316 endif
317 $(gcc_compile) -c $<
318 @@ -544,36 +592,48 @@ endif
319 endif
321 ifneq ($(D32PBIT),)
322 +libgcc-objects-onestep += libgcc_32_onestep$(objext)
323 d32pbit-o = $(patsubst %,%$(objext),$(D32PBIT_FUNCS))
324 ifeq ($(enable_decimal_float),bid)
325 +libgcc-32-onestep-sources += $(patsubst %,$(srcdir)/config/libbid/%.c,$(D32PBIT_FUNCS))
326 $(d32pbit-o): %$(objext): $(srcdir)/config/libbid/%.c
327 else
328 +libgcc-32-onestep-sources += $(gcc_srcdir)/config/dfp-bit.c
329 $(d32pbit-o): %$(objext): $(gcc_srcdir)/config/dfp-bit.c
330 endif
331 $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=32 -c $<
332 libgcc-objects += $(d32pbit-o)
333 +libgcc-32-onestep-defines += $(patsubst %,-DL%,$(D32PBIT_FUNCS)) -DWIDTH=32
334 endif
336 ifneq ($(D64PBIT),)
337 +libgcc-objects-onestep += libgcc_64_onestep$(objext)
338 d64pbit-o = $(patsubst %,%$(objext),$(D64PBIT_FUNCS))
339 ifeq ($(enable_decimal_float),bid)
340 +libgcc-64-onestep-sources += $(patsubst %,$(srcdir)/config/libbid/%.c,$(D64PBIT_FUNCS))
341 $(d64pbit-o): %$(objext): $(srcdir)/config/libbid/%.c
342 else
343 +libgcc-64-onestep-sources += $(gcc_srcdir)/config/dfp-bit.c
344 $(d64pbit-o): %$(objext): $(gcc_srcdir)/config/dfp-bit.c
345 endif
346 $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=64 -c $<
347 libgcc-objects += $(d64pbit-o)
348 +libgcc-64-onestep-defines += $(patsubst %,-DL%,$(D64PBIT_FUNCS)) -DWIDTH=64
349 endif
351 ifneq ($(D128PBIT),)
352 +libgcc-objects-onestep += libgcc_128_onestep$(objext)
353 d128pbit-o = $(patsubst %,%$(objext),$(D128PBIT_FUNCS))
354 ifeq ($(enable_decimal_float),bid)
355 +libgcc-128-onestep-sources += $(patsubst %,$(srcdir)/config/libbid/%.c,$(D128PBIT_FUNCS))
356 $(d128pbit-o): %$(objext): $(srcdir)/config/libbid/%.c
357 else
358 +libgcc-128-onestep-sources += $(gcc_srcdir)/config/dfp-bit.c
359 $(d128pbit-o): %$(objext): $(gcc_srcdir)/config/dfp-bit.c
360 endif
361 $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=128 -c $<
362 libgcc-objects += $(d128pbit-o)
363 +libgcc-128-onestep-defines += $(patsubst %,-DL%,$(D128PBIT_FUNCS)) -DWIDTH=128
364 endif
366 endif
367 @@ -693,8 +753,11 @@ c_flags := -fexceptions
368 ifeq ($(enable_shared),yes)
370 libgcc-eh-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADDEHSTATIC))))
371 +libgcc-eh-objects-onestep += libgcc_eh_onestep$(objext)
372 libgcc-s-objects += $(addsuffix _s$(objext),$(basename $(notdir $(LIB2ADDEHSHARED))))
373 +libgcc-s-onestep-sources += $(LIB2ADDEHSHARED)
375 +iter-item-onestep := libgcc_eh
376 iter-items := $(sort $(LIB2ADDEHSTATIC) $(LIB2ADDEHSHARED))
377 include $(iterator)
379 @@ -702,6 +765,7 @@ else
380 # Not shared. LIB2ADDEH are added to libgcc.a.
382 libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADDEH))))
383 +libgcc-onestep-sources += $(LIB2ADDEH)
385 iter-items := $(LIB2ADDEH)
386 include $(iterator)
387 @@ -713,11 +777,14 @@ endif
388 c_flags := -fexceptions
390 libunwind-objects += $(addsuffix $(objext),$(basename $(notdir $(LIBUNWIND))))
391 +libunwind-objects-onestep += libunwind_onestep$(objext)
393 ifeq ($(enable_shared),yes)
394 libunwind-s-objects += $(addsuffix _s$(objext),$(basename $(notdir $(LIBUNWIND))))
395 +libunwind-s-objects-onestep += libunwind_s_onestep$(objext)
396 endif
398 +iter-item-onestep := libunwind
399 iter-items := $(LIBUNWIND)
400 include $(iterator)
402 @@ -726,12 +793,37 @@ libgcov-objects = $(patsubst %,%$(objext
403 $(libgcov-objects): %$(objext): $(gcc_srcdir)/libgcov.c
404 $(gcc_compile) -DL$* -c $(gcc_srcdir)/libgcov.c
406 +libgcov-objects-onestep = libgcov_onestep$(objext)
407 +libgcov_onestep$(objext): $(gcc_srcdir)/libgcov.c
408 + $(gcc_compile) $^ $(patsubst %,-DL%,$(LIBGCOV)) -c -combine
411 +ifeq ($(enable_shared),yes)
412 +libgcc-s-objects-onestep += libgcc_s_onestep$(objext)
413 +endif
414 +libgcc-objects-onestep += libgcc_onestep$(objext) $(libgcc-s-objects-onestep)
416 +libgcc_onestep$(objext): $(libgcc-onestep-sources)
417 + $(gcc_compile) $^ $(libgcc-onestep-defines) \
418 + -DFINE_GRAINED_LIBRARIES $(vis_hide) -c -combine
419 +libgcc_s_onestep$(objext): $(libgcc-s-onestep-sources)
420 + $(gcc_s_compile) $^ $(libgcc-s-onestep-defines) \
421 + -DFINE_GRAINED_LIBRARIES $(vis_hide) -c -combine
422 +libgcc_32_onestep$(objext): $(libgcc-32-onestep-sources)
423 + $(gcc_compile) $^ $(libgcc-32-onestep-defines) \
424 + -DFINE_GRAINED_LIBRARIES -c -combine
425 +libgcc_64_onestep$(objext): $(libgcc-64-onestep-sources)
426 + $(gcc_compile) $^ $(libgcc-64-onestep-defines) \
427 + -DFINE_GRAINED_LIBRARIES -c -combine
428 +libgcc_128_onestep$(objext): $(libgcc-128-onestep-sources)
429 + $(gcc_compile) $^ $(libgcc-128-onestep-defines) \
430 + -DFINE_GRAINED_LIBRARIES -c -combine
432 # Static libraries.
433 -libgcc.a: $(libgcc-objects)
434 -libgcov.a: $(libgcov-objects)
435 -libunwind.a: $(libunwind-objects)
436 -libgcc_eh.a: $(libgcc-eh-objects)
437 +libgcc.a: $(libgcc-objects@onestep@)
438 +libgcov.a: $(libgcov-objects@onestep@)
439 +libunwind.a: $(libunwind-objects@onestep@)
440 +libgcc_eh.a: $(libgcc-eh-objects@onestep@)
442 libgcc.a libgcov.a libunwind.a libgcc_eh.a:
443 -rm -f $@
444 @@ -765,8 +857,8 @@ ifeq ($(enable_shared),yes)
446 # Map-file generation.
447 ifneq ($(SHLIB_MKMAP),)
448 -libgcc.map: $(SHLIB_MKMAP) $(SHLIB_MAPFILES) $(libgcc-s-objects)
449 - { $(NM) $(SHLIB_NM_FLAGS) $(libgcc-s-objects); echo %%; \
450 +libgcc.map: $(SHLIB_MKMAP) $(SHLIB_MAPFILES) $(libgcc-s-objects@onestep@)
451 + { $(NM) $(SHLIB_NM_FLAGS) $(libgcc-s-objects@onestep@); echo %%; \
452 cat $(SHLIB_MAPFILES) \
453 | sed -e '/^[ ]*#/d' \
454 -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \
455 @@ -777,7 +869,7 @@ libgcc_s$(SHLIB_EXT): libgcc.map
456 mapfile = libgcc.map
457 endif
459 -libgcc_s$(SHLIB_EXT): $(libgcc-s-objects) $(extra-parts)
460 +libgcc_s$(SHLIB_EXT): $(libgcc-s-objects@onestep@) $(extra-parts)
461 # @multilib_flags@ is still needed because this may use
462 # $(GCC_FOR_TARGET) and $(LIBGCC2_CFLAGS) directly.
463 # @multilib_dir@ is not really necessary, but sometimes it has
464 @@ -792,7 +884,7 @@ libgcc_s$(SHLIB_EXT): $(libgcc-s-objects
465 @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \
466 @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))))
468 -libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts)
469 +libunwind$(SHLIB_EXT): $(libunwind-s-objects@onestep@) $(extra-parts)
470 # @multilib_flags@ is still needed because this may use
471 # $(GCC_FOR_TARGET) and $(LIBGCC2_CFLAGS) directly.
472 # @multilib_dir@ is not really necessary, but sometimes it has
473 diff -rdup gcc-4.4.0.old/libgcc/shared-object.mk gcc-4.4.0/libgcc/shared-object.mk
474 --- gcc-4.4.0.old/libgcc/shared-object.mk 2008-07-17 10:40:53.000000000 +0200
475 +++ gcc-4.4.0/libgcc/shared-object.mk 2008-10-07 09:20:26.000000000 +0200
476 @@ -8,11 +8,22 @@ base := $(basename $(notdir $o))
478 ifeq ($(suffix $o),.c)
480 +ifeq ($(onestep),)
481 $(base)$(objext): $o
482 $(gcc_compile) $(c_flags) -c $< $(vis_hide)
484 $(base)_s$(objext): $o
485 $(gcc_s_compile) $(c_flags) -c $<
486 +else
487 +$(iter-item-onestep)_onestep$(objext): $o
488 +$(iter-item-onestep)_s_onestep$(objext): $o
489 +ifeq ($(iter-items),)
490 +$(iter-item-onestep)_onestep$(objext):
491 + $(gcc_compile) $(c_flags) $^ $(vis_hide) -c -combine
492 +$(iter-item-onestep)_s_onestep$(objext):
493 + $(gcc_s_compile) $(c_flags) $^ -c -combine
494 +endif
495 +endif
497 else
499 @@ -22,6 +33,7 @@ $(error Unsupported file type: $o)
500 endif
501 endif
503 +ifeq ($(onestep),)
504 $(base)$(objext): $o $(base).vis
505 $(gcc_compile) -c -xassembler-with-cpp -include $*.vis $<
507 @@ -30,5 +42,18 @@ $(base).vis: $(base)_s$(objext)
509 $(base)_s$(objext): $o
510 $(gcc_s_compile) -c -xassembler-with-cpp $<
511 +else
512 +$(iter-item-onestep)_onestep$(objext): $o
513 +$(iter-item-onestep)_s_onestep$(objext): $o
514 +ifeq ($(iter-items),)
515 +$(iter-item-onestep)_onestep$(objext): $(iter-item-onestep).vis
516 + $(gcc_compile) -xassembler-with-cpp -include $*.vis \
517 + $(filter-out $(iter-item-onestep).vis,$^) -c -combine
518 +$(iter-item-onestep).vis: $(iter-item-onestep)_s_onestep$(objext)
519 + $(gen-hide-list)
520 +$(iter-item-onestep)_s_onestep$(objext):
521 + $(gcc_s compile) -xassembler-with-cpp $^ -c -combine
522 +endif
523 +endif
525 endif
526 diff -rdup gcc-4.4.0.old/libgcc/static-object.mk gcc-4.4.0/libgcc/static-object.mk
527 --- gcc-4.4.0.old/libgcc/static-object.mk 2007-01-08 09:14:48.000000000 +0100
528 +++ gcc-4.4.0/libgcc/static-object.mk 2008-10-07 09:20:26.000000000 +0200
529 @@ -8,8 +8,16 @@ base := $(basename $(notdir $o))
531 ifeq ($(suffix $o),.c)
533 +ifeq ($(onestep),)
534 $(base)$(objext): $o
535 $(gcc_compile) $(c_flags) -c $< $(vis_hide)
536 +else
537 +$(iter-item-onestep)_onestep$(objext): $o
538 +ifeq ($(iter-items),)
539 +$(iter-item-onestep)_onestep$(objext):
540 + $(gcc_compile) $(c_flags) $^ $(vis_hide) -c -combine
541 +endif
542 +endif
544 else
546 @@ -19,7 +27,21 @@ $(error Unsupported file type: $o)
547 endif
548 endif
550 +ifeq ($(onestep),)
551 $(base)$(objext): $o
552 $(gcc_compile) -c -xassembler-with-cpp $<
553 +else
554 +ifeq ($(iter-items),)
555 +$(iter-item-onestep)_onestep$(objext): $(iter-item-onestep).vis
556 + $(gcc_compile) -xassembler-with-cpp -include $*.vis \
557 + $(filter-out $(iter-item-onestep).vis,$^) -c -combine
558 +# XXX: FIXME: for static libs vis_hide is forced off, so why does the normal
559 +# build above have this superfluous occurence?
560 +# Play safe and provide this wrong rule and retain the mention of vis_hide
561 +# above, too.
562 +$(iter-item-onestep).vis: $(iter-item-onestep)_s_onestep$(objext)
563 + $(gen-hide-list)
564 +endif
565 +endif
567 endif