[PATCH] arm: mark __startcontext as .cantunwind
Florian Weimer
fweimer@redhat.com
Mon Aug 15 12:45:00 GMT 2016
On 08/15/2016 02:37 PM, Andreas Schwab wrote:
> __startcontext marks the bottom of the call stack of the contexts created
> by makecontext.
>
> [BZ #20435]
> * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark
> as .cantunwind.
> ---
> sysdeps/unix/sysv/linux/arm/setcontext.S | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
> index 603e508..d1f168f 100644
> --- a/sysdeps/unix/sysv/linux/arm/setcontext.S
> +++ b/sysdeps/unix/sysv/linux/arm/setcontext.S
> @@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext)
>
> /* Called when a makecontext() context returns. Start the
> context in R4 or fall through to exit(). */
> + /* Unwind descriptors are looked up based on PC - 2, so we have to
> + make sure to mark the instruction preceding the __startcontext
> + label as .cantunwind. */
> + .fnstart
> + .cantunwind
> + nop
Why isn't the PC - 2 kludge needed for the other .cantunwind cases?
Would it be possible to add a C test case to the glibc testsuite?
Thanks,
Florian
More information about the Libc-alpha
mailing list