This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 2/2] Add VDSO version of sched_getcpu on powerpc
On Tue, Jan 8, 2013 at 1:45 PM, Roland McGrath <roland@hack.frob.com> wrote:
>>
>> + __vdso_getcpu = _dl_vdso_vsym ("__kernel_getcpu", &linux2615);
>>
>> Considering that __kernel_getcpu for powerpc went into the Linux
>> kernel last July (3.5), I believe this should be:
>>
>> PREPARE_VERSION (linux35, "LINUX_3.5", 61765365);
>> __vdso_getcpu = _dl_vdso_vsym ("__kernel_getcpu", &linux35);
>
> That would be the case if the kernel folks had used proper symbol
> versioning discipline for adding new features to the vDSO. But they
> didn't. The version set name has to match what's in the vDSO image,
> obviously. The powerpc vDSO uses "LINUX_2.6.15".
Thanks for clearing that up Roland. I was clawing my way through the
Linux kernel sources but this didn't stick out to me.
So, on a system that has a Linux 2.6.15 kernel but doesn't have the
__kernel_getcpu vDSO call available _dl_vdso_vsym should still resolve
this as null and the syscall fallback should be hit.
Darn, I wasted 20 minutes figuring out how to generate that elf hash
for Linux 3.5. :-)
Thanks,
Ryan