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

Jamey Sharp jamey at minilop.net
Tue Jun 15 09:33:19 PDT 2010


Cool, glad to hear GCC got magically smarter or something.

Reviewed-by: Jamey Sharp <jamey at minilop.net>

On Tue, Jun 15, 2010 at 5:44 AM, Rami Ylimäki
<ext-rami.ylimaki at nokia.com> wrote:
> This reverts commit 579715f830fbbca9e1ecb17dc18176132f5969e7.
>
> The patch is not needed anymore. I haven't encountered backtrace
> problems with GCC 4.3.3. Even if the problems still persisted, this
> commit should be removed and instead the definition of _X_NORETURN
> should be modified to be empty if GCC/ARM is used. However, currently
> it seems that ARM backtraces are OK even if _X_NORETURN is used and
> -mapcs-frame is not defined in CFLAGS.
>
> Signed-off-by: Rami Ylimäki <ext-rami.ylimaki at nokia.com>
> ---
>  configure.ac   |   13 -------------
>  os/Makefile.am |   17 +++++------------
>  2 files changed, 5 insertions(+), 25 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index c8b49de..b5112e1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -315,19 +315,6 @@ AC_CHECK_HEADER([execinfo.h],[
>     ])]
>  )
>
> -dnl ARM needs additional compiler flags for proper backtraces if GCC is
> -dnl used. Compile a dummy program with the -mapcs-frame option. If it
> -dnl succeeds, we know that we are building for ARM with GCC.
> -old_CFLAGS="$CFLAGS"
> -CFLAGS="-mapcs-frame"
> -AC_COMPILE_IFELSE(
> -        AC_LANG_PROGRAM([[ ]]),
> -        ARM_BACKTRACE_CFLAGS="$CFLAGS",
> -        ARM_BACKTRACE_CFLAGS=""
> -)
> -CFLAGS="$old_CFLAGS"
> -AC_SUBST(ARM_BACKTRACE_CFLAGS)
> -
>  dnl ---------------------------------------------------------------------------
>  dnl Bus options and CPU capabilities.  Replaces logic in
>  dnl hw/xfree86/os-support/bus/Makefile.am, among others.
> diff --git a/os/Makefile.am b/os/Makefile.am
> index 3e4f2c5..66a4a0f 100644
> --- a/os/Makefile.am
> +++ b/os/Makefile.am
> @@ -1,19 +1,11 @@
> -noinst_LTLIBRARIES = libos.la liblog.la
> +noinst_LTLIBRARIES = libos.la
>
>  AM_CFLAGS = $(DIX_CFLAGS) $(SHA1_CFLAGS)
>
>  SECURERPC_SRCS = rpcauth.c
>  XDMCP_SRCS = xdmcp.c
>  STRLCAT_SRCS = strlcat.c strlcpy.c
> -
> -# Build a convenience library liblog.la that will be added into
> -# libos.la. The split is done so that log.c can be built with
> -# different compiler options.
> -liblog_la_SOURCES = log.c
> -# Add flags needed for proper backtraces of functions marked with GCC
> -# __attribute__((noreturn)). Currently those flags are needed for
> -# FatalError and AbortServer in log.c.
> -liblog_la_CFLAGS = $(AM_CFLAGS) $(ARM_BACKTRACE_CFLAGS)
> +XORG_SRCS = log.c
>
>  libos_la_SOURCES =     \
>        WaitFor.c       \
> @@ -32,8 +24,9 @@ libos_la_SOURCES =    \
>        xdmauth.c       \
>        xsha1.c         \
>        xstrans.c       \
> -       xprintf.c
> -libos_la_LIBADD = @SHA1_LIBS@ $(DLOPEN_LIBS) liblog.la
> +       xprintf.c       \
> +       $(XORG_SRCS)
> +libos_la_LIBADD = @SHA1_LIBS@ $(DLOPEN_LIBS)
>
>  if SECURE_RPC
>  libos_la_SOURCES += $(SECURERPC_SRCS)
> --
> 1.6.3.3
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list