This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] sparc32: Add nop before __startcontext to stop unwinding [BZ #xxxxx]
- From: David Miller <davem at davemloft dot net>
- To: aurelien at aurel32 dot net
- Cc: libc-alpha at sourceware dot org
- Date: Wed, 07 Mar 2018 10:32:52 -0500 (EST)
- Subject: Re: [PATCH] sparc32: Add nop before __startcontext to stop unwinding [BZ #xxxxx]
- Authentication-results: sourceware.org; auth=none
- References: <20180303091018.32019-1-aurelien@aurel32.net>
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Sat, 3 Mar 2018 10:10:18 +0100
> On sparc32 tst-makecontext fails, as backtrace called within a context
> created by makecontext to yield infinite backtrace.
>
> Fix that the same way than nios2 by adding a nop just before
> __startcontext. This is needed as otherwise FDE lookup just repeatedly
> finds __setcontext's FDE in an infinite loop, due to the convention of
> using 'address - 1' for FDE lookup.
>
> Changelog:
> [BZ #22919]
> * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext):
> Add nop before __startcontext, add explaining comments.
Yeah this stuff is really tricky, thanks for fixing this.