From f0923988dea536a51618d3cdca0c2621699143f4 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Wed, 10 Apr 2002 07:20:20 +0000 Subject: Make assembly code PIC-compatible. --- libc/sysdeps/linux/powerpc/brk.S | 4 ++++ libc/sysdeps/linux/powerpc/bsd-_setjmp.S | 4 ++++ libc/sysdeps/linux/powerpc/bsd-setjmp.S | 4 ++++ libc/sysdeps/linux/powerpc/clone.S | 12 ++++++++++++ libc/sysdeps/linux/powerpc/setjmp.S | 4 ++++ 5 files changed, 28 insertions(+) (limited to 'libc/sysdeps/linux') diff --git a/libc/sysdeps/linux/powerpc/brk.S b/libc/sysdeps/linux/powerpc/brk.S index 57a8fb838..3a9b9fd37 100644 --- a/libc/sysdeps/linux/powerpc/brk.S +++ b/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; diff --git a/libc/sysdeps/linux/powerpc/bsd-_setjmp.S b/libc/sysdeps/linux/powerpc/bsd-_setjmp.S index ef898a7e1..d58e45b13 100644 --- a/libc/sysdeps/linux/powerpc/bsd-_setjmp.S +++ b/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 diff --git a/libc/sysdeps/linux/powerpc/bsd-setjmp.S b/libc/sysdeps/linux/powerpc/bsd-setjmp.S index 1555bb2b3..6128d9fa2 100644 --- a/libc/sysdeps/linux/powerpc/bsd-setjmp.S +++ b/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; diff --git a/libc/sysdeps/linux/powerpc/clone.S b/libc/sysdeps/linux/powerpc/clone.S index c8f0ebfc5..edce8d569 100644 --- a/libc/sysdeps/linux/powerpc/clone.S +++ b/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; diff --git a/libc/sysdeps/linux/powerpc/setjmp.S b/libc/sysdeps/linux/powerpc/setjmp.S index 6cf48544b..84c287f95 100644 --- a/libc/sysdeps/linux/powerpc/setjmp.S +++ b/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 -- cgit v1.2.3