rseq enablement patches overview

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

rseq enablement patches overview

Florian Weimer-5
Since my patchwork looks rather horrible right now and I posted a bunch
of vaguely-related cleanups first, here are the patches that currently
need review for rseq enablement:

  Introduce <elf_machine_sym_no_match.h>
  <https://sourceware.org/ml/libc-alpha/2019-10/msg00339.html>

    This is needed in the implementation of _dl_lookup_direct in the
    next patch.

  Implement __libc_early_init
  <https://sourceware.org/ml/libc-alpha/2019-10/msg00340.html>

    This is the main patch.  rseq should be hooked into
    __libc_early_init, around the __ctype_init call.

  nptl: Start new threads with all signals blocked [BZ #25098]
  <https://sourceware.org/ml/libc-alpha/2019-10/msg00383.html>

    This is a long-standing issue which will affect rseq as well.

  resolv/tst-idna_name_classify: Isolate from system libraries
  <https://sourceware.org/ml/libc-alpha/2019-10/msg00338.html>

    This is required to fix a test suite failure due to the ld.so static
    link ABI changing in the __libc_early_init patch.  (I should
    probably just push this one.)

In particular, none of the RELRO patches and their dependencies are
needed anymore.

The built-in system call tables are still missing, but we can implement
rseq in master before that set of changes lands.  The new tables should
be transparent to the code.  The syscall are only relevant for the
release because we want to tell users that if they build glibc 2.31,
that glibc will have rseq support on a certain set of architectures
(independently of the kernel headers being used).

Thanks,
Florian
Reply | Threaded
Open this post in threaded view
|

Re: rseq enablement patches overview

Florian Weimer-5
* Florian Weimer:

> Since my patchwork looks rather horrible right now and I posted a bunch
> of vaguely-related cleanups first, here are the patches that currently
> need review for rseq enablement:
>
>   Introduce <elf_machine_sym_no_match.h>
>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00339.html>
>
>     This is needed in the implementation of _dl_lookup_direct in the
>     next patch.
>
>   Implement __libc_early_init
>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00340.html>
>
>     This is the main patch.  rseq should be hooked into
>     __libc_early_init, around the __ctype_init call.
>
>   nptl: Start new threads with all signals blocked [BZ #25098]
>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00383.html>
>
>     This is a long-standing issue which will affect rseq as well.

I reposted these patches:

  <https://sourceware.org/ml/libc-alpha/2019-11/msg00976.html>
  <https://sourceware.org/ml/libc-alpha/2019-11/msg00977.html>
  <https://sourceware.org/ml/libc-alpha/2019-11/msg01016.html>

>   resolv/tst-idna_name_classify: Isolate from system libraries
>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00338.html>
>
>     This is required to fix a test suite failure due to the ld.so static
>     link ABI changing in the __libc_early_init patch.  (I should
>     probably just push this one.)

This patch has been merged.

Thanks,
Florian

Reply | Threaded
Open this post in threaded view
|

Re: rseq enablement patches overview

Mathieu Desnoyers-4
----- On Nov 29, 2019, at 7:07 AM, Florian Weimer [hidden email] wrote:

> * Florian Weimer:
>
>> Since my patchwork looks rather horrible right now and I posted a bunch
>> of vaguely-related cleanups first, here are the patches that currently
>> need review for rseq enablement:
>>
>>   Introduce <elf_machine_sym_no_match.h>
>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00339.html>
>>
>>     This is needed in the implementation of _dl_lookup_direct in the
>>     next patch.
>>
>>   Implement __libc_early_init
>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00340.html>
>>
>>     This is the main patch.  rseq should be hooked into
>>     __libc_early_init, around the __ctype_init call.
>>
>>   nptl: Start new threads with all signals blocked [BZ #25098]
>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00383.html>
>>
>>     This is a long-standing issue which will affect rseq as well.
>

Hi Florian,

Sorry for the delayed reply,

> I reposted these patches:
>
>  <https://sourceware.org/ml/libc-alpha/2019-11/msg00976.html>
>  <https://sourceware.org/ml/libc-alpha/2019-11/msg00977.html>

For some reason I have issues applying this last patch (00977) on
top of glibc master at commit a059f9505bb. Is there a specific commit
I should use as a baseline ?

Thanks,

Mathieu

>  <https://sourceware.org/ml/libc-alpha/2019-11/msg01016.html>
>
>>   resolv/tst-idna_name_classify: Isolate from system libraries
>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00338.html>
>>
>>     This is required to fix a test suite failure due to the ld.so static
>>     link ABI changing in the __libc_early_init patch.  (I should
>>     probably just push this one.)
>
> This patch has been merged.
>
> Thanks,
> Florian

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
Reply | Threaded
Open this post in threaded view
|

Re: rseq enablement patches overview

Mathieu Desnoyers-4
----- On Dec 17, 2019, at 11:08 AM, Mathieu Desnoyers [hidden email] wrote:

> ----- On Nov 29, 2019, at 7:07 AM, Florian Weimer [hidden email] wrote:
>
>> * Florian Weimer:
>>
>>> Since my patchwork looks rather horrible right now and I posted a bunch
>>> of vaguely-related cleanups first, here are the patches that currently
>>> need review for rseq enablement:
>>>
>>>   Introduce <elf_machine_sym_no_match.h>
>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00339.html>
>>>
>>>     This is needed in the implementation of _dl_lookup_direct in the
>>>     next patch.
>>>
>>>   Implement __libc_early_init
>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00340.html>
>>>
>>>     This is the main patch.  rseq should be hooked into
>>>     __libc_early_init, around the __ctype_init call.
>>>
>>>   nptl: Start new threads with all signals blocked [BZ #25098]
>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00383.html>
>>>
>>>     This is a long-standing issue which will affect rseq as well.
>>
>
> Hi Florian,
>
> Sorry for the delayed reply,
>
>> I reposted these patches:
>>
>>  <https://sourceware.org/ml/libc-alpha/2019-11/msg00976.html>
>>  <https://sourceware.org/ml/libc-alpha/2019-11/msg00977.html>
>
> For some reason I have issues applying this last patch (00977) on
> top of glibc master at commit a059f9505bb. Is there a specific commit
> I should use as a baseline ?

I found the conflicting patch:

commit 440b7f865 "Avoid late failure in dlopen in global scope update [BZ #25112]"

The conflict resolution was straightforward. I'll start updating the rseq
patchset.

Thanks,

Mathieu


>
> Thanks,
>
> Mathieu
>
>>  <https://sourceware.org/ml/libc-alpha/2019-11/msg01016.html>
>>
>>>   resolv/tst-idna_name_classify: Isolate from system libraries
>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00338.html>
>>>
>>>     This is required to fix a test suite failure due to the ld.so static
>>>     link ABI changing in the __libc_early_init patch.  (I should
>>>     probably just push this one.)
>>
>> This patch has been merged.
>>
>> Thanks,
>> Florian
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
Reply | Threaded
Open this post in threaded view
|

Re: rseq enablement patches overview

Florian Weimer-5
* Mathieu Desnoyers:

>>>> Since my patchwork looks rather horrible right now and I posted a bunch
>>>> of vaguely-related cleanups first, here are the patches that currently
>>>> need review for rseq enablement:
>>>>
>>>>   Introduce <elf_machine_sym_no_match.h>
>>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00339.html>
>>>>
>>>>     This is needed in the implementation of _dl_lookup_direct in the
>>>>     next patch.
>>>>
>>>>   Implement __libc_early_init
>>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00340.html>
>>>>
>>>>     This is the main patch.  rseq should be hooked into
>>>>     __libc_early_init, around the __ctype_init call.
>>>>
>>>>   nptl: Start new threads with all signals blocked [BZ #25098]
>>>>   <https://sourceware.org/ml/libc-alpha/2019-10/msg00383.html>
>>>>
>>>>     This is a long-standing issue which will affect rseq as well.
>>>
>>
>> Hi Florian,
>>
>> Sorry for the delayed reply,
>>
>>> I reposted these patches:
>>>
>>>  <https://sourceware.org/ml/libc-alpha/2019-11/msg00976.html>
>>>  <https://sourceware.org/ml/libc-alpha/2019-11/msg00977.html>
>>
>> For some reason I have issues applying this last patch (00977) on
>> top of glibc master at commit a059f9505bb. Is there a specific commit
>> I should use as a baseline ?
>
> I found the conflicting patch:
>
> commit 440b7f865 "Avoid late failure in dlopen in global scope update [BZ #25112]"
>
> The conflict resolution was straightforward. I'll start updating the rseq
> patchset.

I'm going to repost my patches, too, as follow-ups.

A new set of patches for built-in system call tables is available, too:

  <https://sourceware.org/ml/libc-alpha/2019-12/msg00567.html>

Thanks,
Florian