Revision: 91402 https://trac.macports.org/changeset/91402 Author: jeremyhu@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}