<!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>[132142] trunk/dports/devel/ld64</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/132142">132142</a></dd>
<dt>Author</dt> <dd>jeremyhu@macports.org</dd>
<dt>Date</dt> <dd>2015-01-24 01:45:41 -0800 (Sat, 24 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>ld64: Refactor into a primary port with subports for each available version</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsdevelld64Portfile">trunk/dports/devel/ld64/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsdevelld64filesld6497BaseAtomImplicitDeclpatch">trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsdevelld64Portfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/devel/ld64/Portfile (132141 => 132142)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/devel/ld64/Portfile        2015-01-24 05:39:15 UTC (rev 132141)
+++ trunk/dports/devel/ld64/Portfile        2015-01-24 09:45:41 UTC (rev 132142)
</span><span class="lines">@@ -3,206 +3,279 @@
</span><span class="cx"> PortSystem              1.0
</span><span class="cx"> 
</span><span class="cx"> name                    ld64
</span><del>-epoch                   1
-# XCode 5.1
-version                 236.3
-revision                2
</del><ins>+epoch                   2
+version                 1
</ins><span class="cx"> categories              devel
</span><span class="cx"> platforms               darwin
</span><span class="cx"> maintainers             jeremyhu
</span><span class="cx"> homepage                http://opensource.apple.com/source/${name}/
</span><span class="cx"> master_sites            http://opensource.apple.com/tarballs/${name}/
</span><span class="cx"> license                 APSL-2
</span><del>-depends_build           path:include/mach-o/dyld_priv.h:dyld-headers \
-                        path:include/mach-o/arm/reloc.h:libmacho-headers
</del><span class="cx"> description             ld64 is the new mach-o linker
</span><span class="cx"> long_description        ld64 combines several object files and libraries, \
</span><span class="cx">                         resolves references, and produces an ouput file.
</span><span class="cx"> 
</span><del>-checksums               rmd160  6a3f44aa9ae57a60d2cff5b3d47be7972ad83029 \
-                        sha256  8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6
-
-patchfiles              ld64-version.patch ld64-133-no-CrashReporterClient.h.patch ld64-134-missing-include.patch ld64-136-i386-badAddress.patch PR-16935960.patch PR-16936488.patch
-
-# We don't set llvmXX as the default variant on Tiger because it would introduce a
-# dependency cycle as llvm requires apple-gcc42 and ld64 to build correctly.  Users
-# wanting LTO support in ld64 on Tiger can install the +llvm variant after llvm
-# has been installed.
-if {![variant_isset llvm33] &amp;&amp; ![variant_isset llvm34] &amp;&amp; ![variant_isset llvm35] &amp;&amp; ![variant_isset llvm36] &amp;&amp; ![variant_isset llvm37]} {
-    if {${os.major} &gt;= 13} {
-        default_variants +llvm35
-    } elseif {${os.major} &gt;= 9} {
-        default_variants +llvm34
-    }
-
-    if {![variant_isset llvm34] &amp;&amp; ![variant_isset llvm35] &amp;&amp; ![variant_isset llvm36] &amp;&amp; ![variant_isset llvm37] &amp;&amp; ${os.major} &gt;= 9} {
-        ui_error &quot;Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again.&quot;
-        return -code error &quot;Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again.&quot;
-    }
-}
-
-variant universal {}
-
-set llvm_version {}
-variant llvm33 conflicts llvm34 llvm35 llvm36 llvm37 description {Use llvm-3.3 for libLTO} {
-    set llvm_version        3.3
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm34 conflicts llvm33 llvm35 llvm36 llvm37 description {Use llvm-3.4 for libLTO} {
-    set llvm_version        3.4
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm35 conflicts llvm33 llvm34 llvm36 llvm37 description {Use llvm-3.5 for libLTO} {
-    set llvm_version        3.5
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm36 conflicts llvm33 llvm34 llvm35 llvm37 description {Use llvm-3.6 for libLTO} {
-    set llvm_version        3.6
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm37 conflicts llvm33 llvm34 llvm35 llvm36 description {Use llvm-3.7 for libLTO} {
-    set llvm_version        3.7
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-set makefile &quot;Makefile-133&quot;
-
-set cxx_stdlibflags {}
-if {[string match *clang* ${configure.cxx}]} {
-    set cxx_stdlibflags -stdlib=${configure.cxx_stdlib}
-}
-
-if {${os.major} &lt; 10} {
-    # Leopard and earlier didn't have libunwind.h in the SDK
-    depends_build-append    path:include/libunwind.h:libunwind-headers
-}
-
-if {${os.major} &lt; 9} {
</del><ins>+subport ld64-97 {
</ins><span class="cx">     # XCode 3.2.6
</span><span class="cx">     version             97.17
</span><del>-    revision            4
</del><ins>+
</ins><span class="cx">     checksums           rmd160  d52df7d7f741c8bedd29cbac73dbb9db992b4795 \
</span><span class="cx">                         sha256  02bd46af0809eaa415d096d7d41c3e8e7d80f7d8d181840866fb87f036b4e089
</span><span class="cx"> 
</span><span class="cx">     set makefile        &quot;Makefile-97&quot;
</span><ins>+    set ld64_ver        97
</ins><span class="cx"> 
</span><del>-    patchfiles-delete   ld64-133-no-CrashReporterClient.h.patch ld64-134-missing-include.patch ld64-136-i386-badAddress.patch PR-16935960.patch PR-16936488.patch
-    patchfiles-append   ld64-97-no-LTO.patch ld64-97-ppc-branch-island.patch ld64-97-arm_types_PR38931.patch ld64-97-long-branch-warn.patch ld64-97-standalone-libunwind-headers.patch ld64-97-no-Availability.h.patch
-} elseif {${os.major} &lt; 10 || &quot;ppc&quot; in [get_canonical_archs]} {
</del><ins>+    patchfiles \
+        ld64-version.patch \
+        ld64-97-no-LTO.patch \
+        ld64-97-ppc-branch-island.patch \
+        ld64-97-arm_types_PR38931.patch \
+        ld64-97-long-branch-warn.patch \
+        ld64-97-standalone-libunwind-headers.patch \
+        ld64-97-no-Availability.h.patch \
+        ld64-97-BaseAtomImplicitDecl.patch
+}
+
+subport ld64-127 {
</ins><span class="cx">     # XCode 4.2
</span><span class="cx">     # This was the last ld64 release that supported linking ppc executables.
</span><span class="cx">     version             127.2
</span><del>-    revision            9
</del><ins>+
</ins><span class="cx">     checksums           rmd160  8ee709341549a1944732daef6ebab7ef1acfcc6e \
</span><span class="cx">                         sha256  97b75547b2bd761306ab3e15ae297f01e7ab9760b922bc657f4ef72e4e052142
</span><span class="cx"> 
</span><span class="cx">     set makefile        &quot;Makefile-127&quot;
</span><ins>+    set ld64_ver        127
</ins><span class="cx"> 
</span><del>-    patchfiles-delete   ld64-133-no-CrashReporterClient.h.patch ld64-136-i386-badAddress.patch PR-16935960.patch PR-16936488.patch
-    patchfiles-append   ld64-127-any-cctools.patch ld64-127-long-branch-warn.patch ld64-127-cxx_initializer_order_and_sim.patch ld64-127-ppc.patch ld64-97-no-Availability.h.patch
-} elseif {${os.major} &lt; 11} {
</del><ins>+    patchfiles-append \
+        ld64-version.patch \
+        ld64-134-missing-include.patch \
+        ld64-127-any-cctools.patch \
+        ld64-127-long-branch-warn.patch \
+        ld64-127-cxx_initializer_order_and_sim.patch \
+        ld64-127-ppc.patch \
+        ld64-97-no-Availability.h.patch
+}
+
+subport ld64-136 {
</ins><span class="cx">     # XCode 4.6
</span><del>-    # Until we figure out a way to better bootstrap ld64-236 on SnowLeopard or fix its build failure
</del><span class="cx">     version             136
</span><del>-    revision            3
</del><ins>+
</ins><span class="cx">     checksums           rmd160  4a2930ccdd398b63a108810e90293ab96dc154a0 \
</span><span class="cx">                         sha256  99d6c4acb6d4cdf45772951dd2308222aa966763170137459a9d276674645d9e
</span><span class="cx">  
</span><del>-    patchfiles-delete   PR-16935960.patch PR-16936488.patch
-    patchfiles-append   ld64-136-hash_set.patch
-} else {
</del><ins>+    set makefile        &quot;Makefile-133&quot;
+    set ld64_ver        136
+
+    patchfiles-append \
+        ld64-version.patch \
+        ld64-133-no-CrashReporterClient.h.patch \
+        ld64-134-missing-include.patch \
+        ld64-136-i386-badAddress.patch \
+        ld64-136-hash_set.patch
+}
+
+subport ld64-latest {
+    # XCode 5.1
+    version             236.3
+
+    checksums           rmd160  6a3f44aa9ae57a60d2cff5b3d47be7972ad83029 \
+                        sha256  8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6
+
</ins><span class="cx">     # http://trac.macports.org/ticket/43737
</span><span class="cx">     compiler.blacklist-append *gcc*
</span><span class="cx"> 
</span><ins>+    set makefile        &quot;Makefile-133&quot;
+    set ld64_ver        latest
+
+    patchfiles-append \
+        ld64-version.patch \
+        ld64-133-no-CrashReporterClient.h.patch \
+        ld64-134-missing-include.patch \
+        ld64-136-i386-badAddress.patch \
+        PR-16935960.patch \
+        PR-16936488.patch
+
</ins><span class="cx">     if {${configure.cxx_stdlib} eq &quot;libstdc++&quot;} {
</span><span class="cx">         patchfiles-append   ld64-236-hash_set.patch
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-platform darwin 8 {
</del><ins>+variant universal {}
+
+if {${subport} eq ${name}} {
+    distfiles
+    build {}
+    use_configure no
+
+    if {${os.major} &lt; 9} {
+        set ld64_ver 97
+    } elseif {${os.major} &lt; 10 || &quot;ppc&quot; in [get_canonical_archs]} {
+        set ld64_ver 127
+    } elseif {${os.major} &lt; 11} {
+        set ld64_ver 136
+    } else {
+        set ld64_ver latest
+    }
+
+    depends_run         port:ld64-${ld64_ver}
+
+    destroot {
+        ln -s dyldinfo-${ld64_ver} ${destroot}${prefix}/bin/dyldinfo
+        ln -s ld-${ld64_ver} ${destroot}${prefix}/bin/ld
+        ln -s machocheck-${ld64_ver} ${destroot}${prefix}/bin/machocheck
+        ln -s ObjectDump-${ld64_ver} ${destroot}${prefix}/bin/ObjectDump
+        ln -s rebase-${ld64_ver} ${destroot}${prefix}/bin/rebase
+        ln -s unwinddump-${ld64_ver} ${destroot}${prefix}/bin/unwinddump
+
+        file mkdir ${destroot}${prefix}/libexec/ld64
+        ln -s ld-${ld64_ver} ${destroot}${prefix}/libexec/ld64/ld
+    }
+} else {
+    depends_build       path:include/mach-o/dyld_priv.h:dyld-headers \
+                        path:include/mach-o/arm/reloc.h:libmacho-headers
+
+    # We don't set llvmXX as the default variant on Tiger because it would introduce a
+    # dependency cycle as llvm requires apple-gcc42 and ld64 to build correctly.  Users
+    # wanting LTO support in ld64 on Tiger can install the +llvm variant after llvm
+    # has been installed.
+
+    if {![variant_isset llvm33] &amp;&amp; ![variant_isset llvm34] &amp;&amp; ![variant_isset llvm35] &amp;&amp; ![variant_isset llvm36] &amp;&amp; ![variant_isset llvm37]} {
+        if {${os.major} &gt;= 13} {
+            default_variants +llvm35
+        } elseif {${os.major} &gt;= 9} {
+            default_variants +llvm34
+        }
+
+        if {![variant_isset llvm34] &amp;&amp; ![variant_isset llvm35] &amp;&amp; ![variant_isset llvm36] &amp;&amp; ![variant_isset llvm37] &amp;&amp; ${os.major} &gt;= 9} {
+            ui_error &quot;Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again.&quot;
+            return -code error &quot;Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again.&quot;
+        }
+    }
+
+    set llvm_version {}
+    variant llvm33 conflicts llvm34 llvm35 llvm36 llvm37 description {Use llvm-3.3 for libLTO} {
+        set llvm_version        3.3
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm34 conflicts llvm33 llvm35 llvm36 llvm37 description {Use llvm-3.4 for libLTO} {
+        set llvm_version        3.4
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm35 conflicts llvm33 llvm34 llvm36 llvm37 description {Use llvm-3.5 for libLTO} {
+        set llvm_version        3.5
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm36 conflicts llvm33 llvm34 llvm35 llvm37 description {Use llvm-3.6 for libLTO} {
+        set llvm_version        3.6
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm37 conflicts llvm33 llvm34 llvm35 llvm36 description {Use llvm-3.7 for libLTO} {
+        set llvm_version        3.7
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    if {${os.major} &lt; 10} {
+        # Leopard and earlier didn't have libunwind.h in the SDK
+        depends_build-append    path:include/libunwind.h:libunwind-headers
+    }
+
+    compiler.blacklist-append gcc-4.0
+
</ins><span class="cx">     pre-fetch {
</span><del>-        if {${llvm_version} != &quot;&quot;} {
-            if {![file exists ${prefix}/bin/llvm-config-mp-${llvm_version}]} {
-                ui_error &quot;You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant.&quot;
-                return -code error &quot;You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant.&quot;
</del><ins>+        if {${os.major} &lt; 9} {
+            if {${llvm_version} != &quot;&quot;} {
+                if {![file exists ${prefix}/bin/llvm-config-mp-${llvm_version}]} {
+                    ui_error &quot;You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant.&quot;
+                    return -code error &quot;You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant.&quot;
+                }
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    post-extract {
+        file copy ${filespath}/${makefile} ${worksrcpath}/Makefile
+    }
+
</ins><span class="cx">     post-patch {
</span><del>-        reinplace &quot;s:-Wl,-exported_symbol,__mh_execute_header::g&quot; \
-            ${worksrcpath}/Makefile
</del><ins>+        reinplace &quot;s|@@VERSION@@|${version}|g&quot; \
+            ${worksrcpath}/src/ld/Options.cpp
</ins><span class="cx"> 
</span><del>-        foreach reg {cr ctr eax ebp ebx ecx edi edx eip esi esp lr mq r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r3 r30 r31 r4 r5 r6 r7 r8 r9 rax rbp rbx rcx rdi rdx rip rsi rsp srr0 srr1 vrsave xer} {
-            reinplace &quot;s|__${reg}|${reg}|g&quot; ${worksrcpath}/src/ld/parsers/libunwind/Registers.hpp
</del><ins>+        if {${os.major} &lt; 9} {
+            # No CommonCrypto, use openssl
+            reinplace &quot;s:&lt;CommonCrypto/CommonDigest.h&gt;:&lt;openssl/md5.h&gt;:&quot; \
+                ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
+            reinplace &quot;s:CC_MD5:MD5:&quot; \
+                ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
+
+            reinplace &quot;s:-Wl,-exported_symbol,__mh_execute_header::g&quot; \
+                ${worksrcpath}/Makefile
+
+            foreach reg {cr ctr eax ebp ebx ecx edi edx eip esi esp lr mq r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r3 r30 r31 r4 r5 r6 r7 r8 r9 rax rbp rbx rcx rdi rdx rip rsi rsp srr0 srr1 vrsave xer} {
+                reinplace &quot;s|__${reg}|${reg}|g&quot; ${worksrcpath}/src/ld/parsers/libunwind/Registers.hpp
+            }
</ins><span class="cx">         }
</span><span class="cx">     }
</span><del>-}
</del><span class="cx"> 
</span><del>-compiler.blacklist-append gcc-4.0
</del><ins>+    configure {
+        system &quot;cd ${worksrcpath} &amp;&amp; ${build.cmd} src/ld/configure.h&quot;
+    }
</ins><span class="cx"> 
</span><del>-post-extract {
-    file copy ${filespath}/${makefile} ${worksrcpath}/Makefile
-}
</del><ins>+    set cxx_stdlibflags {}
+    if {[string match *clang* ${configure.cxx}]} {
+        set cxx_stdlibflags -stdlib=${configure.cxx_stdlib}
+    }
</ins><span class="cx"> 
</span><del>-post-patch {
-    reinplace &quot;s|@@VERSION@@|${version}|g&quot; \
-        ${worksrcpath}/src/ld/Options.cpp
</del><ins>+    build.args \
+        CC=&quot;${configure.cc}&quot; \
+        CXX=&quot;${configure.cxx}&quot; \
+        OTHER_CPPFLAGS=&quot;${configure.cppflags}&quot; \
+        OTHER_CFLAGS=&quot;${configure.cflags} [get_canonical_archflags cc]&quot; \
+        OTHER_CXXFLAGS=&quot;${configure.cxxflags} ${cxx_stdlibflags} [get_canonical_archflags cxx]&quot; \
+        OTHER_LDFLAGS=&quot;${configure.ldflags} ${cxx_stdlibflags} [get_canonical_archflags ld]&quot;
</ins><span class="cx"> 
</span><del>-    if {${os.major} &lt; 9} {
-        # No CommonCrypto, use openssl
-        reinplace &quot;s:&lt;CommonCrypto/CommonDigest.h&gt;:&lt;openssl/md5.h&gt;:&quot; \
-            ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
-        reinplace &quot;s:CC_MD5:MD5:&quot; \
-            ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
-    } 
-}
</del><ins>+    if {${os.major} &gt;= 11} {
+        build.args-append \
+            RC_SUPPORTED_ARCHS=&quot;armv6 armv7 i386 x86_64&quot;
+    }
</ins><span class="cx"> 
</span><del>-configure {
-    system &quot;cd ${worksrcpath} &amp;&amp; ${build.cmd} src/ld/configure.h&quot;
-}
</del><ins>+    destroot.args \
+        PREFIX=${prefix}
</ins><span class="cx"> 
</span><del>-build.args \
-    CC=&quot;${configure.cc}&quot; \
-    CXX=&quot;${configure.cxx}&quot; \
-    OTHER_CPPFLAGS=&quot;${configure.cppflags}&quot; \
-    OTHER_CFLAGS=&quot;${configure.cflags} [get_canonical_archflags cc]&quot; \
-    OTHER_CXXFLAGS=&quot;${configure.cxxflags} ${cxx_stdlibflags} [get_canonical_archflags cxx]&quot; \
-    OTHER_LDFLAGS=&quot;${configure.ldflags} ${cxx_stdlibflags} [get_canonical_archflags ld]&quot;
</del><ins>+    pre-build {
+        if {${llvm_version} != &quot;&quot;} {
+            build.args-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_version}
+        }
</ins><span class="cx"> 
</span><del>-if {${os.major} &gt;= 11} {
-    build.args-append \
-        RC_SUPPORTED_ARCHS=&quot;armv6 armv7 i386 x86_64&quot;
-}
</del><ins>+        if {${os.major} &lt; 9} {
+            build.args-append OTHER_LDFLAGS_LD64=-lcrypto
+        }
+    }
</ins><span class="cx"> 
</span><del>-destroot.args \
-    PREFIX=${prefix}
</del><ins>+    post-destroot {
+        # ${prefix}/bin/ld will always use the llvm we built against
+        # ${prefix}/libexec/ld64/ld uses relative linking for use with the llvm ports
+        file mkdir ${destroot}${prefix}/libexec/ld64
+        file copy ${destroot}${prefix}/bin/ld ${destroot}${prefix}/libexec/ld64/ld-${ld64_ver}
</ins><span class="cx"> 
</span><del>-pre-build {
-    if {${llvm_version} != &quot;&quot;} {
-        build.args-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_version}
-    }
</del><ins>+        file rename ${destroot}${prefix}/bin/dyldinfo ${destroot}${prefix}/bin/dyldinfo-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/ld ${destroot}${prefix}/bin/ld-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/machocheck ${destroot}${prefix}/bin/machocheck-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/ObjectDump ${destroot}${prefix}/bin/ObjectDump-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/rebase ${destroot}${prefix}/bin/rebase-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/unwinddump ${destroot}${prefix}/bin/unwinddump-${ld64_ver}
</ins><span class="cx"> 
</span><del>-    if {${os.major} &lt; 9} {
-        build.args-append OTHER_LDFLAGS_LD64=-lcrypto
-    }    
-}
</del><ins>+        eval delete [glob ${destroot}${prefix}/share/man/man1/*]
</ins><span class="cx"> 
</span><del>-post-destroot {
-    # ${prefix}/bin/ld will always use the llvm we built against
-    # ${prefix}/libexec/ld64/ld uses relative linking for use with the llvm ports
-    file mkdir ${destroot}${prefix}/libexec/ld64
-    file copy ${destroot}${prefix}/bin/ld ${destroot}${prefix}/libexec/ld64/ld
-
-    if {${llvm_version} != &quot;&quot;} {
-        system &quot;install_name_tool -change ${prefix}/libexec/llvm-${llvm_version}/lib/libLTO.dylib \
-                @executable_path/../lib/libLTO.dylib ${destroot}${prefix}/libexec/ld64/ld&quot;
</del><ins>+        if {${llvm_version} != &quot;&quot;} {
+            system &quot;install_name_tool -change ${prefix}/libexec/llvm-${llvm_version}/lib/libLTO.dylib \
+                    @executable_path/../lib/libLTO.dylib ${destroot}${prefix}/libexec/ld64/ld-${ld64_ver}&quot;
+        }
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-livecheck.type          regex
-livecheck.regex         &quot;${name}-(\[\\d.\]+)&quot;
</del><ins>+livecheck.type          none
</ins></span></pre></div>
<a id="trunkdportsdevelld64filesld6497BaseAtomImplicitDeclpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch (0 => 132142)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch                                (rev 0)
+++ trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch        2015-01-24 09:45:41 UTC (rev 132142)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+--- src/ld/MachOReaderRelocatable.hpp.orig        2015-01-24 01:24:52.000000000 -0800
++++ src/ld/MachOReaderRelocatable.hpp        2015-01-24 01:40:57.000000000 -0800
+@@ -62,7 +62,38 @@ extern void warning(const char* format, 
+ namespace mach_o {
+ namespace relocatable {

++class BaseAtom : public ObjectFile::Atom
++{
++public:
++                                                                                                BaseAtom() : fStabsStartIndex(0), fStabsCount(0), fHasCompactUnwindInfo(false) {}

++        virtual void                                                                setSize(uint64_t size) = 0;
++        virtual void                                                                addReference(ObjectFile::Reference* ref) = 0;
++        virtual void                                                                sortReferences() = 0;
++        virtual void                                                                addLineInfo(const ObjectFile::LineInfo&amp; info) = 0;
++        virtual const ObjectFile::ReaderOptions&amp;        getOptions() const = 0;
++        virtual uint64_t                                                        getObjectAddress() const = 0;
++        virtual uint32_t                                                        getOrdinal() const { return fOrdinal; }
++        virtual void                                                                setOrdinal(uint32_t value) { fOrdinal = value; }
++        virtual const void*                                                        getSectionRecord() const = 0;
++        virtual unsigned int                                                getSectionIndex() const = 0;
++        virtual bool                                                                isAlias() const { return false; }
++        virtual uint8_t                                                                getLSDAReferenceKind() const { return 0; }
++        virtual uint8_t                                                                getPersonalityReferenceKind() const { return 0; }
++        virtual uint32_t                                                        getCompactUnwindEncoding(uint64_t ehAtomAddress) { return 0; }
++        virtual ObjectFile::UnwindInfo::iterator        beginUnwind()                                        { return fHasCompactUnwindInfo ? &amp;fSingleUnwindInfo[0] : NULL; }
++        virtual ObjectFile::UnwindInfo::iterator        endUnwind()                                                { return fHasCompactUnwindInfo ? &amp;fSingleUnwindInfo[1] : NULL; }
++        virtual ObjectFile::Reference*                                getLSDA();
++        virtual ObjectFile::Reference*                                getFDE();
++        virtual Atom*                                                                getPersonalityPointer();
++        virtual void                                                                setCompactUnwindEncoding(uint64_t ehAtomAddress);
++
++        uint32_t                                                                        fStabsStartIndex;
++        uint32_t                                                                        fStabsCount;
++        uint32_t                                                                        fOrdinal;
++        ObjectFile::UnwindInfo                                                fSingleUnwindInfo[1];
++        bool                                                                                fHasCompactUnwindInfo;
++};

+ class ReferenceSorter
+ {
+@@ -274,40 +305,6 @@ public:

+ LinkEditSegment LinkEditSegment::fgSingleton;

+-class BaseAtom : public ObjectFile::Atom
+-{
+-public:
+-                                                                                                BaseAtom() : fStabsStartIndex(0), fStabsCount(0), fHasCompactUnwindInfo(false) {}
+-
+-        virtual void                                                                setSize(uint64_t size) = 0;
+-        virtual void                                                                addReference(ObjectFile::Reference* ref) = 0;
+-        virtual void                                                                sortReferences() = 0;
+-        virtual void                                                                addLineInfo(const ObjectFile::LineInfo&amp; info) = 0;
+-        virtual const ObjectFile::ReaderOptions&amp;        getOptions() const = 0;
+-        virtual uint64_t                                                        getObjectAddress() const = 0;
+-        virtual uint32_t                                                        getOrdinal() const { return fOrdinal; }
+-        virtual void                                                                setOrdinal(uint32_t value) { fOrdinal = value; }
+-        virtual const void*                                                        getSectionRecord() const = 0;
+-        virtual unsigned int                                                getSectionIndex() const = 0;
+-        virtual bool                                                                isAlias() const { return false; }
+-        virtual uint8_t                                                                getLSDAReferenceKind() const { return 0; }
+-        virtual uint8_t                                                                getPersonalityReferenceKind() const { return 0; }
+-        virtual uint32_t                                                        getCompactUnwindEncoding(uint64_t ehAtomAddress) { return 0; }
+-        virtual ObjectFile::UnwindInfo::iterator        beginUnwind()                                        { return fHasCompactUnwindInfo ? &amp;fSingleUnwindInfo[0] : NULL; }
+-        virtual ObjectFile::UnwindInfo::iterator        endUnwind()                                                { return fHasCompactUnwindInfo ? &amp;fSingleUnwindInfo[1] : NULL; }
+-        virtual ObjectFile::Reference*                                getLSDA();
+-        virtual ObjectFile::Reference*                                getFDE();
+-        virtual Atom*                                                                getPersonalityPointer();
+-        virtual void                                                                setCompactUnwindEncoding(uint64_t ehAtomAddress);
+-
+-        uint32_t                                                                        fStabsStartIndex;
+-        uint32_t                                                                        fStabsCount;
+-        uint32_t                                                                        fOrdinal;
+-        ObjectFile::UnwindInfo                                                fSingleUnwindInfo[1];
+-        bool                                                                                fHasCompactUnwindInfo;
+-};
+-
+-
+ ObjectFile::Reference* BaseAtom::getLSDA()
+ {
+         const uint8_t groupKind = this-&gt;getLSDAReferenceKind(); 
</ins></span></pre>
</div>
</div>

</body>
</html>