summaryrefslogtreecommitdiffstats
path: root/libc/arch-x86
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-08-07 10:51:32 -0700
committerElliott Hughes <enh@google.com>2014-08-07 11:28:34 -0700
commit43227c0b400a33dc9722269beda26313c391fb1e (patch)
tree70bdd28e713b1a06db4330c82a330256321c2cb1 /libc/arch-x86
parent3e7b8e2a8bd16a37cecdae1135a5e7fc6e64c762 (diff)
downloadbionic-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.h7
-rw-r--r--libc/arch-x86/bionic/setjmp.S8
-rw-r--r--libc/arch-x86/bionic/sigsetjmp.S8
-rw-r--r--libc/arch-x86/include/machine/asm.h8
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)