[91402] trunk/dports

jeremyhu at macports.org jeremyhu at macports.org
Sat Mar 31 11:44:50 PDT 2012


Revision: 91402
          https://trac.macports.org/changeset/91402
Author:   jeremyhu at macports.org
Date:     2012-03-31 11:44:50 -0700 (Sat, 31 Mar 2012)
Log Message:
-----------
ld64, clang-*, llvm-*, dragonegg-3.1: Support building +universal

clang and llvm ports now have a +assertions variant which is off by
default on released versions and on by default for development versions.
Turing off assertions has noticable performance gains for JIT, #33749

llvm 3.1 ports have been updated to trunk r153754

Added myself as co-maintainer of ld64
${prefix}/bin/ld will no longer crash when executed directly on machines
without a host libLTO.dylib

Revision Links:
--------------
    https://trac.macports.org/changeset/153754

Modified Paths:
--------------
    trunk/dports/devel/ld64/Portfile
    trunk/dports/lang/clang-2.9/Portfile
    trunk/dports/lang/clang-3.0/Portfile
    trunk/dports/lang/clang-3.1/Portfile
    trunk/dports/lang/dragonegg-3.1/Portfile
    trunk/dports/lang/llvm-2.9/Portfile
    trunk/dports/lang/llvm-3.0/Portfile
    trunk/dports/lang/llvm-3.1/Portfile

Modified: trunk/dports/devel/ld64/Portfile
===================================================================
--- trunk/dports/devel/ld64/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/devel/ld64/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -10,17 +10,16 @@
 
 name                    ld64
 version                 128.2
-revision                2
+revision                3
 set llvm_version        3.0
 categories              devel
-maintainers             mfeiri
+maintainers             mfeiri jeremyhu
 homepage                http://opensource.apple.com/source/${name}/
 master_sites            http://opensource.apple.com/tarballs/${name}/
 license                 APSL-2.0
 depends_build           port:llvm-${llvm_version} port:libunwind-headers \
                         path:include/mach-o/dyld_priv.h:dyld-headers \
                         path:include/mach-o/arm/reloc.h:cctools-headers
-universal_variant       no
 description             ld64 is the new mach-o linker
 long_description        ld64 combines several object files and libraries, \
                         resolves references, and produces an ouput file.
@@ -57,8 +56,12 @@
 }
 
 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 -p ${destroot}${prefix}/libexec/ld64
