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

From: Mathieu Desnoyers
Date: Mon Apr 27 2020 - 12:47:15 EST


----- 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.

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com