This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix corruption of non-C++ symbols by the demangler


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]