[128133] trunk/dports/lang/llvm-3.4

jeremyhu at macports.org jeremyhu at macports.org
Thu Nov 13 21:31:46 PST 2014


Revision: 128133
          https://trac.macports.org/changeset/128133
Author:   jeremyhu at macports.org
Date:     2014-11-13 21:31:46 -0800 (Thu, 13 Nov 2014)
Log Message:
-----------
clang-3.4: Fix building objc code for 10.5 and earlier targets

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

Added Paths:
-----------
    trunk/dports/lang/llvm-3.4/files/0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch

Modified: trunk/dports/lang/llvm-3.4/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.4/Portfile	2014-11-14 05:29:56 UTC (rev 128132)
+++ trunk/dports/lang/llvm-3.4/Portfile	2014-11-14 05:31:46 UTC (rev 128133)
@@ -7,7 +7,7 @@
 set llvm_version        3.4
 set llvm_version_no_dot 34
 name                    llvm-${llvm_version}
-subport                 clang-${llvm_version} { revision 1 }
+subport                 clang-${llvm_version} { revision 2 }
 set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
 dist_subdir             llvm
@@ -109,6 +109,7 @@
 if {${subport} == "clang-${llvm_version}"} {
     patchfiles-append    tiger-shlib-clang.patch tiger-libclang.patch scan-build-PR-35006.patch \
                          0001-Comment-out-SL-cctools-workaround.patch \
+                         0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch \
                          clang-format.patch \
                          clang-modernize.patch \
                          yosemite-deployment-target.patch \

Added: trunk/dports/lang/llvm-3.4/files/0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch
===================================================================
--- trunk/dports/lang/llvm-3.4/files/0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch	                        (rev 0)
+++ trunk/dports/lang/llvm-3.4/files/0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch	2014-11-14 05:31:46 UTC (rev 128133)
@@ -0,0 +1,95 @@
+From 32b4c5909f8aeed1d439b4d3ef1c92e7779c1cb6 Mon Sep 17 00:00:00 2001
+From: Fariborz Jahanian <fjahanian at apple.com>
+Date: Mon, 20 Jan 2014 19:32:33 +0000
+Subject: [PATCH] reinstate -fno-objc-legacy-dispatch behavior when the
+ deployment target is 10.5 or earlier
+
+<rdar://problem/18971940>
+
+Squashes three cherry-picks from trunk into release_34 branch:
+
+ObjectiveC driver. reinstate -fno-objc-legacy-dispatch behavior
+when the deployment target is 10.5. // rdar://15852259
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199682 91177308-0d34-0410-b5e6-96231b3b80d8
+(cherry picked from commit 015f92d36592bf95f6a71a24b64031479a990d35)
+
+ObjectiveC driver. change to reinstate -fno-objc-legacy-dispatch behavior
+when the deployment target is 10.5. // rdar://15852259
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199780 91177308-0d34-0410-b5e6-96231b3b80d8
+(cherry picked from commit 69da841e85785ea625467e23804f6a9dd376528b)
+
+Objective-C driver. Do not use legacy dispatch for
+10.5 or less for x86_64 arch. // rdar://15852259
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200854 91177308-0d34-0410-b5e6-96231b3b80d8
+(cherry picked from commit 3bb54680c4b6e7d918c82e96ecd56239e3149a5a)
+---
+ include/clang/Basic/ObjCRuntime.h  | 5 +++++
+ lib/Driver/Tools.cpp               | 7 ++++---
+ test/Driver/darwin-objc-defaults.m | 9 +++++++++
+ 3 files changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/include/clang/Basic/ObjCRuntime.h b/include/clang/Basic/ObjCRuntime.h
+index 4c64497..fa375f4 100644
+--- a/tools/clang/include/clang/Basic/ObjCRuntime.h
++++ b/tools/clang/include/clang/Basic/ObjCRuntime.h
+@@ -99,6 +99,11 @@ public:
+           Arch == llvm::Triple::x86_64)
+         return false;
+     }
++    else if ((getKind() ==  MacOSX) && isNonFragile() &&
++             (getVersion() >= VersionTuple(10, 0)) &&
++             (getVersion() < VersionTuple(10, 6)))
++        return Arch != llvm::Triple::x86_64;
++    // Except for deployment target of 10.5 or less,
+     // Mac runtimes use legacy dispatch everywhere now.
+     return true;
+   }
+diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
+index b013eb5..2dc5735 100644
+--- a/tools/clang/lib/Driver/Tools.cpp
++++ b/tools/clang/lib/Driver/Tools.cpp
+@@ -3358,9 +3358,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
+   ObjCRuntime objcRuntime = AddObjCRuntimeArgs(Args, CmdArgs, rewriteKind);
+ 
+   // -fobjc-dispatch-method is only relevant with the nonfragile-abi, and
+-  // legacy is the default. Next runtime is always legacy dispatch and
+-  // -fno-objc-legacy-dispatch gets ignored silently.
+-  if (objcRuntime.isNonFragile() && !objcRuntime.isNeXTFamily()) {
++  // legacy is the default. Except for deployment taget of 10.5,
++  // next runtime is always legacy dispatch and -fno-objc-legacy-dispatch
++  // gets ignored silently.
++  if (objcRuntime.isNonFragile()) {
+     if (!Args.hasFlag(options::OPT_fobjc_legacy_dispatch,
+                       options::OPT_fno_objc_legacy_dispatch,
+                       objcRuntime.isLegacyDispatchDefaultForArch(
+diff --git a/test/Driver/darwin-objc-defaults.m b/test/Driver/darwin-objc-defaults.m
+index 1742deb..1b3f7a8 100644
+--- a/tools/clang/test/Driver/darwin-objc-defaults.m
++++ b/tools/clang/test/Driver/darwin-objc-defaults.m
+@@ -32,11 +32,20 @@
+ // x86_64
+ 
+ // RUN: %clang -target x86_64-apple-darwin10 -S -### %s \
++// RUN:   -arch x86_64 -mmacosx-version-min=10.4 2> %t
++// RUN: FileCheck --check-prefix CHECK-CHECK-X86_64_OSX10_4 < %t %s
++
++// CHECK-CHECK-X86_64_OSX10_4: "-cc1"
++// CHECK-CHECK-X86_64_OSX10_4: -fobjc-dispatch-method=non-legacy
++
++// RUN: %clang -target x86_64-apple-darwin10 -S -### %s \
+ // RUN:   -arch x86_64 -mmacosx-version-min=10.5 2> %t
+ // RUN: FileCheck --check-prefix CHECK-CHECK-X86_64_OSX10_5 < %t %s
+ 
++
+ // CHECK-CHECK-X86_64_OSX10_5: "-cc1"
+ // CHECK-CHECK-X86_64_OSX10_5: -fobjc-runtime=macosx-10.5
++// CHECK-CHECK-X86_64_OSX10_5: -fobjc-dispatch-method=non-legacy
+ // CHECK-CHECK-X86_64_OSX10_5: darwin-objc-defaults
+ 
+ // RUN: %clang -target x86_64-apple-darwin10 -S -### %s \
+-- 
+2.1.2
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20141113/7084ac1e/attachment.html>


More information about the macports-changes mailing list