On 25-02-19 11:48, Thomas Schwinge wrote: > Hi Tom! > > On Fri, 8 Feb 2019 10:42:24 +0100, Tom de Vries <tdevr...@suse.de> wrote: >> Add libbacktrace test-case using -flto. > > I'm seeing this one fail is some configurations, but only in the > 'build-gcc/libbacktrace/btest_lto.log' variant: >
Hi Thomas, Meaning, compiling libbacktrace using the host compiler, so it would be useful to known which compiler that is. [ I've tried a gcc-4.8 and gcc-6 and gcc-7 as host compiler, and a couple of CFLAGS settings (-O2, -O3) to reproduce this, but didn't manage. ] > test5: unexpected syminfo name got global.2537 expected global > PASS: backtrace_full noinline > PASS: backtrace_full inline > PASS: backtrace_simple noinline > PASS: backtrace_simple inline > FAIL: backtrace_syminfo variable > FAIL btest_lto (exit status: 1) > > I haven't looked yet which details about these GCC build configurations > might be different/important; maybe you've got an idea already? > Well, the backtrace_syminfo function looks at the minimal symbol info (so, not the dwarf info) and it seems lto has done an optimization that has changed the name of the variable in the minimal symbol info. There's probably a standard way to annotate the 'global' variable to prevent the optimization from happening, which would fix the failure (but, we need to know which optimization renamed it). OTOH, we could just limit this test to target libbacktrace only, given the fact that host compilers may not even support flto. Thanks, - Tom