Thread (11 messages) 11 messages, 2 authors, 2020-11-25
  • (off-list ancestor, not in this archive)
  • Re: C vdso · Christophe Leroy <hidden> · 2020-09-24
  • Re: C vdso · Christophe Leroy <hidden> · 2020-10-23
  • Re: C vdso · Michael Ellerman <mpe@ellerman.id.au> · 2020-10-23
  • Re: C vdso · Michael Ellerman <mpe@ellerman.id.au> · 2020-10-24
  • Re: C vdso · Christophe Leroy <hidden> · 2020-10-24
  • Re: C vdso · Christophe Leroy <hidden> · 2020-11-03
  • Re: C vdso · Christophe Leroy <hidden> · 2020-11-03
  • Re: C vdso · Christophe Leroy <hidden> · 2020-11-24
  • Re: C vdso · Michael Ellerman <mpe@ellerman.id.au> · 2020-11-25
  • Re: C vdso · Christophe Leroy <hidden> · 2020-11-25
  • Re: C vdso · Michael Ellerman <mpe@ellerman.id.au> · 2020-11-25

Re: C vdso

From: Christophe Leroy <hidden>
Date: 2020-11-03 18:57:59


Le 23/10/2020 à 15:24, Michael Ellerman a écrit :
Christophe Leroy [off-list ref] writes:
quoted
Le 24/09/2020 à 15:17, Christophe Leroy a écrit :
quoted
Le 17/09/2020 à 14:33, Michael Ellerman a écrit :
quoted
Christophe Leroy [off-list ref] writes:
quoted
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.
...
quoted
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help