Re: [PATCH glibc 5/9] glibc: Perform rseq(2) registration at C startup and thread creation (v17)

From: Florian Weimer
Date: Mon Apr 27 2020 - 12:59:33 EST


* Mathieu Desnoyers:

> ----- On Apr 27, 2020, at 7:59 AM, Florian Weimer fw@xxxxxxxxxxxxx wrote:
>
>> * Mathieu Desnoyers via Libc-alpha:
>>
>>> diff --git a/elf/libc_early_init.c b/elf/libc_early_init.c
>>> index 1ac66d895d..30466afea0 100644
>>> --- a/elf/libc_early_init.c
>>> +++ b/elf/libc_early_init.c
>>> @@ -18,10 +18,13 @@
>>>
>>> #include <ctype.h>
>>> #include <libc-early-init.h>
>>> +#include <rseq-internal.h>
>>>
>>> void
>>> __libc_early_init (void)
>>> {
>>> /* Initialize ctype data. */
>>> __ctype_init ();
>>> + /* Register rseq ABI to the kernel. */
>>> + (void) rseq_register_current_thread ();
>>> }
>>
>> I think the registration must be restricted to the primary namespace.
>> Otherwise, LD_AUDIT will register the area to the secondary libc (in
>> the audit module), not the primary libc for the entire process.
>>
>> I think the easiest way to implement this for now is a flag argument
>> for __libc_early_init (as the upstream __libc_multiple_libcs is not
>> entirely accurate). I will submit a patch.
>
> OK, once I get the patch, I will pick it up in my series.

There should be no need for that, it can be reviewed and committed
separately:

<https://sourceware.org/pipermail/libc-alpha/2020-April/113182.html>