Эх сурвалжийг харах

Make assembly code PIC-compatible.

David Schleef 24 жил өмнө
parent
commit
f0923988de

+ 4 - 0
libc/sysdeps/linux/powerpc/brk.S

@@ -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;

+ 4 - 0
libc/sysdeps/linux/powerpc/bsd-_setjmp.S

@@ -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

+ 4 - 0
libc/sysdeps/linux/powerpc/bsd-setjmp.S

@@ -29,7 +29,11 @@
 
 __setjmp:
 	li r4,1			/* Set second argument to 1.  */
+#ifdef __PIC__
+	b __sigsetjmp@plt
+#else
 	b __sigsetjmp
+#endif
 .size     __setjmp,.-__setjmp
 
 .globl     setjmp;

+ 12 - 0
libc/sysdeps/linux/powerpc/clone.S

@@ -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;

+ 4 - 0
libc/sysdeps/linux/powerpc/setjmp.S

@@ -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