[PATCH v2] os: Prevent backtrace from being stopped in noreturn functions.

Daniel Stone daniel at fooishbar.org
Tue Mar 23 22:07:47 PDT 2010


On Wed, Mar 17, 2010 at 12:16:57PM +0200, Rami Ylimaki wrote:
> There are two noreturn functions in the X server: FatalError and
> AbortServer. Having any of those two functions in the middle of a call
> stack will prevent unwinding the program properly and stops the
> backtrace at those functions in gdb.
> 
> The file containing FatalError and AbortServer, os/log.c, has to be
> compiled with the -mapcs-frame option on ARM to get proper
> backtraces. Automake imposes its own restrictions on compiling
> individual source files with different options. The recommended way to
> do this is to put os/log.c into a convenience library and add this
> library inside os/libos.la. See the documentation of GNU Automake
> manual, version 1.11.1, section 27.8 Per-Object Flags Emulation, for
> details.
> 
> Signed-off-by: Rami Ylimaki <ext-rami.ylimaki at nokia.com>
> ---
> Fixed based on previous review feedback. I'm aware that GCC should
> also be fixed at some point, but nevertheless it'd be nice to get this
> fix integrated upstream because we don't have the possibility to
> switch to a patched GCC anytime soon.

Yeah, I know this is unpleasant, but ...

Reviewed-by: Daniel Stone <daniel at fooishbar.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100324/7f4cded7/attachment-0001.pgp>


More information about the xorg-devel mailing list