<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">This sounds like what happens when you run git svn but don't actually have any svn remotes. Do you have a git folder without svn remotes? Do you still have a .git/svn?</div><div class=""><br class=""></div><div class="">Jordan</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 20, 2014, at 16:41, Zachary Turner <<a href="mailto:zturner@google.com" class="">zturner@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">When I bulid on Ubuntu right now, ninja deadlocks while building clang.<div class=""><br class=""></div><div class="">I'm on Ubuntu 14.04 and I'm generating CMake as follows:</div><div class=""><br class=""></div><div class="">cmake -G Ninja -DCMAKE_CXX_COMPILER=clang -DCMAKE_C_COMPILER=clang -DCMAKE_SHARED_LINKER_FLAGS="-lstdc++ -lm" -DCMAKE_EXE_LINKER_FLAGS="-lstdc++ -lm" -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/../../install -DCMAKE_BUILD_TYPE=Debug -Wno-dev ../..<br class=""></div><div class=""><br class=""></div><div class="">When I run ninja with -v, it gets to Linking libClangStaticAnalyzerFrontend.a, and then it just hangs.</div><div class=""><br class=""></div><div class="">If I Ctrl+C and then re-run ninja with -v, I see the following:</div><div class=""><br class=""></div><div class="">[1/51] cd ~/ssd/src/llvm/build/ninja/tools/clang/lib/Basic && /usr/bin/cmake -DFIRST_SOURCE_DIR=~/ssd/src/llvm -DFIRST_NAME=LLVM -DSECOND_SOURCE_DIR=~/ssd/src/llvm/tools/clang -DSECOND_NAME=SVN -DHEADER_FILE=~/src/llvm/build/ninja/tools/clang/lib/Basic/SVNVersion.inc -P ~/ssd/src/llvm/cmake/modules/GetSVN.cmake<br class=""></div><div class=""><br class=""></div><div class="">ps aux | grep cmake shows the following:</div><div class=""><br class=""></div><div class=""><div class="">zturner  28671  0.0  0.0  24448  1212 pts/2    S    16:38   0:00 /bin/sh -c cd ~/src/llvm/build/ninja/tools/clang/lib/Basic && /usr/bin/cmake -DFIRST_SOURCE_DIR=~/ssd/src/llvm -DFIRST_NAME=LLVM -DSECOND_SOURCE_DIR=~/ssd/src/llvm/tools/clang -DSECOND_NAME=SVN -DHEADER_FILE=~/ssd/src/llvm/build/ninja/tools/clang/lib/Basic/SVNVersion.inc -P ~/ssd/src/llvm/cmake/modules/GetSVN.cmake</div><div class=""><br class=""></div><div class="">zturner  28673  0.5  0.0 115752  5828 pts/2    S    16:38   0:00 /usr/bin/cmake -DFIRST_SOURCE_DIR=~/ssd/src/llvm -DFIRST_NAME=LLVM -DSECOND_SOURCE_DIR=~/ssd/src/llvm/tools/clang -DSECOND_NAME=SVN -DHEADER_FILE=~/ssd/src/llvm/build/ninja/tools/clang/lib/Basic/SVNVersion.inc -P ~/ssd/src/llvm/cmake/modules/GetSVN.cmake</div></div><div class=""><br class=""></div><div class="">Let me know if you need more information or if you have any suggestions.</div><div class=""><br class=""></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Nov 19, 2014 at 5:28 PM, Jordan Rose <span dir="ltr" class=""><<a href="mailto:jordan_rose@apple.com" target="_blank" class="">jordan_rose@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">Yup, just found that described online. .svn/entries seems to be the 1.6 version, .svn/wc.db the 1.7 one. As long as wc.db shows up first in the search, we should be good.</div><span class="HOEnZb"><font color="#888888" class=""><div class=""><br class=""></div><div class="">Jordan</div></font></span><div class=""><div class="h5"><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Nov 19, 2014, at 17:27, Nico Weber <<a href="mailto:thakis@chromium.org" target="_blank" class="">thakis@chromium.org</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">.svn/wc.db seems to get updated on each `svn up` though. This is with "svn, version 1.7.17 (r1591372)" (which I think is the svn bundled with Xcode 6.1).<br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Nov 19, 2014 at 5:25 PM, Jordan Rose <span dir="ltr" class=""><<a href="mailto:jordan_rose@apple.com" target="_blank" class="">jordan_rose@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">Shoot! And you actually got new revisions? Okay, will poke at this some more tonight.</div><span class=""><font color="#888888" class=""><div class=""><br class=""></div><div class="">Jordan</div></font></span><div class=""><div class=""><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Nov 19, 2014, at 17:24, Nico Weber <<a href="mailto:thakis@chromium.org" target="_blank" class="">thakis@chromium.org</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Nice!<div class=""><br class=""></div><div class="">But .svn/entries doesn't seem to be touched when I `svn up` my llvm checkout.</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Nov 19, 2014 at 2:03 PM, Jordan Rose <span dir="ltr" class=""><<a href="mailto:jordan_rose@apple.com" target="_blank" class="">jordan_rose@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: jrose<br class="">
Date: Wed Nov 19 16:03:48 2014<br class="">
New Revision: 222393<br class="">
<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=222393&view=rev" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=222393&view=rev</a><br class="">
Log:<br class="">
[CMake] Always include the Clang repo version, just like the autoconf build.<br class="">
<br class="">
Now that LLVM's helper script GetSVN.cmake actually works consistently,<br class="">
there's no reason not to use it. We avoid having to regenerate SVNVersion.inc<br class="">
every time by marking it as dependent on Git's reflog or SVN's entries file.<br class="">
<br class="">
This should end most of the issues of the AST format changing and breaking<br class="">
old module files: CMake-Clang should now detect that the version changed just<br class="">
like Autoconf-Clang has.<br class="">
<br class="">
Based on r190557. Depends on LLVM r222391.<br class="">
<br class="">
Modified:<br class="">
    cfe/trunk/lib/Basic/CMakeLists.txt<br class="">
