glibc/sysdeps
Fangrui Song 6838920383 riscv: Fix incorrect jal with HIDDEN_JUMPTARGET
A non-local STV_DEFAULT defined symbol is by default preemptible in a
shared object. j/jal cannot target a preemptible symbol. On other
architectures, such a jump instruction either causes PLT [BZ #18822], or
if short-ranged, sometimes rejected by the linker (but not by GNU ld's
riscv port [ld PR/28509]).

Use HIDDEN_JUMPTARGET to target a non-preemptible symbol instead.

With this patch, ld.so and libc.so can be linked with LLD if source
files are compiled/assembled with -mno-relax/-Wa,-mno-relax.

Acked-by: Palmer Dabbelt <palmer@dabbelt.com>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-10-28 11:39:49 -07:00
..
aarch64 String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
alpha elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
arc elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
arm elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
csky String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
generic x86_64: Add support for __memcmpeq using sse2, avx2, and evex 2021-10-27 13:03:46 -05:00
gnu Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
hppa elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
htl htl: Reimplement GSCOPE 2021-09-16 01:04:17 +02:00
hurd
i386 String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
ia64 String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
ieee754 Fixed inaccuracy of j0f (BZ #28185) 2021-10-05 13:45:37 +02:00
m68k elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
mach String: Add support for __memcmpeq() ABI on all targets 2021-10-26 16:51:29 -05:00
microblaze elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
mips ld.so: Initialize bootstrap_map.l_ld_readonly [BZ #28340] 2021-10-19 06:40:38 -07:00
nios2 elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
nptl nptl: Use FUTEX_LOCK_PI2 when available 2021-10-01 08:09:13 -03:00
posix posix: Remove spawni.c 2021-09-27 12:44:25 -03:00
powerpc String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
pthread elf: Avoid deadlock between pthread_create and ctors [BZ #28357] 2021-10-04 15:07:05 +01:00
riscv riscv: Fix incorrect jal with HIDDEN_JUMPTARGET 2021-10-28 11:39:49 -07:00
s390 String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
sh elf: Fix dynamic-link.h usage on rtld.c 2021-10-14 14:52:07 -03:00
sparc String: Add hidden defs for __memcmpeq() to enable internal usage 2021-10-26 16:51:29 -05:00
unix riscv: Fix incorrect jal with HIDDEN_JUMPTARGET 2021-10-28 11:39:49 -07:00
wordsize-32 Disable symbol hack in libc_nonshared.a 2021-09-27 07:46:25 -07:00
wordsize-64 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
x86 elf: Remove Intel MPX support (lazy PLT, ld.so profile, and LD_AUDIT) 2021-10-11 11:14:02 -07:00
x86_64 x86_64: Add evex optimized __memcmpeq in memcmpeq-evex.S 2021-10-27 13:03:46 -05:00