Re: [PATCH v2 05/17] vdso: Avoid call to memset() by getrandom

Michael Ellerman
2024-08-30T10:02:05Z

Segher Boessenkool <segher@kernel.crashing.org> writes:
> On Thu, Aug 29, 2024 at 07:36:38PM +0200, Christophe Leroy wrote:
>>
>>
>> Le 28/08/2024 à 19:25, Segher Boessenkool a écrit :
>> >
>> >>Not sure about static binaries, though: do those even use the VDSO?
>> >
>> >With "static binary" people usually mean "a binary not using any DSOs",
>> >I think the VDSO is a DSO, also in this respect? As always, -static
>> >builds are *way* less problematic (and faster and smaller :-) )
>> >
>>
>> AFAIK on powerpc even static binaries use the vDSO, otherwise signals
>> don't work.
>
> How can that work? Non-dynamic binaries do not use ld.so (that is the
> definition of a dynamic binary, even). So they cannot link (at runtime)
> to any DSO (unless that is done manually?!)

At least for signals I don't think the application needs to know
anything about the VDSO. The kernel sets up the return to the signal
trampoline (in the VDSO), and as long as userspace returns from its
signal handler with blr it will land back on the trampoline.

cheers