Message ID | CAFULd4aO6AkVc4AKedrqrxL_zKqEFLF3y6dvFt0aPTYdEXcCoQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
On Tue, Oct 2, 2012 at 2:01 AM, Uros Bizjak <ubizjak@gmail.com> wrote: > > 2012-10-02 Uros Bizjak <ubizjak@gmail.com> > > PR other/54761 > * configure.ac (EXTRA_FLAGS): New. > * Makefile.am (AM_FLAGS): Add $(EXTRA_FLAGS). > * configure, Makefile.in: Regenerate. This is OK. Thanks. Ian
On Tue, Oct 2, 2012 at 3:08 PM, Ian Lance Taylor <iant@google.com> wrote: >> 2012-10-02 Uros Bizjak <ubizjak@gmail.com> >> >> PR other/54761 >> * configure.ac (EXTRA_FLAGS): New. >> * Makefile.am (AM_FLAGS): Add $(EXTRA_FLAGS). >> * configure, Makefile.in: Regenerate. > > This is OK. Thanks, committed. On a related issue, it looks to me that the compiler itself should be compiled with -funwind-tables, otherwise there are no backtraces generated, even if libbacktrace is linked in and operational. Again, x86_64-linux-gnu host defaults to this flag, but other hosts are left behind. Uros.
On Tue, Oct 2, 2012 at 8:22 AM, Uros Bizjak <ubizjak@gmail.com> wrote: > > On a related issue, it looks to me that the compiler itself should be > compiled with -funwind-tables, otherwise there are no backtraces > generated, even if libbacktrace is linked in and operational. Again, > x86_64-linux-gnu host defaults to this flag, but other hosts are left > behind. Compiling with C++ should always give us -funwind-tables. If it doesn't for some reason, then I agree. We might even want -fasynchronous-unwind-tables for the compiler. Ian
On Tue, Oct 02, 2012 at 10:12:38AM -0700, Ian Lance Taylor wrote: > On Tue, Oct 2, 2012 at 8:22 AM, Uros Bizjak <ubizjak@gmail.com> wrote: > > > > On a related issue, it looks to me that the compiler itself should be > > compiled with -funwind-tables, otherwise there are no backtraces > > generated, even if libbacktrace is linked in and operational. Again, > > x86_64-linux-gnu host defaults to this flag, but other hosts are left > > behind. > > Compiling with C++ should always give us -funwind-tables. It doesn't give that, because the compiler is compiled with -fno-exceptions -fno-rtti. Jakub
On Tue, Oct 2, 2012 at 12:14 PM, Jakub Jelinek <jakub@redhat.com> wrote: > On Tue, Oct 02, 2012 at 10:12:38AM -0700, Ian Lance Taylor wrote: >> On Tue, Oct 2, 2012 at 8:22 AM, Uros Bizjak <ubizjak@gmail.com> wrote: >> > >> > On a related issue, it looks to me that the compiler itself should be >> > compiled with -funwind-tables, otherwise there are no backtraces >> > generated, even if libbacktrace is linked in and operational. Again, >> > x86_64-linux-gnu host defaults to this flag, but other hosts are left >> > behind. >> >> Compiling with C++ should always give us -funwind-tables. > > It doesn't give that, because the compiler is compiled with > -fno-exceptions -fno-rtti. I believe in the long term we would to drop either of those. -- Gaby
Index: configure =================================================================== --- configure (revision 191955) +++ configure (working copy) @@ -612,6 +612,7 @@ BACKTRACE_SUPPORTS_THREADS PIC_FLAG WARN_FLAGS +EXTRA_FLAGS BACKTRACE_FILE multi_basedir OTOOL64 @@ -11080,7 +11081,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11083 "configure" +#line 11084 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11186,7 +11187,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11189 "configure" +#line 11190 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11488,6 +11489,12 @@ fi +EXTRA_FLAGS= +if test "x$GCC" = "xyes"; then + EXTRA_FLAGS=-funwind-tables +fi + + WARN_FLAGS= save_CFLAGS="$CFLAGS" for real_option in -W -Wall -Wwrite-strings -Wstrict-prototypes \ Index: Makefile.in =================================================================== --- Makefile.in (revision 191955) +++ Makefile.in (working copy) @@ -152,6 +152,7 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ +EXTRA_FLAGS = @EXTRA_FLAGS@ FGREP = @FGREP@ FORMAT_FILE = @FORMAT_FILE@ GREP = @GREP@ @@ -253,7 +254,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \ -I ../libgcc -I ../gcc/include -I $(MULTIBUILDTOP)../../gcc/include -AM_CFLAGS = $(WARN_FLAGS) $(PIC_FLAG) +AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) noinst_LTLIBRARIES = libbacktrace.la libbacktrace_la_SOURCES = \ backtrace.h \ Index: configure.ac =================================================================== --- configure.ac (revision 191955) +++ configure.ac (working copy) @@ -96,6 +96,12 @@ fi AC_SUBST(BACKTRACE_FILE) +EXTRA_FLAGS= +if test "x$GCC" = "xyes"; then + EXTRA_FLAGS=-funwind-tables +fi +AC_SUBST(EXTRA_FLAGS) + ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \ -Wmissing-prototypes -Wold-style-definition \ -Wmissing-format-attribute -Wcast-qual], Index: Makefile.am =================================================================== --- Makefile.am (revision 191955) +++ Makefile.am (working copy) @@ -34,7 +34,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \ -I ../libgcc -I ../gcc/include -I $(MULTIBUILDTOP)../../gcc/include -AM_CFLAGS = $(WARN_FLAGS) $(PIC_FLAG) +AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) noinst_LTLIBRARIES = libbacktrace.la