qualcomm/eld

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

オープン

#339 opened on 2025/08/18

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (73 件のフォーク)auto 404
gnu-incompatibilitygood first issue

Repository metrics

Stars
 (254 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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

コントリビューターガイド