diff options
author | Mihailo Stojanovic <mihailo.stojanovic@rt-rk.com> | 2019-08-23 16:47:27 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2019-08-23 16:47:27 +0000 |
commit | edd8d70b91e1ccef549a7c668499596cc4d56ad1 (patch) | |
tree | 381abb05ebdfcd3b936d0ce0f1be15176df04e53 /sysdeps/unix | |
parent | 33bc9efd91de1b14354291fc8ebd5bce96379f12 (diff) | |
download | glibc-edd8d70b91e1ccef549a7c668499596cc4d56ad1.tar.gz glibc-edd8d70b91e1ccef549a7c668499596cc4d56ad1.tar.xz glibc-edd8d70b91e1ccef549a7c668499596cc4d56ad1.zip |
[MIPS] Raise highest supported EI_ABIVERSION value [BZ #24916]
This bumps the highest valid EI_ABIVERSION value to ABSOLUTE ABI. New testcase loads the symbol from the GOT with the "lb" instruction so that the EI_ABIVERSION header field of the shared object is set to ABSOLUTE (it doesn't actually check the value of the symbol), and makes sure that the main executable is executed without "ABI version invalid" error. Tested for all three ABIs (o32, n32, n64) using both static linker which handles undefined weak symbols correctly [1] (and sets the EI_ABIVERSION of the test module) and the one that doesn't (EI_ABIVERSION left as 0). [1] https://sourceware.org/ml/binutils/2018-07/msg00268.html [BZ #24916] * sysdeps/mips/Makefile [$(subdir) = elf] (tests): Add tst-undefined-weak. [$(subdir) = elf] (modules-names): Add tst-undefined-weak-lib. [$(subdir) = elf] ($(objpfx)tst-undefined-weak): Add dependency. * sysdeps/mips/tst-undefined-weak-lib.S: New file. * sysdeps/mips/tst-undefined-weak.c: Likewise. * sysdeps/unix/sysv/linux/mips/ldsodefs.h (VALID_ELF_ABIVERSION): Increment highest valid ABIVERSION value.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/ldsodefs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h index 8dde855754..28257f83ae 100644 --- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h +++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h @@ -34,7 +34,7 @@ extern void _dl_static_init (struct link_map *map); #undef VALID_ELF_ABIVERSION #define VALID_ELF_ABIVERSION(osabi,ver) \ (ver == 0 \ - || (osabi == ELFOSABI_SYSV && ver < 4) \ + || (osabi == ELFOSABI_SYSV && ver < 5) \ || (osabi == ELFOSABI_GNU && ver < LIBC_ABI_MAX)) #endif /* ldsodefs.h */ |