mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:09:25 +02:00
Set defdynlinker depending on selected ABI for riscv32 and riscv64
This commit is contained in:
parent
0efa4cbc67
commit
7c64bce04e
@ -267,11 +267,20 @@ const defdynlinker='/lib/ld-linux-aarch64.so.1';
|
|||||||
{$endif sparc64}
|
{$endif sparc64}
|
||||||
|
|
||||||
{$ifdef riscv32}
|
{$ifdef riscv32}
|
||||||
const defdynlinker='/lib32/ld.so.1';
|
const defdynlinker_generic='/lib32/ld.so.1';
|
||||||
|
const defdynlinker_soft_float='/lib/ld-linux-riscv32-ilp32.so.1';
|
||||||
|
const defdynlinker_single_float='/lib/ld-linux-riscv32-ilp32f.so.1';
|
||||||
|
const defdynlinker_double_float='/lib/ld-linux-riscv32-ilp32d.so.1';
|
||||||
|
{ const defdynlinker_quad_float='/lib/ld-linux-riscv32-ilp32q.so.1'; not yet in ABI list }
|
||||||
|
var defdynlinker : string;
|
||||||
{$endif riscv32}
|
{$endif riscv32}
|
||||||
|
|
||||||
{$ifdef riscv64}
|
{$ifdef riscv64}
|
||||||
const defdynlinker='/lib/ld-linux-riscv64-lp64d.so.1';
|
const defdynlinker_soft_float='/lib/ld-linux-riscv64-lp64.so.1';
|
||||||
|
const defdynlinker_single_float='/lib/ld-linux-riscv64-lp64f.so.1';
|
||||||
|
const defdynlinker_double_float='/lib/ld-linux-riscv64-lp64d.so.1';
|
||||||
|
{ const defdynlinker_quad_float='/lib/ld-linux-riscv64-lp64q.so.1'; not yet in ABI list }
|
||||||
|
var defdynlinker : string;
|
||||||
{$endif riscv64}
|
{$endif riscv64}
|
||||||
|
|
||||||
{$ifdef xtensa}
|
{$ifdef xtensa}
|
||||||
@ -291,6 +300,38 @@ begin
|
|||||||
else
|
else
|
||||||
defdynlinker:=defdynlinkerv2;
|
defdynlinker:=defdynlinkerv2;
|
||||||
{$endif powerpc64}
|
{$endif powerpc64}
|
||||||
|
{$ifdef riscv32}
|
||||||
|
if defdynlinker='' then
|
||||||
|
begin
|
||||||
|
case target_info.abi of
|
||||||
|
abi_riscv_ilp32:
|
||||||
|
defdynlinker:=defdynlinker_soft_float;
|
||||||
|
abi_riscv_ilp32f:
|
||||||
|
defdynlinker:=defdynlinker_single_float;
|
||||||
|
abi_riscv_hf,
|
||||||
|
abi_riscv_ilp32d:
|
||||||
|
defdynlinker:=defdynlinker_double_float;
|
||||||
|
else
|
||||||
|
defdynlinker:=defdynlinker_generic;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$endif riscv32}
|
||||||
|
{$ifdef riscv64}
|
||||||
|
if defdynlinker='' then
|
||||||
|
begin
|
||||||
|
case target_info.abi of
|
||||||
|
abi_riscv_lp64:
|
||||||
|
defdynlinker:=defdynlinker_soft_float;
|
||||||
|
abi_riscv_lp64f:
|
||||||
|
defdynlinker:=defdynlinker_single_float;
|
||||||
|
abi_riscv_hf,
|
||||||
|
abi_riscv_lp64d:
|
||||||
|
defdynlinker:=defdynlinker_double_float;
|
||||||
|
else
|
||||||
|
defdynlinker:=defdynlinker_double_float;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$endif riscv64}
|
||||||
{
|
{
|
||||||
Search order:
|
Search order:
|
||||||
glibc 2.1+
|
glibc 2.1+
|
||||||
|
Loading…
Reference in New Issue
Block a user