OSDN Git Service

Make assembly code PIC-compatible.
authorDavid Schleef <ds@schleef.org>
Wed, 10 Apr 2002 07:20:20 +0000 (07:20 -0000)
committerDavid Schleef <ds@schleef.org>
Wed, 10 Apr 2002 07:20:20 +0000 (07:20 -0000)
libc/sysdeps/linux/powerpc/brk.S
libc/sysdeps/linux/powerpc/bsd-_setjmp.S
libc/sysdeps/linux/powerpc/bsd-setjmp.S
libc/sysdeps/linux/powerpc/clone.S
libc/sysdeps/linux/powerpc/setjmp.S

index 57a8fb8..3a9b9fd 100644 (file)
@@ -51,7 +51,11 @@ __brk:
        li      r3,0
        blelr+
        li      r3,ENOMEM
+#ifdef __PIC__
+       b       __syscall_error@plt
+#else
        b       __syscall_error
+#endif
 .size __brk,.-__brk
 
 .weak brk;
index ef898a7..d58e45b 100644 (file)
@@ -29,5 +29,9 @@
 
 _setjmp:
        li r4,0                 /* Set second argument to 0.  */
+#ifdef __PIC__
+       b __sigsetjmp@plt
+#else
        b __sigsetjmp
+#endif
 .size     _setjmp,.-_setjmp
index 1555bb2..6128d9f 100644 (file)
 
 __setjmp:
        li r4,1                 /* Set second argument to 1.  */
+#ifdef __PIC__
+       b __sigsetjmp@plt
+#else
        b __sigsetjmp
+#endif
 .size     __setjmp,.-__setjmp
 
 .globl     setjmp;
index c8f0ebf..edce8d5 100644 (file)
@@ -79,18 +79,30 @@ __clone:
        mr      r3,r31
        bctrl
        /* Call _exit with result from procedure.  */
+#ifdef __PIC__
+       b       _exit@plt
+#else
        b       _exit
+#endif
 
 .Lparent:
        /* Parent.  Restore registers & return.  */
        lmw     r29,16(r1)
        addi    r1,r1,32
        bnslr+
+#ifdef __PIC__
+       b       __syscall_error@plt
+#else
        b       __syscall_error
+#endif
 
 .Lbadargs:
        li      r3,EINVAL
+#ifdef __PIC__
+       b       __syscall_error@plt
+#else
        b       __syscall_error
+#endif
 
 .size __clone,.-__clone
 .weak clone;
index 6cf4854..84c287f 100644 (file)
@@ -76,5 +76,9 @@ FP(   stfd fp29,((JB_FPRS+15*2)*4)(3))
 FP(    stfd fp30,((JB_FPRS+16*2)*4)(3))
        stw  r31,((JB_GPRS+17)*4)(3)
 FP(    stfd fp31,((JB_FPRS+17*2)*4)(3))
+#ifdef __PIC__
+       b __sigjmp_save@plt
+#else
        b __sigjmp_save
+#endif
 .size     __sigsetjmp,.-__sigsetjmp