This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add NEWS entry about the change in handling of PT_GNU_STACK on MIPS


On 22/01/20 10:44 pm, Dragan Mladjenovic wrote:
> From: "Dragan Mladjenovic" <dmladjenovic@wavecomp.com>
> 
> The change was introduced in:
> 
> commit 33bc9efd91de1b14354291fc8ebd5bce96379f12
> Author: Dragan Mladjenovic <dmladjenovic@wavecomp.com>
> Date:   Fri Aug 23 16:38:04 2019 +0000
> 
>     mips: Force RWX stack for hard-float builds that can run on pre-4.8 kernels
> 
> and probably requires a small explanation.
> ---
>  NEWS | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/NEWS b/NEWS
> index 44065d9..1e5dcf3 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -112,6 +112,18 @@ Deprecated and removed features, and other changes affecting compatibility:
>    captured in a dlerror message.  In general, this is unsafe because
>    resetting the stack in an arbitrary function call is not possible.
>  
> +* For the MIPS hard-float ABIs, the glibc will no longer honor RW PT_GNU_STACK
> +  and will run on executable stack unless explicitly configured at build time
> +  to require minimum kernel version 4.8 or newer. On Linux kernels prior to
> +  4.8 executing floating-point branches on non-executable stack can
> +  lead to application crashes for some MIPS configurations. While currently
> +  the PT_GNU_STACK is not widely used on MIPS, the future releases of GCC are
> +  expected to enable RW PT_GNU_STACK by default thus likely to trigger the
> +  crash on older kernels.
> +
> +  The glibc can be built with --enable-kernel=4.8.0 in order to honor
> +  RW PT_GNU_STACK while dropping support for older kernels.
> +

Thanks, I've reworded this a bit before committing; just cleanups that
should retain the meaning as is:


* For MIPS hard-float ABIs, the GNU C Library will be configured to need
an executable stack unless explicitly configured at build time to
require minimum kernel version 4.8 or newer.  This is because executing
floating-point branches on a non-executable stack on Linux kernels prior
to 4.8 can lead to application crashes for some MIPS configurations.
While currently PT_GNU_STACK is not widely used on MIPS, future releases
of GCC are expected to enable non-executable stack by default  with
PT_GNU_STACK by default and is thus likely to trigger a crash on older
kernels.

  The GNU C Library can be built with --enable-kernel=4.8.0 in order to
keep a non-executable stack while dropping support for older kernels.

Siddhesh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]