From db4b12ae6213a28136d7622b74405c6c71c055b0 Mon Sep 17 00:00:00 2001 From: Yann Sionneau Date: Tue, 31 Mar 2020 08:51:31 +0200 Subject: or1k: fix some TLS issues Before this commit tst-tls-at-ctor test would segfault. After it passes. testsuite run before: https://pastebin.com/504JgQXa testsuite run after: https://pastebin.com/d2aNciVt Stafford Horne already fixed it in glibc: * https://github.com/openrisc/or1k-glibc/blob/bcd87396ebe78228645c0731b06c934dfd88855a/sysdeps/or1k/dl-machine.h#L298 * https://github.com/openrisc/or1k-glibc/blob/bcd87396ebe78228645c0731b06c934dfd88855a/sysdeps/or1k/dl-machine.h#L99 --- ldso/ldso/or1k/dl-sysdep.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'ldso/ldso/or1k/dl-sysdep.h') diff --git a/ldso/ldso/or1k/dl-sysdep.h b/ldso/ldso/or1k/dl-sysdep.h index d79249449..d838a50eb 100644 --- a/ldso/ldso/or1k/dl-sysdep.h +++ b/ldso/ldso/or1k/dl-sysdep.h @@ -36,8 +36,10 @@ do { \ #define ELF_TARGET "or1k" #define elf_machine_type_class(type) \ - (((type) == R_OR1K_JMP_SLOT) * ELF_RTYPE_CLASS_PLT \ - | ((type) == R_OR1K_COPY) * ELF_RTYPE_CLASS_COPY) + (((type) == R_OR1K_JMP_SLOT || (type) == R_OR1K_TLS_DTPMOD || \ + (type) == R_OR1K_TLS_DTPOFF || \ + (type) == R_OR1K_TLS_TPOFF) * ELF_RTYPE_CLASS_PLT \ + | ((type) == R_OR1K_COPY) * ELF_RTYPE_CLASS_COPY) static inline Elf32_Addr * or1k_get_got (void) -- cgit v1.2.3