[PATCH] x86_64: check for SHARED instead of PIC where sensible
Étienne Buira
etienne.buira@gmail.com
Fri Jan 1 00:00:00 GMT 2016
This caused build issues where jb HIDDEN_JUMPTARGET (symname) were
expanded to jb *symname@GOTPCREL(%rip), which is not encodable as Jcc
requires immediate. PIC were defined because the compiler defaulted to
-fPIC.
Only tested on Linux x86_64 without avx512.
Some test fails, but it looks unrelated.
* sysdeps/x86_64/sysdep.h: Check for SHARED instead of PIC
* sysdeps/x86_64/mempcpy_chk.S: ditto
* sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S: ditto
---
ChangeLog | 7 +++++++
sysdeps/x86_64/mempcpy_chk.S | 2 +-
sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S | 2 +-
sysdeps/x86_64/sysdep.h | 2 +-
4 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 06360aa..527c832 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-12-17 Ãtienne Buira <etienne.buira@gmail.com>
+
+ x86_64: check for SHARED instead of PIC where sensible
+ * sysdeps/x86_64/sysdep.h: Check for SHARED instead of PIC
+ * sysdeps/x86_64/mempcpy_chk.S: ditto
+ * sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S: ditto
+
2016-08-02 Aurelien Jarno <aurelien@aurel32.net>
2016-08-02 Aurelien Jarno <aurelien@aurel32.net>
diff --git a/sysdeps/x86_64/mempcpy_chk.S b/sysdeps/x86_64/mempcpy_chk.S
index 390abc6..4ed9c91 100644
--- a/sysdeps/x86_64/mempcpy_chk.S
+++ b/sysdeps/x86_64/mempcpy_chk.S
@@ -19,7 +19,7 @@
#include <sysdep.h>
#include "asm-syntax.h"
-#ifndef PIC
+#ifndef SHARED
/* For libc.so this is defined in memcpy.S.
For libc.a, this is a separate source to avoid
mempcpy bringing in __chk_fail and all routines
diff --git a/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
index 9687df0..981cfde 100644
--- a/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
+++ b/sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S
@@ -27,7 +27,7 @@
#endif
.section .text.avx512,"ax",@progbits
-#if defined PIC
+#if defined SHARED
ENTRY (MEMSET_CHK)
cmpq %rdx, %rcx
jb HIDDEN_JUMPTARGET (__chk_fail)
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
index 75ac747..9ae0e0f 100644
--- a/sysdeps/x86_64/sysdep.h
+++ b/sysdeps/x86_64/sysdep.h
@@ -89,7 +89,7 @@ lose: \
END (name)
#undef JUMPTARGET
-#ifdef PIC
+#ifdef SHARED
# ifdef BIND_NOW
# define JUMPTARGET(name) *name##@GOTPCREL(%rip)
# else
--
2.10.2
More information about the Libc-stable
mailing list