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

Florian Weimer fweimer@redhat.com
Wed Aug 17 13:48:00 GMT 2016


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



More information about the Libc-alpha mailing list