diff options
author | 2022-04-20 10:24:15 -0700 | |
---|---|---|
committer | 2022-04-20 23:37:32 +0200 | |
commit | ecbe0602fba2c359946084f0f8dae677a7dc0aad (patch) | |
tree | 747a5771fffc40033a3a9ec98fc2a5cdaf36ab22 /iconvdata | |
parent | mips: Fix mips64n32 64 bit time_t stat support (BZ#29069) (diff) | |
download | glibc-gentoo/glibc-2.35-6.tar.gz glibc-gentoo/glibc-2.35-6.tar.bz2 glibc-gentoo/glibc-2.35-6.zip |
m68k: Handle fewer relocations for RTLD_BOOTSTRAP (#BZ29071)gentoo/glibc-2.35-6
m68k is a non-PI_STATIC_AND_HIDDEN arch which uses a GOT relocation when
loading the address of a jump table. The GOT load may be reordered
before processing R_68K_RELATIVE relocations, leading to an
unrelocated/incorrect jump table, which will cause a crash.
The foolproof approach is to add an optimization barrier (e.g. calling
an non-inlinable function after relative relocations are resolved). That
is non-trivial given the current code structure, so just use the simple
approach to avoid the jump table: handle only the essential reloctions
for RTLD_BOOTSTRAP code.
This is based on Andreas Schwab's patch and fixed ld.so crash on m68k.
Reviewed-by: Adheemrval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit a8e9b5b8079d18116ca69c9797e77804ecf2ee7e)
Diffstat (limited to 'iconvdata')
0 files changed, 0 insertions, 0 deletions