winksaville added a comment. > Are you still having that issue after rL361436 > <https://reviews.llvm.org/rL361436>? That should have resolved that problem. > The issue isn't that gtest is missing from the bootstrap, but rather that it > was missing from the dependencies for the runtime libraries.
Yes, that patch was/is in my master when it failed above <https://reviews.llvm.org/D62279#1514046>: $ git log -1 -p ed0036796164b3a2a93be8e2707984f57ba94e24 commit ed0036796164b3a2a93be8e2707984f57ba94e24 Author: Chris Bieneman <chris.biene...@me.com> Date: Wed May 22 21:42:06 2019 +0000 [Runtimes] If LLVM_INCLUDE_TESTS=On depend on gtest Summary: If we are building the tests for the runtimes we should make them depend on gtest so that gtest is built and ready before we run any of the check-* targets. Reviewers: phosek, compnerd Reviewed By: compnerd Subscribers: mgorny, winksaville, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62269 llvm-svn: 361436 diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt index 7bbf0cf26a5..285e1fcae1d 100644 --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -553,6 +553,8 @@ else() # if this is included from LLVM's CMake obj2yaml sancov sanstats + gtest_main + gtest ) foreach(target ${test_targets} ${SUB_CHECK_TARGETS}) add_dependencies(${target} ${RUNTIMES_TEST_DEPENDS}) My master is at 74eb76f6 <https://reviews.llvm.org/rG74eb76f6c31e13551269f711cfccceca92b45783>: wink@wink-desktop:~/prgs/llvm/llvm-project (Use-LTO-capable-linker-and-add-libcxxabi) $ git log -1 master commit 74eb76f6c31e13551269f711cfccceca92b45783 (upstream/master, origin/master, origin/HEAD, master) Author: Alex Langford <a...@fb.com> Date: Wed May 22 23:01:18 2019 +0000 [Target] Protect Processes' language runtimes map with a mutex Summary: From what I understand, it's possible for multiple threads to request a specific language runtime (e.g. CPPLanguageRuntime). This leads to a data race. Reviewers: jingham, JDevlieghere, compnerd, clayborg Differential Revision: https://reviews.llvm.org/D62169 llvm-svn: 361442 On top of master I have two commits to add lld, libcxxabi, gtest_main and gtest: $ git log -2 -p commit b6b78d5b1d55b7643634ded9412c42dd52782e37 (HEAD -> Use-LTO-capable-linker-and-add-libcxxabi) Author: Wink Saville <w...@saville.com> Date: Thu May 23 08:14:44 2019 -0700 Add gtest_main and gtest See if this fixes check all diff --git a/clang/cmake/caches/DistributionExample.cmake b/clang/cmake/caches/DistributionExample.cmake index 50fcc09cf07..fd525b8f4ce 100644 --- a/clang/cmake/caches/DistributionExample.cmake +++ b/clang/cmake/caches/DistributionExample.cmake @@ -24,6 +24,8 @@ endif() # Expose stage2 targets through the stage1 build configuration. set(CLANG_BOOTSTRAP_TARGETS + gtest_main + gtest check-all check-llvm check-clang commit b99e88f595fd3e27e68c18d95f88552cb25aea43 (origin/Use-LTO-capable-linker-and-add-libcxxabi, origin/Use-LTO-capable-linker) Author: Wink Saville <w...@saville.com> Date: Wed May 22 16:23:47 2019 -0700 Use LTO capable linker and add libcxxabi In DistributionExample.cmake be sure we use a LTO capable linker, the easiest to choose is lld. Reviewers: beanz Subscribers: mgorny, mehdi_amini, inglorion, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62279 diff --git a/clang/cmake/caches/DistributionExample-stage2.cmake b/clang/cmake/caches/DistributionExample-stage2.cmake index f4d5d92d1d1..99d5dc0fd2f 100644 --- a/clang/cmake/caches/DistributionExample-stage2.cmake +++ b/clang/cmake/caches/DistributionExample-stage2.cmake @@ -2,7 +2,7 @@ # bootstrap build. set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") -set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64 CACHE STRING "") diff --git a/clang/cmake/caches/DistributionExample.cmake b/clang/cmake/caches/DistributionExample.cmake index 35493edd17f..50fcc09cf07 100644 --- a/clang/cmake/caches/DistributionExample.cmake +++ b/clang/cmake/caches/DistributionExample.cmake @@ -2,7 +2,7 @@ #Enable LLVM projects and runtimes set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld" CACHE STRING "") -set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "") +set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi" CACHE STRING "") # Only build the native target in stage1 since it is a throwaway build. set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") @@ -17,6 +17,11 @@ set(PACKAGE_VENDOR LLVM.org CACHE STRING "") # the proper LTO library dependencies can be connected. set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +if (NOT APPLE) + # Since LLVM_ENABLE_LTO is ON we need a LTO capable linker + set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") +endif() + # Expose stage2 targets through the stage1 build configuration. set(CLANG_BOOTSTRAP_TARGETS check-all So the commits from your commit to HEAD is: $ git log --oneline ed0036796164b3a2a93be8e2707984f57ba94e24^..HEAD b6b78d5b1d5 (HEAD -> Use-LTO-capable-linker-and-add-libcxxabi) Add gtest_main and gtest b99e88f595f (origin/Use-LTO-capable-linker-and-add-libcxxabi, origin/Use-LTO-capable-linker) Use LTO capable linker and add libcxxabi 74eb76f6c31 (upstream/master, origin/master, origin/HEAD, master) [Target] Protect Processes' language runtimes map with a mutex a98a4fb57f5 [ORC] Remove a stray decl that accidentally found its way in to r361322. bb2b52769b4 Actaully lock accesses to OptionValueFileSpecList objects dd0fe187ab8 Fix r361428 for Windows buildbots/mangling e78cb1f20b2 Fix new enum-codegen.cpp test 00be4e68ad6 [docs] Make a note of the HowToUseLLJIT example in the ORCv2 design doc. ed003679616 [Runtimes] If LLVM_INCLUDE_TESTS=On depend on gtest Even with both gtest patches it still isn't working, `ninja check-all` is failing as before :( [1100/1554] cd /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi-add-gtest/tools/clang/stage2-bins/runtimes/runtimes-bins && /usr/bin/cmake --build /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi-add-gtest/tools/clang/stage2-bins/runtimes/runtimes-bins/ --target check-runtimes --config RelWithDebInfo ninja: error: '/home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi-add-gtest/tools/clang/stage2-bins/lib/libgtest.a', needed by 'compiler-rt/lib/asan/tests/ASAN_INST_TEST_OBJECTS.gtest-all.cc.x86_64-calls.o', missing and no known rule to make it FAILED: runtimes/CMakeFiles/check-runtimes cd /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi-add-gtest/tools/clang/stage2-bins/runtimes/runtimes-bins && /usr/bin/cmake --build /home/wink/prgs/llvm/llvm-project/build-dist-use-lto-capable-linker-and-add-libcxxabi-add-gtest/tools/clang/stage2-bins/runtimes/runtimes-bins/ --target check-runtimes --config RelWithDebInfo Is there a way to "force" gtest/gtest_main to get included just so I can see if there is any other `check-all` failures? Other suggestions? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62279/new/ https://reviews.llvm.org/D62279 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits