diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2007-01-05 10:20:37 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2007-01-05 10:20:37 +0000 |
commit | e26ed573b62f69d9813e72fda4ee3da6eaf4d7b7 (patch) | |
tree | b089faf7543e285fe7076a6f28f77c32140c9687 /libc/sysdeps/linux/powerpc/brk.S | |
parent | 3a3af36f1bef68c9942e9ef3fb83cc15aeabfcc0 (diff) |
Support SecurePLTs for PowerPC. You need a toolchain that supports
config option --enable-secureplt. The assembler must also
supports R_PPC_REL16* relocations. gcc 4.1.1 and binutils 2.17
is known to do this.
Diffstat (limited to 'libc/sysdeps/linux/powerpc/brk.S')
-rw-r--r-- | libc/sysdeps/linux/powerpc/brk.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/powerpc/brk.S b/libc/sysdeps/linux/powerpc/brk.S index 25155ad46..5fe8d4086 100644 --- a/libc/sysdeps/linux/powerpc/brk.S +++ b/libc/sysdeps/linux/powerpc/brk.S @@ -50,8 +50,15 @@ brk: lwz r6,8(r1) #ifdef __PIC__ mflr r4 +# ifdef HAVE_ASM_PPC_REL16 + bcl 20,31,1f +1: mflr r5 + addis r5,r5,_GLOBAL_OFFSET_TABLE_-1b@ha + addi r5,r5,_GLOBAL_OFFSET_TABLE_-1b@l +# else bl _GLOBAL_OFFSET_TABLE_@local-4 mflr r5 +# endif lwz r5,__curbrk@got(r5) mtlr r4 stw r3,0(r5) |