<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[128133] trunk/dports/lang/llvm-3.4</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/128133">128133</a></dd>
<dt>Author</dt> <dd>jeremyhu@macports.org</dd>
<dt>Date</dt> <dd>2014-11-13 21:31:46 -0800 (Thu, 13 Nov 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>clang-3.4: Fix building objc code for 10.5 and earlier targets</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportslangllvm34Portfile">trunk/dports/lang/llvm-3.4/Portfile</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportslangllvm34files0001reinstatefnoobjclegacydispatchbehaviorwhenthepatch">trunk/dports/lang/llvm-3.4/files/0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportslangllvm34Portfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/lang/llvm-3.4/Portfile (128132 => 128133)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -7,7 +7,7 @@
</span><span class="cx"> set llvm_version 3.4
</span><span class="cx"> set llvm_version_no_dot 34
</span><span class="cx"> name llvm-${llvm_version}
</span><del>-subport clang-${llvm_version} { revision 1 }
</del><ins>+subport clang-${llvm_version} { revision 2 }
</ins><span class="cx"> set suffix mp-${llvm_version}
</span><span class="cx"> set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
</span><span class="cx"> dist_subdir llvm
</span><span class="lines">@@ -109,6 +109,7 @@
</span><span class="cx"> if {${subport} == "clang-${llvm_version}"} {
</span><span class="cx"> patchfiles-append tiger-shlib-clang.patch tiger-libclang.patch scan-build-PR-35006.patch \
</span><span class="cx"> 0001-Comment-out-SL-cctools-workaround.patch \
</span><ins>+ 0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch \
</ins><span class="cx"> clang-format.patch \
</span><span class="cx"> clang-modernize.patch \
</span><span class="cx"> yosemite-deployment-target.patch \
</span></span></pre></div>
<a id="trunkdportslangllvm34files0001reinstatefnoobjclegacydispatchbehaviorwhenthepatch"></a>
<div class="addfile"><h4>Added: trunk/dports/lang/llvm-3.4/files/0001-reinstate-fno-objc-legacy-dispatch-behavior-when-the.patch (0 => 128133)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,95 @@
</span><ins>+From 32b4c5909f8aeed1d439b4d3ef1c92e7779c1cb6 Mon Sep 17 00:00:00 2001
+From: Fariborz Jahanian <fjahanian@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
+
</ins></span></pre>
</div>
</div>
</body>
</html>