clang(1) defaults to FP ABI but ld(1) -melf64lriscv doesn't. This is a problem as soon as a port tries to use raw ld(1) -b binary to embed data in a .o file.
Downgrading this hard error to a warning seems more useful as far as the ports tree is concerned. The diff below fixes databases/postgresql-pllua and should also fix textproc/mupdf and net/utox. There's another diff here: https://reviews.llvm.org/D106378 but it's slightly more complicated and it received seemingly negative feedback. So I'm just using a minimal change to fit our needs. ok? Index: ELF/Arch/RISCV.cpp =================================================================== RCS file: /cvs/src/gnu/llvm/lld/ELF/Arch/RISCV.cpp,v retrieving revision 1.1.1.2 diff -u -p -r1.1.1.2 RISCV.cpp --- ELF/Arch/RISCV.cpp 28 Apr 2021 12:29:31 -0000 1.1.1.2 +++ ELF/Arch/RISCV.cpp 24 Oct 2021 15:55:49 -0000 @@ -122,8 +122,8 @@ uint32_t RISCV::calcEFlags() const { target |= EF_RISCV_RVC; if ((eflags & EF_RISCV_FLOAT_ABI) != (target & EF_RISCV_FLOAT_ABI)) - error(toString(f) + - ": cannot link object files with different floating-point ABI"); + warn(toString(f) + + ": linking object files with different floating-point ABI"); if ((eflags & EF_RISCV_RVE) != (target & EF_RISCV_RVE)) error(toString(f) + -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
