diff options
author | Fangrui Song <maskray@google.com> | 2021-08-16 09:59:30 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2021-08-16 09:59:30 -0700 |
commit | 33c50ef42878b07ee6ead8b3f1a81d8c2c74697c (patch) | |
tree | 80906e254be99c7a3005cdc5f1dbeb1cafd0643a /elf/tls-macros.h | |
parent | cbb2aa337bc3a5f1cb9936781c3a7f5036d4262e (diff) | |
download | glibc-33c50ef42878b07ee6ead8b3f1a81d8c2c74697c.tar.gz glibc-33c50ef42878b07ee6ead8b3f1a81d8c2c74697c.tar.xz glibc-33c50ef42878b07ee6ead8b3f1a81d8c2c74697c.zip |
elf: Drop elf/tls-macros.h in favor of __thread and tls_model attributes [BZ #28152] [BZ #28205]
elf/tls-macros.h was added for TLS testing when GCC did not support __thread. __thread and tls_model attributes are mature now and have been used by many newer tests. Also delete tst-tls2.c which tests .tls_common (unused by modern GCC and unsupported by Clang/LLD). .tls_common and .tbss definition are almost identical after linking, so the runtime test doesn't add additional coverage. Assembler and linker tests should be on the binutils side. When LLD 13.0.0 is allowed in configure.ac (https://sourceware.org/pipermail/libc-alpha/2021-August/129866.html), `make check` result is on par with glibc built with GNU ld on aarch64 and x86_64. As a future clean-up, TLS_GD/TLS_LD/TLS_IE/TLS_IE macros can be removed from sysdeps/*/tls-macros.h. We can add optional -mtls-dialect={gnu2,trad} tests to ensure coverage. Tested on aarch64-linux-gnu, powerpc64le-linux-gnu, and x86_64-linux-gnu. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Diffstat (limited to 'elf/tls-macros.h')
-rw-r--r-- | elf/tls-macros.h | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/elf/tls-macros.h b/elf/tls-macros.h deleted file mode 100644 index e25e33b0f0..0000000000 --- a/elf/tls-macros.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Macros to support TLS testing in times of missing compiler support. */ - -#define COMMON_INT_DEF(x) \ - asm (".tls_common " #x ",4,4") -/* XXX Until we get compiler support we don't need declarations. */ -#define COMMON_INT_DECL(x) - -/* XXX This definition will probably be machine specific, too. */ -#define VAR_INT_DEF(x) \ - asm (".section .tdata\n\t" \ - ".globl " #x "\n" \ - ".balign 4\n" \ - #x ":\t.long 0\n\t" \ - ".size " #x ",4\n\t" \ - ".previous") -/* XXX Until we get compiler support we don't need declarations. */ -#define VAR_INT_DECL(x) - -#include_next <tls-macros.h> - - /* XXX Each architecture must have its own asm for now. */ -#if !defined TLS_LE || !defined TLS_IE \ - || !defined TLS_LD || !defined TLS_GD -# error "No support for this architecture so far." -#endif |