mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 22:40:05 +00:00
S390: Support PLT and GOT references in check-localplt.
on s390x the test elf/check-localplt is failing after recent commits: "elf: Do not use memalign for TCB/TLS blocks allocation [BZ #17730]" "elf: Avoid using memalign for TLS allocations [BZ #17730]" "elf: dl-minimal malloc needs to respect fundamental alignment" due to "Missing required PLT reference: ld.so: __libc_memalign". After the commits __libc_memalign is only called in elf/dl-minimal.c in malloc() function in ld.so and gcc -O2/-O3 leads to R_390_GLOB_DAT instead of R_390_JMP_SLOT. __libc_memalign is called via function-pointer loaded from GOT instead of calling via a plt-stub. In this case there is the R_390_GLOB_DAT relocation in section .rela.dyn instead of R_390_JMP_SLOT in .rela.plt. This patch marks ld.so: __libc_memalign with R_390_GLOB_DAT in localplt.data to allow both relocations. If build with -fno-optimize-sibling-calls or on s390(31bit) a R_390_JMP_SLOT is generated. ChangeLog: * sysdeps/unix/sysv/linux/s390/localplt.data: Mark ld.so: __libc_memalign with "+ RELA R_390_GLOB_DAT".
This commit is contained in:
parent
4bf5f2224b
commit
a0d47f487f
@ -1,3 +1,8 @@
|
||||
2016-09-06 Stefan Liebler <stli@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/s390/localplt.data: Mark ld.so:
|
||||
__libc_memalign with "+ RELA R_390_GLOB_DAT".
|
||||
|
||||
2016-09-06 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
Convert malloc to __libc_lock. Automated part, using this Perl
|
||||
|
@ -8,7 +8,14 @@ libm.so: matherr
|
||||
# The dynamic loader uses __libc_memalign internally to allocate aligned
|
||||
# TLS storage. The other malloc family of functions are expected to allow
|
||||
# user symbol interposition.
|
||||
ld.so: __libc_memalign
|
||||
# It is also allowed to call __libc_memalign via function-pointer loaded from
|
||||
# GOT instead of calling via a plt-stub. In this case there is a R_390_GLOB_DAT
|
||||
# relocation in section .rela.dyn instead of R_390_JMP_SLOT in .rela.plt.
|
||||
# After commit "elf: Do not use memalign for TCB/TLS blocks allocation
|
||||
# [BZ #17730]" __libc_memalign is only called in elf/dl-minimal.c: malloc() in
|
||||
# ld.so and gcc -O2/-O3 leads to R_390_GLOB_DAT. If build with
|
||||
# -fno-optimize-sibling-calls an R_390_JMP_SLOT is generated.
|
||||
ld.so: __libc_memalign + RELA R_390_GLOB_DAT
|
||||
ld.so: malloc
|
||||
ld.so: calloc
|
||||
ld.so: realloc
|
||||
|
Loading…
Reference in New Issue
Block a user