bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: c-stack: Fix for Linux/sparc


From: Jim Meyering
Subject: Re: c-stack: Fix for Linux/sparc
Date: Sun, 16 Dec 2018 14:47:22 -0800

On Sun, Dec 16, 2018 at 2:38 PM Bruno Haible <address@hidden> wrote:
> While testing a 'grep' snapshot on Linux/sparc64, I noticed that this
> test failure (both in 32-bit and 64-bit mode):
>
> FAIL: test-c-stack2.sh
> ======================
>
> cannot tell stack overflow from crash, in spite of libsigsegv
> FAIL test-c-stack2.sh (exit status: 1)
>
>
> The message "in spite of libsigsegv" is a bit misleading: libsigsegv
> was available, but c-stack.c was compiled in such a way that it did
> not use libsigsegv. configure defined HAVE_XSI_STACK_OVERFLOW_HEURISTIC
> to 1; this is what leads to the test failure. If I
>   #undef HAVE_XSI_STACK_OVERFLOW_HEURISTIC
> in c-stack.c, then libsigsegv gets used, and the test-c-stack2.sh
> test succeeds.
>
> SIGSEGV handling on Linux/sparc is special; see
> https://git.savannah.gnu.org/gitweb/?p=libsigsegv.git;a=commitdiff;h=0db93a4c0e2a6881ad6781a9746fc112971aab17
>
> Two things are particular:
>   - The third argument passed to the SIGSEGV handler is not an 'ucontext_t *'.
>   - In 64-bit mode, an offset of 2047 needs to be considered.
>
> Since the problem here occurs also in 32-bit mode, where no offset is
> involved, the cause of the issue must be the nature of the third argument.
>
> With this knowledge, it's easy to adjust the Autoconf test. This patch
> fixes the test failure in both 32-bit and 64-bit mode; therefore I'm
> pushing it.
>
>
> 2018-12-16  Bruno Haible  <address@hidden>
>
>         c-stack: Fix for Linux/sparc.
>         * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Set
>         ac_cv_sys_xsi_stack_overflow_heuristic to 'no' on Linux/sparc.

Nice work.
This is cause for one more update from gnulib before I release grep-3.2
Thanks again!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]