about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2021-01-05 16:10:40 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2021-01-08 11:14:02 +0000
commit2f056e8a5dd4dc0f075413f931e82cede37d1057 (patch)
tree6548c6c7d03f017920c107ba4d2b2064a00cad42
parent18b640c57094236e6c991ba16f87467085a1d55a (diff)
downloadglibc-2f056e8a5dd4dc0f075413f931e82cede37d1057.tar.gz
glibc-2f056e8a5dd4dc0f075413f931e82cede37d1057.tar.xz
glibc-2f056e8a5dd4dc0f075413f931e82cede37d1057.zip
aarch64: define PI_STATIC_AND_HIDDEN
AArch64 always uses pc relative access to static and hidden object
symbols, but the config setting was previously missing.

This affects ld.so start up code.
-rw-r--r--sysdeps/aarch64/configure5
-rw-r--r--sysdeps/aarch64/configure.ac4
2 files changed, 9 insertions, 0 deletions
diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
index 1f8223725f..5f5f3cc44c 100644
--- a/sysdeps/aarch64/configure
+++ b/sysdeps/aarch64/configure
@@ -1,6 +1,11 @@
 # This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/aarch64.
 
+# Static and hidden objects are accessed without dynamic relocations.
+# The exception is -mcmodel=large which is unsupported with PIC/PIE.
+$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
+
+
 # We check to see if the compiler and flags are
 # selecting the big endian ABI and if they are then
 # we set libc_cv_aarch64_be to yes which causes
diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
index da2a8d81d0..180a16a29f 100644
--- a/sysdeps/aarch64/configure.ac
+++ b/sysdeps/aarch64/configure.ac
@@ -1,6 +1,10 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/aarch64.
 
+# Static and hidden objects are accessed without dynamic relocations.
+# The exception is -mcmodel=large which is unsupported with PIC/PIE.
+AC_DEFINE(PI_STATIC_AND_HIDDEN)
+
 # We check to see if the compiler and flags are
 # selecting the big endian ABI and if they are then
 # we set libc_cv_aarch64_be to yes which causes