<div dir="ltr">This is like EMFILE on linux.  If it's transient, you can nudge the file limit up or nudge concurrency down.  On linux the open file count is specified in ulimit and sysctl, not sure about Windows.  Nudging concurrency down is something most folks have to do during linking anyways, for memory's sake.  If you haven't already, try setting DLLVM_PARALLEL_LINK_JOBS (per <a href="https://llvm.org/docs/GettingStarted.html#common-problems">https://llvm.org/docs/GettingStarted.html#common-problems</a> ).<div><br></div><div>Another potential cause is some kind of stall/system locking, you can try to identify whether there's some critical resource that's causing jobs to pile up.</div><div><br></div><div>If you don't have a lot of confidence in the host toolchain, maybe it's a file descriptor leak.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 12, 2020 at 5:59 PM blackthirt33n . via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">after following the instructions for 

<span style="font-family:"Courier New";font-size:12px">ninja check-all:</span><div><br></div><div>FAILED: bin/libclang.dll lib/liblibclang.dll.a<br>cmd.exe /C "cd . && C:\Strawberry\c\bin\c++.exe  -Wa,-mbig-obj -Werror=date-time<br> -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-fi<br>eld-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-unin<br>itialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno<br>-comment -fno-common -Woverloaded-virtual -fno-strict-aliasing  -O2  C:/temp/llv<br>m-build/llvm-project/build1/tools/clang/tools/libclang/libclang.def -shared -o b<br>in\libclang.dll -Wl,--out-implib,lib\liblibclang.dll.a -Wl,--major-image-version<br>,11,--minor-image-version,0 @CMakeFiles\libclang.rsp  && cd ."<br>C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-m<br>ingw32/bin/ld.exe: cannot find lib/libLLVMCore.a: Too many open files<br>C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-m<br>ingw32/bin/ld.exe: cannot find lib/libLLVMRemarks.a: Too many open files<br>C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-m<br>ingw32/bin/ld.exe: cannot find lib/libLLVMBitstreamReader.a: Too many open files<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 12, 2020 at 1:25 PM Alexandre Ganea <<a href="mailto:alexandre.ganea@ubisoft.com" target="_blank">alexandre.ganea@ubisoft.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-CA">
<div>
<p class="MsoNormal">build_llvm_package.bat is only a template for building releases.<u></u><u></u></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>You can use it as reference, but for a two-stage build the simplest you can do is:<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<ol style="margin-top:0cm" start="1" type="1">
<li style="margin-left:0cm"><span>Ensure cmake, ninja build, python, GnuWin32 are installed and available in %PATH%.<u></u><u></u></span></li><li style="margin-left:0cm"><span>Start “x64 Native Tools Command Prompt for VS 2017” from the Start menu/Visual Studio 2017.<u></u><u></u></span></li><li style="margin-left:0cm"><span>‘cd’ to the root of your git checkout and run:<u></u><u></u></span></li></ol>
<p><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">D:\llvm-project> mkdir build1 && cd build1<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">D:\llvm-project\build1> cmake -GNinja ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_ENABLE_ASSERTIONS=ON
 -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_PROJECTS="llvm;clang;lld"<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">(…)<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">D:\llvm-project\build1> ninja check-all<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>The first stage will therefore use MSVC. If the above commands succeed, you can move on to stage 2:<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">D:\llvm-project\build1> cd .. && mkdir build2 && cd build2</span><span><u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">D:\llvm-project\build2> cmake -GNinja ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_ENABLE_LIBXML2=OFF
 -DCMAKE_C_COMPILER="../build1/bin/clang-cl.exe" -DCMAKE_CXX_COMPILER="../build1/bin/clang-cl.exe" -DCMAKE_LINKER="../build1/bin/lld-link.exe" -DLLVM_ENABLE_LLD=ON -DCMAKE_CXX_FLAGS="-Xclang -O3" -DCMAKE_C_FLAGS="-Xclang -O3" -DLLVM_ENABLE_PROJECTS="llvm;clang;lld"
 -DCLANG_TABLEGEN="../build1/bin/clang-tblgen.exe" -DLLVM_TABLEGEN="../build1/bin/llvm-tblgen.exe"<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New""><u></u> <u></u></span></p>
<p class="MsoNormal" style="margin-left:18pt"><span style="font-size:9pt;font-family:"Courier New"">D:\llvm-project\build2> ninja check-all<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>You should have now the binaries for the second stage in build2\bin.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>This is only an example. You can then take a look at
</span><a href="https://llvm.org/docs/CMake.html" target="_blank">https://llvm.org/docs/CMake.html</a> for extra cmake flags that can be used to tweak your build. You could for example use ThinLTO on the second stage, by adding -DLLVM_ENABLE_LTO=Thin. You can also use `cmake-gui`
 if you don’t want to go through command-lines (ensure it points to the right build stage).<span><u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span>Best,<u></u><u></u></span></p>
<p class="MsoNormal"><span>Alex.<u></u><u></u></span></p>
<p class="MsoNormal"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><b>De :</b> llvm-dev <<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>> <b>De la part de</b> blackthirt33n . via llvm-dev<br>
<b>Envoyé :</b> April 11, 2020 7:46 PM<br>
<b>À :</b> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<b>Objet :</b> [llvm-dev] using the bat script build_llvm_package.bat on windows<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">where should the file build_llvm_package.bat be placed and how should the build_llvm_package.bat be called?<u></u><u></u></p>
<div>
<p class="MsoNormal">or <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">is there a another way to do a two stage build of the llvm project on windows starting with using visual studio 2017 community.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</div>

</blockquote></div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">-Brian</div>