diff options
author | Elliott Hughes <enh@google.com> | 2014-08-07 10:51:32 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-08-07 11:28:34 -0700 |
commit | 43227c0b400a33dc9722269beda26313c391fb1e (patch) | |
tree | 70bdd28e713b1a06db4330c82a330256321c2cb1 /libc/arch-x86 | |
parent | 3e7b8e2a8bd16a37cecdae1135a5e7fc6e64c762 (diff) | |
download | bionic-43227c0b400a33dc9722269beda26313c391fb1e.zip bionic-43227c0b400a33dc9722269beda26313c391fb1e.tar.gz bionic-43227c0b400a33dc9722269beda26313c391fb1e.tar.bz2 |
Android is all-PIC/PIE.
Clean up the x86/x86_64 assembler. The motivator (other than reducing
confusion) was that asm.h incorrectly checked PIC rather than __PIC__.
Bug: 16823325
(cherry picked from commit 6b6364a7fc7c3ba37ee907776a29bdc8c9793db9)
Change-Id: I89ca57fa0eb34a36de6cb11ea85f71054fce709d
Diffstat (limited to 'libc/arch-x86')
-rw-r--r-- | libc/arch-x86/bionic/__stack_chk_fail_local.h | 7 | ||||
-rw-r--r-- | libc/arch-x86/bionic/setjmp.S | 8 | ||||
-rw-r--r-- | libc/arch-x86/bionic/sigsetjmp.S | 8 | ||||
-rw-r--r-- | libc/arch-x86/include/machine/asm.h | 8 |
4 files changed, 2 insertions, 29 deletions
diff --git a/libc/arch-x86/bionic/__stack_chk_fail_local.h b/libc/arch-x86/bionic/__stack_chk_fail_local.h index 4f3699a..0b0fd7f 100644 --- a/libc/arch-x86/bionic/__stack_chk_fail_local.h +++ b/libc/arch-x86/bionic/__stack_chk_fail_local.h @@ -26,6 +26,7 @@ * SUCH DAMAGE. */ +#include <sys/cdefs.h> /* __stack_chk_fail routine is runtime part of stack protector compiler @@ -48,13 +49,9 @@ */ #ifdef __i386__ -#ifdef __PIC__ extern void __stack_chk_fail(); -__attribute__ ((visibility ("hidden"))) -void __stack_chk_fail_local() -{ +__LIBC_HIDDEN__ void __stack_chk_fail_local() { __stack_chk_fail(); } #endif -#endif diff --git a/libc/arch-x86/bionic/setjmp.S b/libc/arch-x86/bionic/setjmp.S index 5b94311..8f9d67c 100644 --- a/libc/arch-x86/bionic/setjmp.S +++ b/libc/arch-x86/bionic/setjmp.S @@ -46,11 +46,7 @@ ENTRY(setjmp) PIC_PROLOGUE pushl $0 -#ifdef PIC call PIC_PLT(sigblock) -#else - call sigblock -#endif addl $4,%esp PIC_EPILOGUE @@ -71,11 +67,7 @@ ENTRY(longjmp) movl 4(%esp),%edx PIC_PROLOGUE pushl 24(%edx) -#ifdef PIC call PIC_PLT(sigsetmask) -#else - call sigsetmask -#endif addl $4,%esp PIC_EPILOGUE diff --git a/libc/arch-x86/bionic/sigsetjmp.S b/libc/arch-x86/bionic/sigsetjmp.S index 7ef732e..250c606 100644 --- a/libc/arch-x86/bionic/sigsetjmp.S +++ b/libc/arch-x86/bionic/sigsetjmp.S @@ -42,11 +42,7 @@ ENTRY(sigsetjmp) PIC_PROLOGUE pushl $0 -#ifdef PIC call PIC_PLT(sigblock) -#else - call sigblock -#endif addl $4,%esp PIC_EPILOGUE @@ -70,11 +66,7 @@ ENTRY(siglongjmp) PIC_PROLOGUE pushl 24(%edx) -#ifdef PIC call PIC_PLT(sigsetmask) -#else - call sigsetmask -#endif addl $4,%esp PIC_EPILOGUE diff --git a/libc/arch-x86/include/machine/asm.h b/libc/arch-x86/include/machine/asm.h index 913e6c8..bf77525 100644 --- a/libc/arch-x86/include/machine/asm.h +++ b/libc/arch-x86/include/machine/asm.h @@ -37,7 +37,6 @@ #ifndef _I386_ASM_H_ #define _I386_ASM_H_ -#ifdef PIC #define PIC_PROLOGUE \ pushl %ebx; \ call 1f; \ @@ -49,13 +48,6 @@ #define PIC_PLT(x) x@PLT #define PIC_GOT(x) x@GOT(%ebx) #define PIC_GOTOFF(x) x@GOTOFF(%ebx) -#else -#define PIC_PROLOGUE -#define PIC_EPILOGUE -#define PIC_PLT(x) x -#define PIC_GOT(x) x -#define PIC_GOTOFF(x) x -#endif /* let kernels and others override entrypoint alignment */ #if !defined(_ALIGN_TEXT) && !defined(_KERNEL) |