Fri Apr 22 18:05:52 2016 UTC ()
Propagate PLT fix from our gcc-5.3 tree:

Some functions like __udivsi3 are used in other assembly files like __umodsi3.
Use PLT linkage to avoid text relocations.

XXX: pullup-7


(christos)
diff -r1.1.1.1 -r1.2 src/external/gpl3/gcc.old/dist/libgcc/config/m68k/lb1sf68.S

cvs diff -r1.1.1.1 -r1.2 src/external/gpl3/gcc.old/dist/libgcc/config/m68k/lb1sf68.S (expand / switch to unified diff)

--- src/external/gpl3/gcc.old/dist/libgcc/config/m68k/lb1sf68.S 2015/09/23 03:03:07 1.1.1.1
+++ src/external/gpl3/gcc.old/dist/libgcc/config/m68k/lb1sf68.S 2016/04/22 18:05:52 1.2
@@ -193,39 +193,39 @@ see the files COPYING3 and COPYING.RUNTI @@ -193,39 +193,39 @@ see the files COPYING3 and COPYING.RUNTI
193 .endm 193 .endm
194 194
195 .macro PICPEA sym, areg 195 .macro PICPEA sym, areg
196 movel #_GLOBAL_OFFSET_TABLE_@GOTPC, \areg 196 movel #_GLOBAL_OFFSET_TABLE_@GOTPC, \areg
197 lea (-6, pc, \areg), \areg 197 lea (-6, pc, \areg), \areg
198 movel \sym@GOT(\areg), sp@- 198 movel \sym@GOT(\areg), sp@-
199 .endm 199 .endm
200 200
201 .macro PICCALL addr 201 .macro PICCALL addr
202#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__) 202#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
203 lea \addr-.-8,a0 203 lea \addr-.-8,a0
204 jsr pc@(a0) 204 jsr pc@(a0)
205#else 205#else
206 jbsr \addr 206 jbsr \addr@PLTPC
207#endif 207#endif
208 .endm 208 .endm
209 209
210 .macro PICJUMP addr 210 .macro PICJUMP addr
211 /* ISA C has no bra.l instruction, and since this assembly file 211 /* ISA C has no bra.l instruction, and since this assembly file
212 gets assembled into multiple object files, we avoid the 212 gets assembled into multiple object files, we avoid the
213 bra instruction entirely. */ 213 bra instruction entirely. */
214#if defined (__mcoldfire__) && !defined (__mcfisab__) 214#if defined (__mcoldfire__) && !defined (__mcfisab__)
215 lea \addr-.-8,a0 215 lea \addr-.-8,a0
216 jmp pc@(a0) 216 jmp pc@(a0)
217#else 217#else
218 bra \addr 218 bra \addr@PLTPC
219#endif 219#endif
220 .endm 220 .endm
221 221
222# endif 222# endif
223#endif /* __PIC__ */ 223#endif /* __PIC__ */
224 224
225 225
226#ifdef L_floatex 226#ifdef L_floatex
227 227
228| This is an attempt at a decent floating point (single, double and  228| This is an attempt at a decent floating point (single, double and
229| extended double) code for the GNU C compiler. It should be easy to 229| extended double) code for the GNU C compiler. It should be easy to
230| adapt to other compilers (but beware of the local labels!). 230| adapt to other compilers (but beware of the local labels!).
231 231