Dwarf unwind test failures on various arches

Mark Wielaard mjw at redhat.com
Tue Apr 22 11:45:43 UTC 2014

On Mon, 2014-04-21 at 23:40 +0200, Kurt Roeckx wrote:
> I'm seeing various test suite failures in the 0.158 on various
> arches.  I'm currently looing at powerpc since that's the only
> Debian release architecture that's having the problem, but I see
> it on various non-release arches too.

Thanks for the report. It would be nice if you could always output the
test-suite.log file if the tests fail so they are available in the
build.log. I did that in the fedora package:
 make -s %{?_smp_mflags} check || (cat tests/test-suite.log; %{nocheck})
where %{nocheck} is either true or false depending on whether we want
make check failures be fatal or not (normally we do on release
branches). That way it might be quicker to spot what is going wrong just
by looking at the build log in case you don't have immediate access to
that platform/arch.

The tests should in theory all PASS or just SKIP if it is detected that
some functionality isn't available on a particular arch/setup. Clearly
that isn't completely working in your case :{

The unwind/backtrace tests should all PASS on i686, x86_64, ppc, ppc64,

One question, is this traditional big endian ppc or the new ELFv2 ABI
ppc64-le architecture? elfutils currently doesn't have a backend for the
new ELFv2 ABI. It will detect that the ELF files are little endian, but
it won't know about the other ELFv2 changes (no function descriptors,
different calling conventions, etc.)

> FAIL: run-backtrace-native.sh
> =============================
> 0x100000        0x103000        [vdso: 14111]
> 0x20474000      0x20601000      /lib/powerpc-linux-gnu/libc-2.18.so
> 0x20614000      0x2063d000      /lib/powerpc-linux-gnu/libpthread-2.18.so
> 0x2064f000      0x20662000      /home/kroeckx/elfutils-0.158/tests/backtrace-child
> 0x40000000      0x40033000      /lib/powerpc-linux-gnu/ld-2.18.so
> TID 14111:
> # 0 0x20626810          raise
> TID 14112:
> # 0 0x20626810          raise
> /home/kroeckx/elfutils-0.158/tests/backtrace: dwfl_thread_getframes: No DWARF information found
> /home/kroeckx/elfutils-0.158/tests/backtrace: dwfl_thread_getframes: No DWARF information found
> backtrace: backtrace.c:68: callback_verify: Assertion `seen_main' failed.
> ./test-subr.sh: line 84: 14110 Aborted                 (core dumped) LD_LIBRARY_PATH="${built_library_path}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" $VALGRIND_CMD "$@"
> backtrace-child: no main

That is strange. It is as if libpthread-2.18.so doesn't have .eh_frame
available. Could you check?

> FAIL: run-backtrace-dwarf.sh
> ============================
> 0xfdf8e08       raise
> /home/kroeckx/elfutils-0.158/tests/backtrace-dwarf: dwfl_thread_getframes: No DWARF information found
> dwarf: no main
> rmdir: failed to remove 'test-14137': Directory not empty

This is probably similar.

Note that Mathias Klose did find a test issues right after 0.158 was
released that improved the tests in some cases detecting support wasn't
really available. See commit e922ec. But that was for core files, which
do seem to work for you. Which is somewhat puzzling. Since I would
expect both run-backtrace-native-core.sh and run-backtrace-native.sh to
fail (or succeed) in the same way.



More information about the elfutils-devel mailing list