[98133] trunk/dports/lang/llvm-3.2

jeremyhu at macports.org jeremyhu at macports.org
Tue Sep 25 12:33:27 PDT 2012


Revision: 98133
          http://trac.macports.org//changeset/98133
Author:   jeremyhu at macports.org
Date:     2012-09-25 12:33:27 -0700 (Tue, 25 Sep 2012)
Log Message:
-----------
clang-3.2: Fix build on Snow Leopard (#36042)

Modified Paths:
--------------
    trunk/dports/lang/llvm-3.2/Portfile

Added Paths:
-----------
    trunk/dports/lang/llvm-3.2/files/0001-Use-I-dir-and-L-dir-when-constructing-our-argument-l.patch

Modified: trunk/dports/lang/llvm-3.2/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.2/Portfile	2012-09-25 19:28:20 UTC (rev 98132)
+++ trunk/dports/lang/llvm-3.2/Portfile	2012-09-25 19:33:27 UTC (rev 98133)
@@ -78,7 +78,8 @@
         distfiles-append     clang-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix}
     }
 
-    patchfiles-append    tiger-shlib-clang.patch tiger-libclang.patch scan-build-PR-35006.patch
+    patchfiles-append    tiger-shlib-clang.patch tiger-libclang.patch scan-build-PR-35006.patch \
+                         0001-Use-I-dir-and-L-dir-when-constructing-our-argument-l.patch
 
     build.target        clang-only
     destroot.target     install-clang

Added: trunk/dports/lang/llvm-3.2/files/0001-Use-I-dir-and-L-dir-when-constructing-our-argument-l.patch
===================================================================
--- trunk/dports/lang/llvm-3.2/files/0001-Use-I-dir-and-L-dir-when-constructing-our-argument-l.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.2/files/0001-Use-I-dir-and-L-dir-when-constructing-our-argument-l.patch	2012-09-25 19:33:27 UTC (rev 98133)
@@ -0,0 +1,85 @@
+From d5ee45f9157e649c88ee0bfa89796db687159198 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+Date: Tue, 25 Sep 2012 12:22:13 -0700
+Subject: [PATCH] Use -I<dir> and -L<dir> when constructing our argument list.
+
+-L <dir> is not valid with XCode older than 4.0.
+
+<rdar://problem/12366753>
+https://trac.macports.org/ticket/36042
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu at apple.com>
+---
+ lib/Driver/Tools.cpp | 39 +++++++++++++++++++++++++++++++--------
+ 1 file changed, 31 insertions(+), 8 deletions(-)
+
+diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
+index 8619b98..9f5cfc2 100644
+--- a/tools/clang/lib/Driver/Tools.cpp
++++ b/tools/clang/lib/Driver/Tools.cpp
+@@ -93,9 +93,16 @@ static void addDirectoryList(const ArgList &Args,
+                              const char *ArgName,
+                              const char *EnvVar) {
+   const char *DirList = ::getenv(EnvVar);
++  bool CombinedArg = false;
++
+   if (!DirList)
+     return; // Nothing to do.
+ 
++  if (::strcmp("-I", ArgName) == 0 ||
++      ::strcmp("-L", ArgName) == 0) {
++    CombinedArg = true;
++  }
++
+   StringRef Dirs(DirList);
+   if (Dirs.empty()) // Empty string should not add '.'.
+     return;
+@@ -103,21 +110,37 @@ static void addDirectoryList(const ArgList &Args,
+   StringRef::size_type Delim;
+   while ((Delim = Dirs.find(llvm::sys::PathSeparator)) != StringRef::npos) {
+     if (Delim == 0) { // Leading colon.
+-      CmdArgs.push_back(ArgName);
+-      CmdArgs.push_back(".");
++      if (CombinedArg) {
++        CmdArgs.push_back(Args.MakeArgString(std::string(ArgName) + "."));
++      } else {
++        CmdArgs.push_back(ArgName);
++        CmdArgs.push_back(".");
++      }
+     } else {
+-      CmdArgs.push_back(ArgName);
+-      CmdArgs.push_back(Args.MakeArgString(Dirs.substr(0, Delim)));
++      if (CombinedArg) {
++        CmdArgs.push_back(Args.MakeArgString(std::string(ArgName) + Dirs.substr(0, Delim)));
++      } else {
++        CmdArgs.push_back(ArgName);
++        CmdArgs.push_back(Args.MakeArgString(Dirs.substr(0, Delim)));
++      }
+     }
+     Dirs = Dirs.substr(Delim + 1);
+   }
+ 
+   if (Dirs.empty()) { // Trailing colon.
+-    CmdArgs.push_back(ArgName);
+-    CmdArgs.push_back(".");
++    if (CombinedArg) {
++      CmdArgs.push_back(Args.MakeArgString(std::string(ArgName) + "."));
++    } else {
++      CmdArgs.push_back(ArgName);
++      CmdArgs.push_back(".");
++    }
+   } else { // Add the last path.
+-    CmdArgs.push_back(ArgName);
+-    CmdArgs.push_back(Args.MakeArgString(Dirs));
++    if (CombinedArg) {
++      CmdArgs.push_back(Args.MakeArgString(std::string(ArgName) + Dirs));
++    } else {
++      CmdArgs.push_back(ArgName);
++      CmdArgs.push_back(Args.MakeArgString(Dirs));
++    }
+   }
+ }
+ 
+-- 
+1.7.12.1
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120925/e0167520/attachment.html>


More information about the macports-changes mailing list