On Tue, 14 Jan 2014 10:00:59 +0100, Mark Wielaard wrote:
The __GLOBAL__.[ID]_xxx functions are wrappers generated when a
module
xxx contains constructors and destructors of static objects, which will
call the actual static initialization and destruction functions for all
globals in the module. Since they are "normal" functions they could
potentially end up in a backtrace, but I am not sure "demangling" them
provides any real benefit.
In such case I will add it, it should be there.
Till now we didn't require a C++ compiler explicitly. I am not
against
it, we will one day anyway. But it might be simpler to just add the
generated exe and core as done with other tests. And just test with
--executable --core. It makes sure we don't rely on any particular
compiler version for the test data.
OK.
The other user of __cxa_demangle nm.c (show_symbols_sysv) probably
needs
the same check.
OK, will do.
A slightly simpler way to handle this is to not unconditionally add
backtrace-demangle to check_PROGRAMS and run-backtrace-demangle.sh to
TESTS, but only if we have the demangler (which probably also indicates
we actually have a C++ compiler, so we don't even try to compile it
otherwise):
if DEMANGLE
check_programs += backtrace-demangle
TESTS += run-backtrace-demangle.sh
endif
This is the easy way but the problem with this approach is that the test is
then completely missing from the results, instead of being SKIPped. This
makes comparisons of multiple testsuite results weird, at last this happens
with the GDB testsuite.
Thanks,
Jan