This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
[RFC] ppc64 and calling conventions
- From: Benjamin Herrenschmidt <benh at kernel dot crashing dot org>
- To: libc-alpha at sources dot redhat dot com, linuxppc64-dev <linuxppc64-dev at ozlabs dot org>
- Date: Thu, 11 Nov 2004 14:32:48 +1100
- Subject: [RFC] ppc64 and calling conventions
Hi !
Before I submit the ppc64 vDSO upstream, I want to make sure we decide
on the calling convention to the library. I've been toying with a couple
of options, but I'd like some feedback.
The current one still exports 'normal' function symbols, that is
procedure descriptors and "dot" symbols for the actual function. The
whole thing is linked at +1Mb and mapping it elsewhere would require
some sort of relocations to be done, or the call sites in glibc to do
some additional arithmetic. (I can do relocation from the kernel
triggering copy-on-write, but that seem like a bad idea ...)
Something that was proposed a while ago (by Ulrich I think) is that
instead, I could export simple non-descriptor symbols that point
directly to the code and link the whole thing at 0. That way, what get
exported by the vDSO becomes offsets to the functions. Since glibc will
need call glue anyway, it doesn't make much difference, but allow the
vDSO to be mapped anywhere.
What do you think ? Should I stay to exporting normal symbols or switch
to the above idea ?
Additionally, we may consider, in the future, some ld.so trickery so
that applications OPDs are directly "fixed up" to point to the vDSO to
save the cost of the trampoline.
Ben.