This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] S390: Support PLT and GOT references in check-localplt.


On 08/09/2016 04:22 PM, Stefan Liebler wrote:
On 08/09/2016 03:53 PM, Florian Weimer wrote:
On 08/09/2016 03:34 PM, Stefan Liebler wrote:
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.

Huh.  I wonder if this is intended.  Surely the malloc implementation in
elf/dl-minimal.c should always call the __libc_memalign implementation
in the same file?

Thanks,
Florian


Please have a look at the other localplt.data files, e.g.
sysdeps/x86_64/localplt.data:
# 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 + RELA R_X86_64_GLOB_DAT

All contains the __libc_memalign relocation.
On s390x it has also existed before but a plt-stub was used. If you now
use the compiler flag -fno-optimize-sibling-calls you'll get the
plt-stub as before. With this optimization the relocation is done via a
function pointer.

Okay, but shouldn't be __libc_memalign in dl-minimal.c declared as attribute_hidden?

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]