qualcomm/eld
[GNUIncompatibility] eld errors out if a memory region is not assigned to an output section
Open
#339 opened on Aug 18, 2025
gnu-incompatibilitygood first issue
Repository metrics
- Stars
- (254 stars)
- PR merge metrics
- (PR metrics pending)
Description
eld errors out if a memory region is not assigned to an output section, but bfd does not.
Reproducer:
#!/usr/bin/env bash
cat >1.c <<\EOF
int foo() { return 11; }
EOF
cat >script.t <<\EOF
MEMORY {
RAM : ORIGIN = 0x1000, LENGTH = 0x1000
}
SECTIONS {
.foo : { *(.text.foo) } >RAM
.text : { *(.text*) }
}
EOF
LDs=("ld.eld -m elf64lriscv")
SFs=(eld)
clang -o 1.o -target riscv64 1.c -c
for i in "${!SFs[@]}"; do
${LDs[$i]} -o 1.${SFs[$i]}.out 1.o -T script.t # eld errors out with 'No memory region assigned to section .text'
# bfd links without any warning / error.
done