https://sourceware.org/bugzilla/show_bug.cgi?id=32772

            Bug ID: 32772
           Summary: bfd crash in riscv_elf_relocate_section when linking
                    GCC on riscv
           Product: binutils
           Version: 2.45 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: sam at gentoo dot org
  Target Milestone: ---

This shows up when linking gcc.

```
$ /usr/riscv64-unknown-linux-gnu/bin/ld -plugin
/usr/libexec/gcc/riscv64-unknown-linux-gnu/15/liblto_plugin.so
-plugin-opt=/usr/libexec/gcc/riscv64-unknown-linux-gnu/15/lto-wrapper
-plugin-opt=-fresolution=/tmp/cclPFxt5.res -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-latomic
-plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lgcc_eh --eh-frame-hdr -melf64lriscv -X
-dynamic-linker /lib/ld-linux-riscv64-lp64d.so.1 -pie -z now -o Tlto-wrapper
/lib64/lp64d/Scrt1.o /usr/lib/gcc/riscv64-unknown-linux-gnu/15/crti.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/15/crtbeginS.o
-L/usr/lib/gcc/riscv64-unknown-linux-gnu/15
-L/usr/lib/gcc/riscv64-unknown-linux-gnu/15/../../../../riscv64-unknown-linux-gnu/lib
-L/lib64/lp64d -L/usr/lib64/lp64d -L/lib -L/usr/lib -z now -z now -O1
--as-needed lto-wrapper.o collect-utils.o ggc-none.o lockfile.o
lto-ltrans-cache.o libcommon-target.a libcommon.a ../libcpp/libcpp.a
../libbacktrace/.libs/libbacktrace.a ../libiberty/pic/libiberty.a
../libdecnumber/libdecnumber.a -v -Bstatic -lstdc++ -Bdynamic -lm -lgcc
-lgcc_eh --push-state --as-needed -latomic --pop-state -lc -lgcc -lgcc_eh
/usr/lib/gcc/riscv64-unknown-linux-gnu/15/crtendS.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/15/crtn.o
GNU ld (Gentoo 9999 p1) 2.44.50.20250308
Segmentation fault (core dumped)
```

```
$ gdb --args ...
[...]
Program received signal SIGSEGV, Segmentation fault.
riscv_elf_relocate_section (output_bfd=output_bfd@entry=0x55555584c820,
info=0x5555558440a0 <link_info>, input_bfd=input_bfd@entry=0x5555568170f0,
    input_section=input_section@entry=0x55555684a550, contents=0x5555578db5d0
"9q\"\370&\364\006\374\375W\227\024\035", relocs=relocs@entry=0x55555684f3b0,
    local_syms=local_syms@entry=0x55555854cca0, local_sections=0x555559803180)
at /usr/src/debug/sys-devel/binutils-9999/binutils/bfd/elfnn-riscv.c:2786
2786              if (h->root.type == bfd_link_hash_undefweak && !via_plt)
(gdb) bt
#0  riscv_elf_relocate_section (output_bfd=output_bfd@entry=0x55555584c820,
info=0x5555558440a0 <link_info>, input_bfd=input_bfd@entry=0x5555568170f0,
    input_section=input_section@entry=0x55555684a550, contents=0x5555578db5d0
"9q\"\370&\364\006\374\375W\227\024\035", relocs=relocs@entry=0x55555684f3b0,
    local_syms=local_syms@entry=0x55555854cca0, local_sections=0x555559803180)
at /usr/src/debug/sys-devel/binutils-9999/binutils/bfd/elfnn-riscv.c:2786
#1  0x00007ffff7f2f1b8 in elf_link_input_bfd
(flinfo=flinfo@entry=0x7fffffffe730, input_bfd=input_bfd@entry=0x5555568170f0)
    at /usr/src/debug/sys-devel/binutils-9999/binutils/bfd/elflink.c:11900
#2  0x00007ffff7f30c82 in bfd_elf_final_link (abfd=0x55555584c820,
info=<optimized out>) at
/usr/src/debug/sys-devel/binutils-9999/binutils/bfd/elflink.c:13159
#3  0x000055555558e52e in ldwrite () at
/usr/src/debug/sys-devel/binutils-9999/binutils/ld/ldwrite.c:548
#4  0x0000555555585216 in main (argc=<optimized out>, argv=<optimized out>) at
/usr/src/debug/sys-devel/binutils-9999/binutils/ld/ldmain.c:561
```

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to