qualcomm/eld

[GNUIncompatibility] eld errors out if a memory region is not assigned to an output section

Open

#339 opened on Aug 18, 2025

 (1 comment) (0 reactions) (0 assignees)C++ (73 forks)auto 404
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

Contributor guide