C vdso
Christophe Leroy
christophe.leroy at csgroup.eu
Wed Nov 4 05:13:23 AEDT 2020
Le 23/10/2020 à 15:24, Michael Ellerman a écrit :
> Christophe Leroy <christophe.leroy at csgroup.eu> writes:
>> Le 24/09/2020 à 15:17, Christophe Leroy a écrit :
>>> Le 17/09/2020 à 14:33, Michael Ellerman a écrit :
>>>> Christophe Leroy <christophe.leroy at csgroup.eu> writes:
>>>>>
>>>>> What is the status with the generic C vdso merge ?
>>>>> In some mail, you mentionned having difficulties getting it working on
>>>>> ppc64, any progress ? What's the problem ? Can I help ?
>>>>
>>>> Yeah sorry I was hoping to get time to work on it but haven't been able
>>>> to.
>>>>
>>>> It's causing crashes on ppc64 ie. big endian.
> ...
>>>
>>> Can you tell what defconfig you are using ? I have been able to setup a full glibc PPC64 cross
>>> compilation chain and been able to test it under QEMU with success, using Nathan's vdsotest tool.
>>
>> What config are you using ?
>
> ppc64_defconfig + guest.config
>
> Or pseries_defconfig.
>
> I'm using Ubuntu GCC 9.3.0 mostly, but it happens with other toolchains too.
>
> At a minimum we're seeing relocations in the output, which is a problem:
>
> $ readelf -r build\~/arch/powerpc/kernel/vdso64/vdso64.so
>
> Relocation section '.rela.dyn' at offset 0x12a8 contains 8 entries:
> Offset Info Type Sym. Value Sym. Name + Addend
> 000000001368 000000000016 R_PPC64_RELATIVE 7c0
> 000000001370 000000000016 R_PPC64_RELATIVE 9300
> 000000001380 000000000016 R_PPC64_RELATIVE 970
> 000000001388 000000000016 R_PPC64_RELATIVE 9300
> 000000001398 000000000016 R_PPC64_RELATIVE a90
> 0000000013a0 000000000016 R_PPC64_RELATIVE 9300
> 0000000013b0 000000000016 R_PPC64_RELATIVE b20
> 0000000013b8 000000000016 R_PPC64_RELATIVE 9300
Looks like it's due to the OPD and relation between the function() and .function()
By using DOTSYM() in the 'bl' call, that's directly the dot function which is called and the OPD is
not used anymore, it can get dropped.
Now I get .rela.dyn full of 0, don't know if we should drop it explicitely.
Christophe
More information about the Linuxppc-dev
mailing list