diff options
author | Fangrui Song <maskray@google.com> | 2022-04-20 10:24:15 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2022-04-20 10:24:16 -0700 |
commit | a8e9b5b8079d18116ca69c9797e77804ecf2ee7e (patch) | |
tree | 0bdf2e984569e8369740ae861ef839cc1ffeb4cb /libio/vwscanf.c | |
parent | 62be9681677e7ce820db721c126909979382d379 (diff) | |
download | glibc-a8e9b5b8079d18116ca69c9797e77804ecf2ee7e.tar glibc-a8e9b5b8079d18116ca69c9797e77804ecf2ee7e.tar.gz glibc-a8e9b5b8079d18116ca69c9797e77804ecf2ee7e.tar.bz2 glibc-a8e9b5b8079d18116ca69c9797e77804ecf2ee7e.zip |
m68k: Handle fewer relocations for RTLD_BOOTSTRAP (#BZ29071)
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>
Diffstat (limited to 'libio/vwscanf.c')
0 files changed, 0 insertions, 0 deletions