<div dir="ltr">Can't we just drop support for versions <  100? From <a href="http://www.opensource.apple.com/release/developer-tools-40/">http://www.opensource.apple.com/release/developer-tools-40/</a> it looks like that means dropping support for xcode 3.X.</div><div class="gmail_extra"><br><div class="gmail_quote">On 13 November 2014 at 00:35, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@hanshq.net" target="_blank">hans@hanshq.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: hans<br>
Date: Wed Nov 12 18:35:23 2014<br>
New Revision: 221844<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=221844&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=221844&view=rev</a><br>
Log:<br>
CMake: Set HOST_LINK_VERSION on Darwin (PR21268)<br>
<br>
The Autoconf build already does this, but it was never ported to<br>
CMake. The host linker version affects the flags that Clang pass<br>
to the linker, notably whether it passes -demangle or not.<br>
<br>
<a href="http://reviews.llvm.org/D6239" target="_blank">http://reviews.llvm.org/D6239</a><br>
<br>
Added:<br>
    cfe/trunk/test/Driver/darwin-ld-demangle.c<br>
Modified:<br>
    cfe/trunk/CMakeLists.txt<br>
    cfe/trunk/include/clang/Config/config.h.cmake<br>
    cfe/trunk/include/clang/Config/<a href="http://config.h.in" target="_blank">config.h.in</a><br>
<br>
Modified: cfe/trunk/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=221844&r1=221843&r2=221844&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=221844&r1=221843&r2=221844&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/CMakeLists.txt (original)<br>
+++ cfe/trunk/CMakeLists.txt Wed Nov 12 18:35:23 2014<br>
@@ -253,6 +253,26 @@ if (LLVM_COMPILER_IS_GCC_COMPATIBLE)<br>
   endif()<br>
 endif ()<br>
<br>
+# Determine HOST_LINK_VERSION on Darwin.<br>
+set(HOST_LINK_VERSION)<br>
+if (APPLE)<br>
+  set(LD_V_OUTPUT)<br>
+  execute_process(<br>
+    COMMAND sh -c "${CMAKE_LINKER} -v 2>&1 | head -1"<br>
+    RESULT_VARIABLE HAD_ERROR<br>
+    OUTPUT_VARIABLE LD_V_OUTPUT<br>
+  )<br>
+  if (NOT HAD_ERROR)<br>
+    if ("${LD_V_OUTPUT}" MATCHES ".*ld64.*")<br>
+      string(REGEX REPLACE ".*ld64-([0-9.]*).*" "\\1" HOST_LINK_VERSION ${LD_V_OUTPUT})<br>
+    else()<br>
+      string(REGEX REPLACE "[^0-9]*([0-9.]*).*" "\\1" HOST_LINK_VERSION ${LD_V_OUTPUT})<br>
+    endif()<br>
+  else()<br>
+    message(FATAL_ERROR "${CMAKE_LINKER} failed with status ${HAD_ERROR}")<br>
+  endif()<br>
+endif()<br>
+<br>
 configure_file(<br>
   ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake<br>
   ${CLANG_BINARY_DIR}/include/clang/Config/config.h)<br>
<br>
Modified: cfe/trunk/include/clang/Config/config.h.cmake<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Config/config.h.cmake?rev=221844&r1=221843&r2=221844&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Config/config.h.cmake?rev=221844&r1=221843&r2=221844&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Config/config.h.cmake (original)<br>
+++ cfe/trunk/include/clang/Config/config.h.cmake Wed Nov 12 18:35:23 2014<br>
@@ -26,4 +26,7 @@<br>
 /* The LLVM product name and version */<br>
 #define BACKEND_PACKAGE_STRING "${BACKEND_PACKAGE_STRING}"<br>
<br>
+/* Linker version detected at compile time. */<br>
+#cmakedefine HOST_LINK_VERSION "${HOST_LINK_VERSION}"<br>
+<br>
 #endif<br>
<br>
Modified: cfe/trunk/include/clang/Config/<a href="http://config.h.in" target="_blank">config.h.in</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Config/config.h.in?rev=221844&r1=221843&r2=221844&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Config/config.h.in?rev=221844&r1=221843&r2=221844&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Config/<a href="http://config.h.in" target="_blank">config.h.in</a> (original)<br>
+++ cfe/trunk/include/clang/Config/<a href="http://config.h.in" target="_blank">config.h.in</a> Wed Nov 12 18:35:23 2014<br>
@@ -14,9 +14,6 @@<br>
 /* Directories clang will search for headers */<br>
 #undef C_INCLUDE_DIRS<br>
<br>
-/* Linker version detected at compile time. */<br>
-#undef HOST_LINK_VERSION<br>
-<br>
 /* Default <path> to all compiler invocations for --sysroot=<path>. */<br>
 #undef DEFAULT_SYSROOT<br>
<br>
@@ -31,4 +28,7 @@<br>
 /* The LLVM product name and version */<br>
 #define BACKEND_PACKAGE_STRING PACKAGE_STRING<br>
<br>
+/* Linker version detected at compile time. */<br>
+#undef HOST_LINK_VERSION<br>
+<br>
 #endif<br>
<br>
Added: cfe/trunk/test/Driver/darwin-ld-demangle.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-ld-demangle.c?rev=221844&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-ld-demangle.c?rev=221844&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/Driver/darwin-ld-demangle.c (added)<br>
+++ cfe/trunk/test/Driver/darwin-ld-demangle.c Wed Nov 12 18:35:23 2014<br>
@@ -0,0 +1,8 @@<br>
+// REQUIRES: system-darwin<br>
+<br>
+// On Darwin, -demangle is passed to the linker of HOST_LINK_VERSION<br>
+// is high enough. It is assumed to be high enough on systems where<br>
+// this test gets run.<br>
+<br>
+// RUN: %clang -### %s 2>&1 | FileCheck %s<br>
+// CHECK: -demangle<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>