<div dir="auto"><div>It would be great if our build system could default to gold or LLD if available.<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 30, 2019, 1:58 AM Alex Bradbury via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, 30 Apr 2019 at 07:38, Petr Penzin via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> Have anybody recently built LLVM in Debug mode within space requirements from the Getting Started doc?<br>
><br>
> <a href="https://llvm.org/docs/GettingStarted.html#hardware" rel="noreferrer noreferrer" target="_blank">https://llvm.org/docs/GettingStarted.html#hardware</a><br>
><br>
> > An LLVM-only build will need about 1-3 GB of space. A full build of LLVM and Clang will need around 15-20 GB of disk space.<br>
><br>
> From my experience this numbers looks drastically low. On FreeBSD my recent builds consumed more than 70 GB and on Linux - more than 60. I am building LLVM, Clang, and LLD with all default targets and default settings. On FreeBSD I am also building Polly. Also, building `clang-check` target adds around to 20 GB to the build directory size.<br>
><br>
> Apologies for the long snippet, but here is top 20 lines from `du -h | sort -rh` on my FreeBSD directory (full log is attached):<br>
><br>
>  91G    build<br>
>  40G    build/bin<br>
>  25G    build/tools<br>
>  25G    build/lib<br>
>  24G    build/tools/clang<br>
>  15G    build/tools/clang/unittests<br>
> 5.0G    build/tools/clang/lib<br>
> 3.9G    build/lib/Target<br>
> 3.1G    build/tools/clang/unittests/Tooling<br>
> 3.1G    build/tools/clang/test<br>
> 2.8G    build/tools/clang/test/Tooling/Output/clang-check-mac-libcxx-fixed-compilation-db.cpp.tmp/mock-libcxx/bin<br>
> 2.8G    build/tools/clang/test/Tooling/Output/clang-check-mac-libcxx-fixed-compilation-db.cpp.tmp/mock-libcxx<br>
> 2.8G    build/tools/clang/test/Tooling/Output/clang-check-mac-libcxx-fixed-compilation-db.cpp.tmp<br>
> 2.8G    build/tools/clang/test/Tooling/Output<br>
> 2.8G    build/tools/clang/test/Tooling<br>
> 1.9G    build/tools/clang/unittests/Frontend<br>
> 1.6G    build/tools/clang/unittests/Driver<br>
> 1.5G    build/tools/clang/unittests/ASTMatchers<br>
> 1.4G    build/tools/clang/lib/StaticAnalyzer<br>
> 1.3G    build/lib/CodeGen<br>
><br>
> Note that Clang's `unittest` and `test` directory together occupy more than 18 GB (which is about the size manual assigns for the entire build), with most of the space in `test` taken up by output of tooling tests (is that for MacOS, by the way?). Also, looks like five of the unittest directories for clang components are taking more than a gigabyte each (with Tooling using more than 3 GB).<br>
><br>
> Is this expected or am I doing something wrong? If it is expected, should the manual be fixed?<br>
><br>
> There are no RAM requirements in the doc, from my observation linker process  on Linux or FreeBSD needs about 10 GB at the moment (and this has been growing for a while). Should this be also reflected in hardware requirements as well?<br>
<br>
I think it would be worth strongly recommending the use of LLD or gold<br>
to link. I've helped out a number of students/newcomers getting LLVM<br>
to build for the first time and encountering issues due to binutils ld<br>
OOMing is a common issue.<br>
<br>
> And lastly is there a way to reduce the space consumption by Clang unittests and Tooling tests aside of disabling those?<br>
<br>
Setting -DBUILD_SHARED_LIBS=True will reduce space requirements by<br>
using shared libraries rather than static libraries. It will impact<br>
the time taken to run LLVM and Clang tests though, due to greater<br>
startup time.<br>
<br>
Best,<br>
<br>
Alex<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" rel="noreferrer">cfe-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div></div>