[llvm-dev] Building compiler-rt for RISC-V?

Thomas Goodfellow via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 27 03:51:30 PDT 2021


My overall goal is locally building [1] an LLVM toolchain which compiles a
mixture of C and supporting assembler for bare RISC-V development
environments (no OS). Library support is required for some language
features on some RISC-V targets, e.g. integer division when the "M"
extension isn't present.

>From the details on https://compiler-rt.llvm.org/ I expected that something
like this on release/12.x would build the support library for RISC-V:

cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_PROJECTS='clang;lld;compiler-rt'
-DCMAKE_INSTALL_PREFIX=~/bin/s4e -DLLVM_TARGETS_TO_BUILD='RISCV'
ninja
ninja install

however although that yields the RISCV compiler target libraries
(libLLVMRISCV*.a) it doesn't install any obvious RISCV runtime libraries
(only x86 ones) and linking a test program with integer division fails:

clang  testdiv.c --target=riscv32 -march=rv32i
ld.lld: error: unable to find library -lc
ld.lld: error: unable to find library -lm
ld.lld: error: unable to find library -lclang_rt.builtins-riscv32

(using LLVM release/12.x on x86_64 release/12.x; also tried building all
targets and also copying the cmake line from a build triggered by
Phabricator for a RISC-V-related change to compiler-rt with the hope that
some of the additional defines would prove the solution)

Thanks in advance for whatever advice you can provide for building the
support libraries for RISC-V.

Tom Goodfellow


[1] in the very short-term obtaining working ones from another build would
suffice, however I'll be needing to modify them soon anyway.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210727/05c25b49/attachment.html>


More information about the llvm-dev mailing list