seen with 5.0 on hppa-linux-gnu: /bin/bash ./testsuite ## ------------------------- ## ## debugedit 5.0 test suite. ## ## ------------------------- ## debugedit 1: debugedit help ok 2: debugedit usage ok 3: debugedit executable ok 4: debugedit .debug_str objects DWARF4 FAILED (debugedit.at:107) 5: debugedit .debug_str/line_str objects DWARF5 FAILED (debugedit.at:140) 6: debugedit .debug_str partial DWARF4 FAILED (debugedit.at:174) 7: debugedit .debug_str/line_str partial DWARF5 FAILED (debugedit.at:206) 8: debugedit .debug_str exe DWARF4 ok 9: debugedit .debug_str/line_str exe DWARF5 ok 10: debugedit .debug_info objects FAILED (debugedit.at:304) 11: debugedit .debug_info partial FAILED (debugedit.at:329) 12: debugedit .debug_info exe ok 13: debugedit .debug_types objects FAILED (debugedit.at:383) 14: debugedit .debug_types partial FAILED (debugedit.at:416) 15: debugedit .debug_types exe ok 16: debugedit .debug_line objects DWARF4 FAILED (debugedit.at:473) 17: debugedit .debug_line objects DWARF5 skipped (debugedit.at:491) 18: debugedit .debug_line partial DWARF4 FAILED (debugedit.at:524) 19: debugedit .debug_line partial DWARF5 skipped (debugedit.at:540) 20: debugedit .debug_line exe DWARF4 ok 21: debugedit .debug_line exe DWARF5 skipped (debugedit.at:587) 22: debugedit .debug_macro objects FAILED (debugedit.at:620) 23: debugedit .debug_macro partial FAILED (debugedit.at:645) 24: debugedit .debug_macro exe ok 25: debugedit --list-file DWARF4 ok 26: debugedit --list-file DWARF5 ok ## ------------- ## ## Test results. ## ## ------------- ## ERROR: 23 tests were run, 12 failed unexpectedly. 3 tests were skipped.
The issue here is that debugedit doesn't know about hppa ELF relocations (as used in debug sections). See tools/debugedit.c (setup_relbuf): rtype = ELF64_R_TYPE (rela.r_info); switch (dso->ehdr.e_machine) { case EM_SPARC: case EM_SPARC32PLUS: case EM_SPARCV9: if (rtype != R_SPARC_32 && rtype != R_SPARC_UA32) goto fail; break; case EM_386: if (rtype != R_386_32) goto fail; break; case EM_PPC: case EM_PPC64: if (rtype != R_PPC_ADDR32 && rtype != R_PPC_UADDR32) goto fail; break; case EM_S390: if (rtype != R_390_32) goto fail; break; case EM_IA_64: if (rtype != R_IA64_SECREL32LSB) goto fail; break; case EM_X86_64: if (rtype != R_X86_64_32) goto fail; break; case EM_ALPHA: if (rtype != R_ALPHA_REFLONG) goto fail; break; #if defined(EM_AARCH64) && defined(R_AARCH64_ABS32) case EM_AARCH64: if (rtype != R_AARCH64_ABS32) goto fail; break; #endif case EM_68K: if (rtype != R_68K_32) goto fail; break; #if defined(EM_RISCV) && defined(R_RISCV_32) case EM_RISCV: if (rtype != R_RISCV_32) goto fail; break; #endif #if defined(EM_MCST_ELBRUS) && defined(R_E2K_32_ABS) case EM_MCST_ELBRUS: if (rtype != R_E2K_32_ABS) goto fail; break; #endif default: fail: error (1, 0, "%s: Unhandled relocation %d at [%d] for %s section", dso->filename, rtype, ndx, sec->name); }
Created attachment 13793 [details] debugedit-hppa.txt The attached change fixes the test fails. Dave On 2021-11-17 1:28 p.m., mark at klomp dot org wrote: > https://sourceware.org/bugzilla/show_bug.cgi?id=28598 > > Mark Wielaard <mark at klomp dot org> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |mark at klomp dot org > > --- Comment #1 from Mark Wielaard <mark at klomp dot org> --- > The issue here is that debugedit doesn't know about hppa ELF relocations (as > used in debug sections). See tools/debugedit.c (setup_relbuf): > > rtype = ELF64_R_TYPE (rela.r_info); > switch (dso->ehdr.e_machine) > { > case EM_SPARC: > case EM_SPARC32PLUS: > case EM_SPARCV9: > if (rtype != R_SPARC_32 && rtype != R_SPARC_UA32) > goto fail; > break; > case EM_386: > if (rtype != R_386_32) > goto fail; > break; > case EM_PPC: > case EM_PPC64: > if (rtype != R_PPC_ADDR32 && rtype != R_PPC_UADDR32) > goto fail; > break; > case EM_S390: > if (rtype != R_390_32) > goto fail; > break; > case EM_IA_64: > if (rtype != R_IA64_SECREL32LSB) > goto fail; > break; > case EM_X86_64: > if (rtype != R_X86_64_32) > goto fail; > break; > case EM_ALPHA: > if (rtype != R_ALPHA_REFLONG) > goto fail; > break; > #if defined(EM_AARCH64) && defined(R_AARCH64_ABS32) > case EM_AARCH64: > if (rtype != R_AARCH64_ABS32) > goto fail; > break; > #endif > case EM_68K: > if (rtype != R_68K_32) > goto fail; > break; > #if defined(EM_RISCV) && defined(R_RISCV_32) > case EM_RISCV: > if (rtype != R_RISCV_32) > goto fail; > break; > #endif > #if defined(EM_MCST_ELBRUS) && defined(R_E2K_32_ABS) > case EM_MCST_ELBRUS: > if (rtype != R_E2K_32_ABS) > goto fail; > break; > #endif > default: > fail: > error (1, 0, "%s: Unhandled relocation %d at [%d] for %s section", > dso->filename, rtype, ndx, sec->name); > } >
(In reply to dave.anglin from comment #2) > Created attachment 13793 [details] > debugedit-hppa.txt > > The attached change fixes the test fails. Thanks, pushed as: commit 86130f41d05584581530fc65aa119badb400f4d4 Author: Mark Wielaard <mark@klomp.org> Date: Thu Nov 18 14:14:28 2021 +0100 debugedit: Handle hppa EM_PARISC and R_PARISC_DIR32 * tools/debugedit.c (setup_relbuf): Handle EM_PARISC https://sourceware.org/bugzilla/show_bug.cgi?id=28598 Patch-provided-by: dave.anglin@bell.net Signed-off-by: Mark Wielaard <mark@klomp.org>