[PATCH v2] bfd/dwarf2: break equal-range function ties by DIE offset, not pointer

Alan Modra amodra@gmail.com
Thu Sep 10 11:13:08 GMT 2026


On Wed, Sep 09, 2026 at 10:55:53PM -0400, Sam Price wrote:
> +	.section .debug_ptrsize
> +	/* alpha's md_cons_align aligns every multi-byte datum to its own
> +	   size.  In a hand-written debug section that padding lands in the
> +	   middle of the DWARF and corrupts it: the DIE tree loses the
> +	   inlined subroutine and the line program will not decode.
> +	   ".align 0" turns that off, and is a no-op everywhere else.  ia64
> +	   aligns the same way but does not honour ".align 0"; it has its
> +	   own copy of this test, dw2-inline-tie-ia64.s.  */

The above comment and two more copies of it should be removed as it is
no longer relevant.

You'll also need the following on top of your patch, otherwise
ft32-elf won't assemble ".byte .Lfunc_end - .Lfunc_begin".

diff --git a/binutils/testsuite/binutils-all/addr2line.exp b/binutils/testsuite/binutils-all/addr2line.exp
index 897f3529db5..9e5c4df51c3 100644
--- a/binutils/testsuite/binutils-all/addr2line.exp
+++ b/binutils/testsuite/binutils-all/addr2line.exp
@@ -23,7 +23,11 @@ set exe [exeext]
 # An inlined subroutine covering exactly the range of the subprogram that
 # contains it must be the one named, and the same one on every run.
 if { [is_elf_format] } {
-    run_dump_test "dw2-inline-tie"
+    set norelax ""
+    if [istarget ft32-*] {
+	set norelax [list [list as -norelax]]
+    }
+    run_dump_test "dw2-inline-tie" $norelax
 }
 
 # powerpc64 function symbols are on descriptors rather than code.

-- 
Alan Modra


More information about the Binutils mailing list