+    file copy ${destroot}${prefix}/bin/ld ${destroot}${prefix}/libexec/ld64/ld
     system "install_name_tool -change ${prefix}/libexec/llvm-${llvm_version}/lib/libLTO.dylib \
-            @executable_path/../lib/libLTO.dylib ${destroot}${prefix}/bin/ld"
+            @executable_path/../lib/libLTO.dylib ${destroot}${prefix}/libexec/ld64/ld"
 
     if {${os.major} >= 10} {
         file rename ${destroot}${prefix}/bin/libprunetrie.a ${destroot}${prefix}/lib/libprunetrie.a
@@ -76,6 +79,7 @@
 
 platform darwin 8 {
     version             62.1
+    revision            1
     checksums           rmd160 5b53ecb7b7a7e40e7420192fdf609e43151a736a \
                         sha256 82ccb66eb5a452b8bb47771ebbdb73bed7e8824e3cbd58fa2d6d6fc91ca26b87
     depends_build       port:llvm-${llvm_version}
@@ -83,7 +87,7 @@
 
 platform darwin 9 {
     version             85.2.1
-    revision            3
+    revision            4
     checksums           rmd160 42c80bd4ad6e9f96a757245e6a2b95084c009ff1 \
                         sha256 4bcbcbdfd62efdc46c51700b8f5dae2cbd1638e9e50f649d5c7f242d32fca804
     depends_build       port:llvm-${llvm_version}
@@ -92,7 +96,7 @@
 
 platform darwin 10 {
     version             127.2
-    revision            3
+    revision            4
     checksums           rmd160  8ee709341549a1944732daef6ebab7ef1acfcc6e \
                         sha256  97b75547b2bd761306ab3e15ae297f01e7ab9760b922bc657f4ef72e4e052142
 }

Modified: trunk/dports/lang/clang-2.9/Portfile
===================================================================
--- trunk/dports/lang/clang-2.9/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/clang-2.9/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -4,7 +4,7 @@
 PortGroup select        1.0
 
 set llvm_version        2.9
-revision                7
+revision                8
 name                    clang-${llvm_version}
 set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
@@ -31,7 +31,6 @@
 depends_run             port:clang_select
 
 default_variants        +analyzer
-universal_variant       no
 
 #fetch.type              svn
 #svn.revision            146339
@@ -39,6 +38,7 @@
 #set compiler_rt_rev     ${svn.revision}
 #worksrcdir              release_29
 #svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/${worksrcdir}
+#default_variants-append +assertions
 
 version                 ${llvm_version}
 set compiler_rt_rev     128674
@@ -60,20 +60,41 @@
 
 build.target            clang-only
 destroot.target         install-clang
-build.env-append        REQUIRE_RTTI=1
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
 configure.cppflags
 configure.ldflags
 configure.pre_args-delete --prefix=${prefix}
 configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
-                        --enable-optimized --enable-assertions --disable-profiling \
+                        --enable-optimized --disable-profiling \
                         --enable-debug-symbols --disable-debug-runtime \
                         --prefix="${sub_prefix}"
 
 select.group    clang
 select.file     ${filespath}/mp-${name}
 
-build.args-append VERBOSE=1
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
 
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
 platform darwin {
     depends_run-append      port:ld64
 
@@ -154,7 +175,7 @@
     }
 
     # http://trac.macports.org/ticket/33207
-    ln -s ${prefix}/bin/ld ${sub_prefix}/bin/ld
+    ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
 
     system "install_name_tool -id ${sub_prefix}/lib/libclang.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
     system "install_name_tool -change @executable_path/../lib/libLLVM-${llvm_version}svn.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}svn.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"

Modified: trunk/dports/lang/clang-3.0/Portfile
===================================================================
--- trunk/dports/lang/clang-3.0/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/clang-3.0/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -4,7 +4,7 @@
 PortGroup select        1.0
 
 set llvm_version        3.0
-revision                6
+revision                7
 name                    clang-${llvm_version}
 set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
@@ -31,7 +31,6 @@
 depends_run             port:clang_select
 
 default_variants        +analyzer
-universal_variant       no
 
 #fetch.type              svn
 #svn.revision            146339
@@ -39,6 +38,7 @@
 #set compiler_rt_rev     ${svn.revision}
 #worksrcdir              release_30
 #svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/${worksrcdir}
+#default_variants-append +assertions
 
 version                 ${llvm_version}
 set compiler_rt_rev     142041
@@ -60,20 +60,41 @@
 
 build.target            clang-only
 destroot.target         install-clang
-build.env-append        REQUIRE_RTTI=1
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
 configure.cppflags
 configure.ldflags
 configure.pre_args-delete --prefix=${prefix}
 configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
-                        --enable-optimized --enable-assertions --disable-profiling \
+                        --enable-optimized --disable-profiling \
                         --enable-debug-symbols --disable-debug-runtime \
                         --prefix="${sub_prefix}"
 
 select.group    clang
 select.file     ${filespath}/mp-${name}
 
-build.args-append VERBOSE=1
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
 
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
 platform darwin {
     depends_run-append      port:ld64
 
@@ -152,7 +173,7 @@
     }
 
     # http://trac.macports.org/ticket/33207
-    ln -s ${prefix}/bin/ld ${sub_prefix}/bin/ld
+    ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
 
     system "install_name_tool -id ${sub_prefix}/lib/libclang.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
     system "install_name_tool -change @executable_path/../lib/libLLVM-${llvm_version}svn.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}svn.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"

Modified: trunk/dports/lang/clang-3.1/Portfile
===================================================================
--- trunk/dports/lang/clang-3.1/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/clang-3.1/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -31,14 +31,14 @@
 depends_run             port:clang_select
 
 default_variants        +analyzer
-universal_variant       no
 
 fetch.type              svn
-svn.revision            153370
+svn.revision            153754
 version                 ${llvm_version}-r${svn.revision}
 set compiler_rt_rev     ${svn.revision}
 worksrcdir              trunk
 svn.url                 http://llvm.org/svn/llvm-project/llvm/trunk
+default_variants-append +assertions
 
 #version                 ${llvm_version}
 #set compiler_rt_rev     150641
@@ -52,20 +52,41 @@
 
 build.target            clang-only
 destroot.target         install-clang
-build.env-append        REQUIRE_RTTI=1
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
 configure.cppflags
 configure.ldflags
 configure.pre_args-delete --prefix=${prefix}
 configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
-                        --enable-optimized --enable-assertions --disable-profiling \
+                        --enable-optimized --disable-profiling \
                         --enable-debug-symbols --disable-debug-runtime \
                         --prefix="${sub_prefix}"
 
 select.group    clang
 select.file     ${filespath}/mp-${name}
 
-build.args-append VERBOSE=1
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
 
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
 platform darwin {
     depends_run-append      port:ld64
 
@@ -144,7 +165,7 @@
     }
 
     # http://trac.macports.org/ticket/33207
-    ln -s ${prefix}/bin/ld ${sub_prefix}/bin/ld
+    ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
 
     system "install_name_tool -id ${sub_prefix}/lib/libclang.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"
     system "install_name_tool -change @executable_path/../lib/libLLVM-${llvm_version}svn.dylib ${sub_prefix}/lib/libLLVM-${llvm_version}svn.dylib ${destroot}${sub_prefix}/lib/libclang.dylib"

Modified: trunk/dports/lang/dragonegg-3.1/Portfile
===================================================================
--- trunk/dports/lang/dragonegg-3.1/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/dragonegg-3.1/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -25,7 +25,7 @@
 depends_run             port:gcc_select
 
 fetch.type              svn
-svn.revision            153370
+svn.revision            153754
 version                 ${llvm_version}-r${svn.revision}
 worksrcdir              trunk
 svn.url                 http://llvm.org/svn/llvm-project/dragonegg/trunk

Modified: trunk/dports/lang/llvm-2.9/Portfile
===================================================================
--- trunk/dports/lang/llvm-2.9/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/llvm-2.9/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -4,7 +4,7 @@
 PortGroup select        1.0
 
 set llvm_version        2.9
-revision                3
+revision                4
 name                    llvm-${llvm_version}
 set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/${name}
@@ -31,6 +31,7 @@
 #version                 ${llvm_version}-r${svn.revision}
 #worksrcdir              release_29
 #svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/${worksrcdir}
+#default_variants-append +assertions
 
 version                 ${llvm_version}
 epoch                   1
@@ -42,22 +43,41 @@
                     rmd160  caeaa067fda1eb34196b356a087645f83731cfb7 \
                     sha256  661236cfa17428b48cfa9cbb9909f7569c64b8ecd219fd91dbc00e3b557b3779
 
-universal_variant       no
-
-build.env-append        REQUIRE_RTTI=1
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
 configure.cppflags
 configure.ldflags
 configure.pre_args-delete --prefix=${prefix}
 configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
-                        --enable-optimized --enable-assertions --disable-profiling \
+                        --enable-optimized --disable-profiling \
                         --enable-debug-symbols --disable-debug-runtime \
                         --prefix="${sub_prefix}"
 
 select.group    llvm
 select.file     ${filespath}/mp-${name}
 
-build.args-append VERBOSE=1
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
 
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
 platform darwin {
     if {${build_arch} == "i386" } {
         configure.pre_args-append --build=i686-apple-darwin${os.major}

Modified: trunk/dports/lang/llvm-3.0/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.0/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/llvm-3.0/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -4,7 +4,7 @@
 PortGroup select        1.0
 
 set llvm_version        3.0
-revision                3
+revision                4
 name                    llvm-${llvm_version}
 set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/${name}
@@ -31,6 +31,7 @@
 #version                 ${llvm_version}-r${svn.revision}
 #worksrcdir              release_30
 #svn.url                 http://llvm.org/svn/llvm-project/llvm/branches/${worksrcdir}
+#default_variants-append +assertions
 
 version                 ${llvm_version}
 epoch                   1
@@ -42,22 +43,41 @@
                     rmd160  85211cafbed1c5d838ac54669017b5298613f975 \
                     sha256  519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477
 
-universal_variant       no
-
-build.env-append        REQUIRE_RTTI=1
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
 configure.cppflags
 configure.ldflags
 configure.pre_args-delete --prefix=${prefix}
 configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
-                        --enable-optimized --enable-assertions --disable-profiling \
+                        --enable-optimized --disable-profiling \
                         --enable-debug-symbols --disable-debug-runtime \
                         --prefix="${sub_prefix}"
 
 select.group    llvm
 select.file     ${filespath}/mp-${name}
 
-build.args-append VERBOSE=1
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
 
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
 platform darwin {
     if {${build_arch} == "i386" } {
         configure.pre_args-append --build=i686-apple-darwin${os.major}

Modified: trunk/dports/lang/llvm-3.1/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.1/Portfile	2012-03-31 18:44:32 UTC (rev 91401)
+++ trunk/dports/lang/llvm-3.1/Portfile	2012-03-31 18:44:50 UTC (rev 91402)
@@ -26,10 +26,11 @@
 depends_run             bin:perl:perl5 port:llvm_select
 
 fetch.type              svn
-svn.revision            153370
+svn.revision            153754
 version                 ${llvm_version}-r${svn.revision}
 worksrcdir              trunk
 svn.url                 http://llvm.org/svn/llvm-project/llvm/trunk
+default_variants-append +assertions
 
 #version                 ${llvm_version}
 #epoch                   1
@@ -38,22 +39,41 @@
 #distfiles               llvm-${version}${extract.suffix}
 #worksrcdir              llvm-${version}.src
 
-universal_variant       no
-
-build.env-append        REQUIRE_RTTI=1
+build.env-append        VERBOSE=1 REQUIRE_RTTI=1
+destroot.env-append     VERBOSE=1 REQUIRE_RTTI=1
 configure.cppflags
 configure.ldflags
 configure.pre_args-delete --prefix=${prefix}
 configure.args          --enable-bindings=none --enable-libffi --enable-shared --enable-jit \
-                        --enable-optimized --enable-assertions --disable-profiling \
+                        --enable-optimized --disable-profiling \
                         --enable-debug-symbols --disable-debug-runtime \
                         --prefix="${sub_prefix}"
 
 select.group    llvm
 select.file     ${filespath}/mp-${name}
 
-build.args-append VERBOSE=1
+variant universal {
+    build.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
+    destroot.env-append \
+        UNIVERSAL=1 \
+        UNIVERSAL_ARCH="${universal_archs}"
 
+    post-extract {
+        # workaround a bug in Apple's shipped gcc driver-driver, patched in
+        # ours with driverdriver-num_infiles.patch
+        if {${configure.compiler} == "gcc-4.0" ||
+            ${configure.compiler} == "gcc-4.2"} {
+            system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
+        }
+    }
+}
+
+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
+    configure.args-append --enable-assertions
+}
+
 platform darwin {
     if {${build_arch} == "i386" } {
         configure.pre_args-append --build=i686-apple-darwin${os.major}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120331/545af9c4/attachment-0001.html>


More information about the macports-changes mailing list