[PATCH] D71101: [lld][RISCV] Use an e_flags of 0 if there are only binary input files.

John Baldwin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 5 17:02:07 PST 2019


bsdjhb marked an inline comment as done.
bsdjhb added a comment.

This is needed to link kernel modules for firmware blobs used in a FreeBSD/riscv64 kernel.



================
Comment at: lld/ELF/Arch/RISCV.cpp:119
 
     if ((eflags & EF_RISCV_FLOAT_ABI) != (target & EF_RISCV_FLOAT_ABI))
       error(toString(f) +
----------------
The BFD linker is a bit more forgiving in these flag checks to seemingly cater to mixing objects linked with '-b binary' with other objects.  Specifically, it only checks for flag mismatches when an object file contains text sections (since the float ABI and RVE only matter for instructions).  In FreeBSD's case the kernel is soft-float and doesn't use RVE, so a flags value of 0 for the '-b binary' case is already compatible.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71101/new/

https://reviews.llvm.org/D71101





More information about the llvm-commits mailing list