This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Add NEWS entry about the change in handling of PT_GNU_STACK on MIPS
- From: Siddhesh Poyarekar <siddhesh at sourceware dot org>
- To: Dragan Mladjenovic <dmladjenovic at wavecomp dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>
- Cc: Joseph Myers <joseph at codesourcery dot com>
- Date: Thu, 23 Jan 2020 19:59:25 +0530
- Subject: Re: [PATCH] Add NEWS entry about the change in handling of PT_GNU_STACK on MIPS
- References: <1579713216-8450-1-git-send-email-dmladjenovic@wavecomp.com>
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