]> git.pld-linux.org Git - packages/gcc.git/blame - gcc-pld-linux.patch
- fix libstdc++-static package
[packages/gcc.git] / gcc-pld-linux.patch
CommitLineData
0fd6bde2
JR
1--- gcc-2.95/gcc/config/i386/i386.md.old Mon Aug 2 16:36:42 1999
2+++ gcc-2.95/gcc/config/i386/i386.md Mon Aug 2 16:33:43 1999
3@@ -1345,7 +1345,8 @@
4 else if ((reload_in_progress | reload_completed) == 0
5 && GET_CODE (operands[0]) != MEM
6 && GET_CODE (operands[1]) == CONST_DOUBLE
7- && !standard_80387_constant_p (operands[1]))
8+ && ((flag_pic && flag_omit_frame_pointer)
9+ || ! standard_80387_constant_p (operands[1])))
10 {
11 operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
12 }
13@@ -1473,7 +1474,8 @@
14 else if ((reload_in_progress | reload_completed) == 0
15 && GET_CODE (operands[0]) != MEM
16 && GET_CODE (operands[1]) == CONST_DOUBLE
17- && !standard_80387_constant_p (operands[1]))
18+ && ((flag_pic && flag_omit_frame_pointer)
19+ || ! standard_80387_constant_p (operands[1])))
20 {
21 operands[1] = validize_mem (force_const_mem (DFmode, operands[1]));
22 }
23@@ -1601,7 +1603,8 @@
24 else if ((reload_in_progress | reload_completed) == 0
25 && GET_CODE (operands[0]) != MEM
26 && GET_CODE (operands[1]) == CONST_DOUBLE
27- && !standard_80387_constant_p (operands[1]))
28+ && ((flag_pic && flag_omit_frame_pointer)
29+ || ! standard_80387_constant_p (operands[1])))
30 {
31 operands[1] = validize_mem (force_const_mem (XFmode, operands[1]));
32 }
33--- gcc-2.95/gcc/config/linux.h.old Mon Aug 2 16:39:44 1999
34+++ gcc-2.95/gcc/config/linux.h Mon Aug 2 16:40:57 1999
35@@ -103,7 +103,7 @@
36 %{!profile:%{!ggdb:-lc} %{ggdb:-lg}}}"
37 #else
38 #define LIB_SPEC \
39- "%{shared: -lc} \
40+ "%{shared: -lc --version-script libgcc.map%s} \
41 %{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \
42 %{profile:-lc_p} %{!profile: -lc}}"
43 #endif
44--- gcc-2.95/gcc/config/t-linux.old Mon Aug 2 16:44:14 1999
45+++ gcc-2.95/gcc/config/t-linux Mon Aug 2 16:44:54 1999
46@@ -14,3 +14,17 @@
47 LIBGCC1 =
48 CROSS_LIBGCC1 =
49 LIBGCC1_TEST =
50+
51+# Make glocal functions in libgcc.a local to the shared library with
52+# symbol versioning.
53+LIBGCC_MAP=libgcc.map
54+# This list has to be maintained manually. It should cover the libgcc
55+# functions, which can be safely made local to a shared library, on
56+# all Linux platforms.
57+LIBGCC_MAP_LIST=__ashldi3 __ashrdi3 __builtin_saveregs __clear_cache \
58+ __cmpdi2 __divdi3 __dummy __eprintf __ffsdi2 __fixdfdi __fixsfdi \
59+ __fixunsdfdi __fixunsdfsi __fixunssfdi __fixunssfsi __fixunsxfdi \
60+ __fixunsxfsi __fixxfdi __floatdidf __floatdisf __floatdixf \
61+ __gcc_bcmp __lshrdi3 __moddi3 __muldi3 __negdi2 __pure_virtual \
62+ __ucmpdi2 __udiv_w_sdiv __udivdi3 __udivmoddi4 __umoddi3
63+EXTRACT_LIBGCC=for s in $(LIBGCC_MAP_LIST); do echo " $$s;"; done
64--- gcc-2.95/gcc/f/Make-lang.in.old Mon Aug 2 16:46:54 1999
65+++ gcc-2.95/gcc/f/Make-lang.in Mon Aug 2 16:48:20 1999
66@@ -212,7 +212,7 @@
67
68 f77.all.build: g77$(exeext)
69 f77.all.cross: g77-cross$(exeext)
70-f77.start.encap: g77$(exeext)
71+f77.start.encap: g77$(exeext) $(srcdir)/f/intdoc.texi
72 f77.rest.encap:
73
74 f77.info: f/g77.info
75--- gcc-2.95/gcc/Makefile.in.old Mon Aug 2 16:49:20 1999
76+++ gcc-2.95/gcc/Makefile.in Mon Aug 2 17:00:08 1999
77@@ -368,6 +368,9 @@
78 # libgcc1-test target (must also be overridable for a target)
79 LIBGCC1_TEST = libgcc1-test
80
81+# The libgcc symbol versioning map.
82+LIBGCC_MAP=
83+
84 # List of extra executables that should be compiled for this target machine
85 # that are used for compiling from source code to object code.
86 # The rules for compiling them should be in the t-* file for the machine.
87@@ -838,14 +841,15 @@
88 # Note that we can compile enquire using the cross-compiler just built,
89 # although we can't run it on this machine.
90 all.cross: native gcc-cross specs stmp-headers $(STMP_FIXPROTO) $(LIBGCC) \
91- $(LIBGCC1_TEST) $(EXTRA_PARTS) lang.all.cross doc
92+ $(LIBGCC_MAP) $(LIBGCC1_TEST) $(EXTRA_PARTS) lang.all.cross doc
93 # This is what to compile if making gcc with a cross-compiler.
94 all.build: native xgcc$(exeext) xcpp$(exeext) $(EXTRA_PARTS) lang.all.build
95 # This is what must be made before installing GCC and converting libraries.
96 start.encap: native xgcc$(exeext) xcpp$(exeext) specs $(LIBGCC1) \
97 xlimits.h lang.start.encap
98 # These can't be made until after GCC can run.
99-rest.encap: stmp-headers $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap
100+rest.encap: stmp-headers $(STMP_FIXPROTO) $(LIBGCC) $(LIBGCC_MAP) \
101+ $(EXTRA_PARTS) lang.rest.encap
102 # This is what is made with the host's compiler
103 # whether making a cross compiler or not.
104 native: config.status auto-host.h cpp$(exeext) intl.all $(LANGUAGES) \
105@@ -860,7 +864,7 @@
106
107 # On the target machine, finish building a cross compiler.
108 # This does the things that can't be done on the host machine.
109-rest.cross: $(LIBGCC) specs
110+rest.cross: $(LIBGCC) $(LIBGCC_MAP) specs
111
112 # Verify that it works to compile and link libgcc1-test.
113 # If it does, then there are sufficient replacements for libgcc1.a.
114@@ -2353,7 +2357,7 @@
115 # Using unprotoize.c is not quite right in the first place,
116 # but what better way is there?
117 -rm -f libgcc.a libgcc1.a libgcc1-asm.a libgcc2.a libgcc2.ready
118- -rm -f libgcc1.null
119+ -rm -f libgcc1.null libgcc.map
120 -rm -f *.dvi
121 -rm -f */*.dvi
122 -if [ -f md.pre-cpp ]; then \
123@@ -2526,6 +2530,12 @@
124 $(INSTALL_DATA) specs $(libsubdir)/specs; \
125 chmod a-x $(libsubdir)/specs; \
126 fi
127+# Install libgcc.map if it exists.
128+ -if [ -n "$(LIBGCC_MAP)" -a -f libgcc.map ] ; then \
129+ rm -f $(libsubdir)/libgcc.map; \
130+ $(INSTALL_DATA) libgcc.map $(libsubdir)/libgcc.map; \
131+ chmod a-x $(libsubdir)/libgcc.map; \
132+ fi
133 # Install protoize if it was compiled.
134 -if [ -f protoize$(exeext) ]; \
135 then \
136@@ -3041,6 +3051,10 @@
137 -if [ -f collect-ld$(exeext) ] ; then $(LN_S) ../collect-ld$(exeext) stage1 ; else true ; fi
138 -rm -f stage1/libgcc.a
139 -cp libgcc.a stage1
140+ -if [ -n "$(LIBGCC_MAP)" -a -f libgcc.map ] ; then \
141+ rm -f stage1/libgcc.map; \
142+ cp libgcc.map stage1; \
143+ fi
144 -if $(RANLIB_TEST_FOR_TARGET) ; then \
145 $(RANLIB_FOR_TARGET) stage1/libgcc.a; \
146 else true; fi
147@@ -3065,6 +3079,10 @@
148 -if [ -f collect-ld ] ; then $(LN_S) ../collect-ld$(exeext) stage2 ; else true ; fi
149 -rm -f stage2/libgcc.a
150 -cp libgcc.a stage2
151+ -if [ -n "$(LIBGCC_MAP)" -a -f libgcc.map ] ; then \
152+ rm -f stage2/libgcc.map; \
153+ cp libgcc.map stage2; \
154+ fi
155 -if $(RANLIB_TEST_FOR_TARGET) ; then \
156 $(RANLIB_FOR_TARGET) stage2/libgcc.a; \
157 else true; fi
158@@ -3089,6 +3107,10 @@
159 -if [ -f collect-ld$(exeext) ] ; then $(LN_S) ../collect-ld$(exeext) stage3 ; else true ; fi
160 -rm -f stage3/libgcc.a
161 -cp libgcc.a stage3
162+ -if [ -n "$(LIBGCC_MAP)" -a -f libgcc.map ] ; then \
163+ rm -f stage3/libgcc.map; \
164+ cp libgcc.map stage3; \
165+ fi
166 -if $(RANLIB_TEST_FOR_TARGET) ; then \
167 $(RANLIB_FOR_TARGET) stage3/libgcc.a; \
168 else true; fi
169@@ -3113,6 +3135,10 @@
170 -if [ -f collect-ld$(exeext) ] ; then $(LN_S) ../collect-ld$(exeext) stage4 ; else true ; fi
171 -rm -f stage4/libgcc.a
172 -cp libgcc.a stage4
173+ -if [ -n "$(LIBGCC_MAP)" -a -f libgcc.map ] ; then \
174+ rm -f stage4/libgcc.map; \
175+ cp libgcc.map stage4; \
176+ fi
177 -if $(RANLIB_TEST_FOR_TARGET) ; then \
178 $(RANLIB_FOR_TARGET) stage4/libgcc.a; \
179 else true; fi
180@@ -3196,3 +3222,9 @@
181 echo "#endif" >> t-float.h-cross
182 mv t-float.h-cross float.h-cross
183
184+# Rule to generate the libgcc symbol versioning map.
185+libgcc.map:
186+ echo "GCC.INTERNAL {" > $@
187+ echo " local:" >> $@
188+ $(EXTRACT_LIBGCC) >> $@
189+ echo "};" >> $@
190--- gcc-2.95/libf2c/Makefile.in.old Mon Aug 2 17:12:22 1999
191+++ gcc-2.95/libf2c/Makefile.in Mon Aug 2 17:13:22 1999
192@@ -61,13 +61,13 @@
193 # Quote this way so that it can be used to set shell variables too.
194 # Currently no use for PICFLAG, RUNTESTFLAGS -- check usage.
195 FLAGS_TO_PASS= \
196- CC='$(CC)' \
197- CFLAGS='$(CFLAGS)' \
198- CPPFLAGS='$(CPPFLAGS)' \
199- AR='$(AR)' \
200- RANLIB='$(RANLIB)' \
201- PICFLAG='$(PICFLAG)' \
202- RUNTESTFLAGS='$(RUNTESTFLAGS)'
203+ "CC=$(CC)" \
204+ "CFLAGS=$(CFLAGS)" \
205+ "CPPFLAGS=$(CPPFLAGS)" \
206+ "AR=$(AR)" \
207+ "RANLIB=$(RANLIB)" \
208+ "PICFLAG=$(PICFLAG)" \
209+ "RUNTESTFLAGS=$(RUNTESTFLAGS)"
210
211 LIBG2C = libg2c.a
212
This page took 0.09203 seconds and 4 git commands to generate.