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

Reply via email to