From 04186257d5d6fd0b6b8c69e86558209c3fa25902 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Tue, 4 Jul 2017 09:24:09 -0700
Subject: [PATCH] Add ___tls_get_addr
---
sysdeps/unix/sysv/linux/x86_64/64/ld.abilist | 2 ++
sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist | 2 ++
sysdeps/x86_64/Versions | 6 ++++++
sysdeps/x86_64/dl-tls.c | 6 +++---
4 files changed, 13 insertions(+), 3 deletions(-)
@@ -6,6 +6,8 @@ GLIBC_2.2.5 calloc F
GLIBC_2.2.5 free F
GLIBC_2.2.5 malloc F
GLIBC_2.2.5 realloc F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 ___tls_get_addr F
GLIBC_2.3 GLIBC_2.3 A
GLIBC_2.3 __tls_get_addr F
GLIBC_2.4 GLIBC_2.4 A
@@ -7,3 +7,5 @@ GLIBC_2.16 calloc F
GLIBC_2.16 free F
GLIBC_2.16 malloc F
GLIBC_2.16 realloc F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 ___tls_get_addr F
@@ -10,3 +10,9 @@ libm {
exp2l;
}
}
+ld {
+ GLIBC_2.26 {
+ # The alternative x86-64 runtime interface to TLS with aligned stack.
+ ___tls_get_addr;
+ }
+}
@@ -25,13 +25,13 @@
/* Define __tls_get_addr within elf/dl-tls.c under a different
name. */
-extern __typeof__ (__tls_get_addr) __tls_get_addr_default;
+extern __typeof__ (__tls_get_addr) ___tls_get_addr;
-# define __tls_get_addr __tls_get_addr_default
+# define __tls_get_addr ___tls_get_addr
# include <elf/dl-tls.c>
# undef __tls_get_addr
-hidden_ver (__tls_get_addr_default, __tls_get_addr)
+hidden_ver (___tls_get_addr, __tls_get_addr)
/* Only handle slow paths for __tls_get_addr. */
attribute_hidden
--
2.9.4