forked from Imagelibrary/binutils-gdb
When building a cross-compiler ld for RISC-V Linux systems, you can specify target=riscv64*-linux* to create a linker that supports both 32-bit (-march=rv32*) and 64-bit (-march=rv64*) architectures. The specified -march value populates the EMULATION_NAME variable, which determines the default linker script selection. For proper riscv64 target support, the build process must prepare both elf32lriscv* and elf64lriscv* linker scripts. These should align with the standard RISC-V Linux sysroot directory structure. Signed-off-by: Mark Goncharov <mark.goncharov@syntacore.com>
16 lines
415 B
Bash
16 lines
415 B
Bash
# RV32 code using ILP32D ABI.
|
|
# ABI not in emulation name to avoid breaking backward compatibility.
|
|
source_sh ${srcdir}/emulparams/elf32lriscv-defs.sh
|
|
OUTPUT_FORMAT="elf32-littleriscv"
|
|
|
|
# On Linux, first look for 32 bit ILP32D target libraries in /lib/ilp32d as per
|
|
# the glibc ABI.
|
|
case "$target" in
|
|
riscv*-linux*)
|
|
case "$EMULATION_NAME" in
|
|
*32*)
|
|
LIBPATH_SUFFIX="32/ilp32d 32" ;;
|
|
esac
|
|
;;
|
|
esac
|