about summary refs log tree commit diff
path: root/sysdeps/arm/configure.ac
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@codesourcery.com>2014-06-20 20:08:03 +0100
committerMaciej W. Rozycki <macro@codesourcery.com>2014-06-20 20:22:42 +0100
commit90e5dd482fc4708d559fbec9740104470ffdb9df (patch)
tree0e1cf5705463c270c44330e0b8b4660004dc55e6 /sysdeps/arm/configure.ac
parent809fdf0d23ddb683eb60672465d7a39d02ef272b (diff)
downloadglibc-90e5dd482fc4708d559fbec9740104470ffdb9df.tar.gz
glibc-90e5dd482fc4708d559fbec9740104470ffdb9df.tar.xz
glibc-90e5dd482fc4708d559fbec9740104470ffdb9df.zip
[BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC
This fixes the calculation of R_ARM_TLS_DESC relocations for lazy global
symbol references, i.e. created with `-z lazy' in effect with the static
linker, where immediate resolution is requested with LD_BIND_NOW.
Diffstat (limited to 'sysdeps/arm/configure.ac')
-rw-r--r--sysdeps/arm/configure.ac13
1 files changed, 13 insertions, 0 deletions
diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac
index d66500b3fd..fdc52c0408 100644
--- a/sysdeps/arm/configure.ac
+++ b/sysdeps/arm/configure.ac
@@ -44,3 +44,16 @@ if test $libc_cv_arm_pcs_vfp = yes; then
 else
   LIBC_CONFIG_VAR([default-abi], [soft])
 fi
+
+AC_CACHE_CHECK([whether the build tools support the GNU descriptor TLS scheme],
+  [libc_cv_arm_tls_desc],
+  [old_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -mtls-dialect=gnu2"
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([asm (".word\tfoo(tlsdesc)");], [])],
+    [libc_cv_arm_tls_desc=yes], [libc_cv_arm_tls_desc=no])
+  CFLAGS="$old_CFLAGS"])
+if test $libc_cv_arm_tls_desc = yes; then
+  LIBC_CONFIG_VAR([have-arm-tls-desc], [yes])
+else
+  LIBC_CONFIG_VAR([have-arm-tls-desc], [no])
+fi