On 13-11-18 14:42, Tom de Vries wrote: > diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am > index 3c1bd49dd7b..2fec9bbb4b6 100644 > --- a/libbacktrace/Makefile.am > +++ b/libbacktrace/Makefile.am > @@ -96,6 +96,28 @@ btest_LDADD = libbacktrace.la > > check_PROGRAMS += btest > > +if HAVE_DWZ > + > +btest_dwz_SOURCES = btest_dwz.c testlib.c > +btest_dwz_CFLAGS = $(AM_CFLAGS) -g -O0
Hmm, I already discovered that specifying the -O0 doesn't work, since it's overridden by $(CFLAGS). With a hack like this: ... diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am index 2fec9bbb4b6..8bdf13b3546 100644 --- a/libbacktrace/Makefile.am +++ b/libbacktrace/Makefile.am @@ -99,11 +99,14 @@ check_PROGRAMS += btest if HAVE_DWZ btest_dwz_SOURCES = btest_dwz.c testlib.c -btest_dwz_CFLAGS = $(AM_CFLAGS) -g -O0 +btest_dwz_CFLAGS = $(AM_CFLAGS) -g btest_dwz_LDADD = libbacktrace.la check_PROGRAMS += btest_dwz +btest_dwz-btest_dwz.o: btest_dwz.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_dwz_CFLAGS) $(CFLAGS) -O0 -c -o btest_dwz-btest_dwz.o `test -f 'btest_dwz.c' || echo '$(srcdir)/'`btest_dwz.c + TESTS += btest_dwz_2 btest_dwz_3 btest_dwz_2 btest_dwz_3: btest_dwz_23 ... I manage to get the -O0 to be effective. Then copying btest.c to btest_dwz.c and replacing "btest.c" with "btest_dwz.c" gets me passes for all but the inline tests: ... $ ./btest_dwz_2 PASS: backtrace_full noinline test2: [0]: got main expected f13 FAIL: backtrace_full inline PASS: backtrace_simple noinline test4: [0]: got main expected f33 FAIL: backtrace_simple inline PASS: backtrace_syminfo variable ... which is expected because in the inline case some DW_AT_abstract_origins are using DW_FORM_GNU_ref_alt, which is not supported yet. Thanks, - Tom