[llvm-dev] Cross-compiling only compiler-rt libraries

Dominik Montada via llvm-dev llvm-dev at lists.llvm.org
Thu Oct 1 23:49:28 PDT 2020


Hi Mohannad,

That is possible using a two-stage build [0]. Basically in a two-stage 
build, CMake builds clang once and then uses the just-built compiler to 
build the target-specific libraries. You can also set it up such that it 
uses the just-built compiler to build clang again in order to benefit 
from the latest optimizations. In llvm-project/clang/cmake/caches you 
can find a couple of CMake cache files that set this up. You should 
check out Fuchsia.cmake, Fuchsia-stage2.cmake and BaremetalARM.cmake. I 
found these to be the easiest ones to follow when setting up such a build.

If you only want to build clang once and then build compiler-rt, you 
shouldn't need to look at Fuchsia.cmake. AFAIU it is just to build 
clang, which is then used by Fuchsia-stage2.cmake to build clang and the 
libraries.

Hope that helps!

Cheers,

Dominik

[0] LLVM documentation on two-stage builds: 
https://llvm.org/docs/AdvancedBuilds.html

Am 02.10.20 um 01:08 schrieb Mohannad Ismail via llvm-dev:
> Hello Tobias,
>
> Thank you for your reply. That is very helpful and I currently was 
> able to get that done. However, I was looking for a much cleaner 
> solution in which I can compile clang to be x86 and compiler-rt to be 
> aarch64 both at the same time in one compilation. Do you have any idea 
> if that is possible?
>
> Best regards,
> Mohannad Ismail
>
> On Wed, Sep 30, 2020 at 12:16 PM Tobias Hieta <tobias at plexapp.com 
> <mailto:tobias at plexapp.com>> wrote:
>
>     Hey,
>
>     You can do that by running cmake directly against the compiler-rt
>     directory instead of the llvm dir.
>
>     Hope this helps!
>
>     On Wed, Sep 30, 2020, 17:54 Mohannad Ismail via llvm-dev
>     <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
>         Greetings everyone,
>
>         I am currently cross-compiling some of my programs to aarch64
>         with Clang. I added my own sanitizer and library to the
>         compiler-rt and want to use it. However, since my machine is
>         x86, the libraries are compiled for x86 use. I was able to
>         cross-compile to get the aarch64 libraries. However, this also
>         cross-compiles clang and now I can't use it on my x86 machine.
>         Is there a way to cross-compile only compiler-rt and not
>         Clang? I can't seem to find a way to do this.
>
>         In short, I want to have aarch64 compiler-rt libraries and an
>         x86 clang, since I will be compiling my programs on an x86
>         machine. Hope I was able to explain this well enough. Please
>         let me know if I wasn't clear or if you have any questions.
>         Thank you very much!
>
>         Best regards,
>         Mohannad Ismail
>         _______________________________________________
>         LLVM Developers mailing list
>         llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>         https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-- 
----------------------------------------------------------------------
Dominik Montada                   Email: dominik.montada at hightec-rt.com
HighTec EDV-Systeme GmbH          Phone: +49 681 92613 19
Europaallee 19                    Fax:   +49-681-92613-26
D-66113 Saarbrücken               WWW: http://www.hightec-rt.com

Managing Director: Vera Strothmann
Register Court: Saarbrücken, HRB 10445, VAT ID: DE 138344222

This e-mail may contain confidential and/or privileged information. If
you are not the intended recipient please notify the sender immediately
and destroy this e-mail. Any unauthorised copying, disclosure or
distribution of the material in this e-mail is strictly forbidden.
---
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201002/6aed902c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 6822 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201002/6aed902c/attachment.bin>


More information about the llvm-dev mailing list