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

Fāng-ruì Sòng via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 27 09:21:28 PDT 2021


On Tue, Jul 27, 2021 at 3:51 AM Thomas Goodfellow via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> 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
>

Your --target= is not correct.

Normally, if you use --target=aarch64-linux-gnu, the clang driver will pick
up crt1.o crti.o crtn.o libc libm from libc, crtbegin.o/crtend.o from
aarch64-linux-gnu-gcc.
The libc and gcc paths are detected by locating aarch64-linux-gnu-gcc.
riscv may be more strange on some systems due to the complex
multiarch/multilib scheme.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210727/27add423/attachment.html>


More information about the llvm-dev mailing list