Hi, On Sat, Nov 28, 2020 at 04:12:25PM +0100, Mark Wielaard wrote: > On Sat, 2020-11-28 at 14:41 +0100, Mark Wielaard wrote: > > That is interesting, it only fails on the two 32bit systems. > > The failure is about the specific error message returned. > > > > FAIL: run-dwflsyms.sh > > ===================== > > --- dwflsyms.out 2020-11-28 01:17:44.130295202 +0000 > > +++ - 2020-11-28 01:17:44.140327188 +0000 > > @@ -10,7 +10,7 @@ > > 9: NOTYPE GLOBAL __kernel_sigtramp_rt64 (12) 0xfffb1af0418 > > 10: NOTYPE GLOBAL __kernel_clock_gettime (152) 0xfffb1af0494 > > 11: NOTYPE GLOBAL __kernel_get_syscall_map (44) 0xfffb1af05f4 > > -ld64.so.1: No symbol table found > > +ld64.so.1: Callback returned failure > > 0: NOTYPE LOCAL (0) 0 > > 1: SECTION LOCAL (0) 0x461b0190 > > 2: SECTION LOCAL (0) 0x461b01a4 > > FAIL run-dwflsyms.sh (exit status: 1) > > > > So there is some subtle difference in the behavior of the > > 'segment_report_module: Inline consider_notes() into only caller' > > patch. > > > > I haven't spotted it yet, but I suspect some 'return' from the original > > function got mistranslated as a continue, break or goto out in the > > inlined variant. > > > > The specific testcase that fails is: > > testrun_compare ${abs_builddir}/dwflsyms -e testfile66 --core=testfile66.core > > > > Which is a big endian ppc64 executable and core file. > > The issue can be replicated on x86_64 with: > > $ CXX="g++ -m32" CC="gcc -m32" ~/src/elfutils/configure --enable-maintainer-mode > $ make -j4 > $ make check TESTS=run-dwflsyms.sh Found it. There was a small change to calculate note_vaddr (so it wouldn't clash with the local vaddr) as: const size_t note_vaddr = start + offset; But size_t is only 32bit on the failing systems, which is obviously not enough for analyzing addresses from a 64bit core file. The fix is simply to use GElf_Addr instead. Pushed the attached to fix it. Cheers, Mark