<br class="">
Modified: cfe/trunk/lib/Basic/CMakeLists.txt<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/CMakeLists.txt?rev=222393&r1=222392&r2=222393&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/CMakeLists.txt?rev=222393&r1=222392&r2=222393&view=diff</a><br class="">
==============================================================================<br class="">
--- cfe/trunk/lib/Basic/CMakeLists.txt (original)<br class="">
+++ cfe/trunk/lib/Basic/CMakeLists.txt Wed Nov 19 16:03:48 2014<br class="">
@@ -4,6 +4,48 @@ set(LLVM_LINK_COMPONENTS<br class="">
   Support<br class="">
   )<br class="">
<br class="">
+# Figure out if we can track VC revisions.<br class="">
+function(find_first_existing_file out_var)<br class="">
+  foreach(file ${ARGN})<br class="">
+    if(EXISTS "${file}")<br class="">
+      set(${out_var} "${file}" PARENT_SCOPE)<br class="">
+      return()<br class="">
+    endif()<br class="">
+  endforeach()<br class="">
+endfunction()<br class="">
+<br class="">
+find_first_existing_file(llvm_vc<br class="">
+  "${LLVM_MAIN_SRC_DIR}/.git/logs/HEAD"<br class="">
+  "${LLVM_MAIN_SRC_DIR}/.svn/entries")<br class="">
+find_first_existing_file(clang_vc<br class="">
+  "${CLANG_SOURCE_DIR}/.git/logs/HEAD"<br class="">
+  "${CLANG_SOURCE_DIR}/.svn/entries")<br class="">
+<br class="">
+if(DEFINED llvm_vc AND DEFINED clang_vc)<br class="">
+  # Create custom target to generate the VC revision include.<br class="">
+  add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc"<br class="">
+    DEPENDS "${llvm_vc}" "${clang_vc}"<br class="">
+    COMMAND<br class="">
+    ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}"<br class="">
+                     "-DFIRST_NAME=LLVM"<br class="">
+                     "-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}"<br class="">
+                     "-DSECOND_NAME=SVN"<br class="">
+                     "-DHEADER_FILE=${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc"<br class="">
+                     -P "${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake")<br class="">
+<br class="">
+  # Mark the generated header as being generated.<br class="">
+  set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc"<br class="">
+    PROPERTIES GENERATED TRUE<br class="">
+               HEADER_FILE_ONLY TRUE)<br class="">
+<br class="">
+  # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.<br class="">
+  set_source_files_properties(Version.cpp<br class="">
+    PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")<br class="">
+  set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")<br class="">
+else()<br class="">
+  set(version_inc)<br class="">
+endif()<br class="">
+<br class="">
 add_clang_library(clangBasic<br class="">
   Attributes.cpp<br class="">
   Builtins.cpp<br class="">
@@ -29,30 +71,6 @@ add_clang_library(clangBasic<br class="">
   VersionTuple.cpp<br class="">
   VirtualFileSystem.cpp<br class="">
   Warnings.cpp<br class="">
+  ${version_inc}<br class="">
   )<br class="">
<br class="">
-# Determine Subversion revision.<br class="">
-# FIXME: This only gets updated when CMake is run, so this revision number<br class="">
-# may be out-of-date!<br class="">
-if( NOT IS_SYMLINK "${CLANG_SOURCE_DIR}" )  # See PR 8437<br class="">
-  find_package(Subversion)<br class="">
-endif()<br class="">
-if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")<br class="">
-  set(FIRST_SOURCE_DIR ${LLVM_MAIN_SRC_DIR})<br class="">
-  set(FIRST_REPOSITORY LLVM_REPOSITORY)<br class="">
-  set(SECOND_SOURCE_DIR ${CLANG_SOURCE_DIR})<br class="">
-  set(SECOND_REPOSITORY SVN_REPOSITORY)<br class="">
-  set(HEADER_FILE ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc)<br class="">
-  include(GetSVN)<br class="">
-<br class="">
-  # Mark the generated header as being generated.<br class="">
-  message(STATUS "Expecting header to go in ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")<br class="">
-  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc<br class="">
-    PROPERTIES GENERATED TRUE<br class="">
-               HEADER_FILE_ONLY TRUE)<br class="">
-<br class="">
-  # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.<br class="">
-  set_source_files_properties(Version.cpp<br class="">
-    PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")<br class="">
-<br class="">
-endif()<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
cfe-commits mailing list<br class="">
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank" class="">cfe-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br class="">
</blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div><br class="">_______________________________________________<br class="">
cfe-commits mailing list<br class="">
<a href="mailto:cfe-commits@cs.uiuc.edu" class="">cfe-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br class="">
<br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>