]>
Commit | Line | Data |
---|---|---|
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 |