[91469] trunk/dports/lang
jeremyhu at macports.org
jeremyhu at macports.org
Mon Apr 2 12:47:48 PDT 2012
Revision: 91469
https://trac.macports.org/changeset/91469
Author: jeremyhu at macports.org
Date: 2012-04-02 12:47:47 -0700 (Mon, 02 Apr 2012)
Log Message:
-----------
{clang,llvm}-*: Additional fixes for Tiger and Leopard
Now that apple-gcc42 builds on Tiger, we can use it to build clang on Tiger.
This should allow us to now suport +universal on Tiger.
We also now use apple-gcc42 on Leopard because g++-4.0 produces some C++ that
may not link, and the older host gcc-4.2 has some issues with trunk, so just
use the newer apple-gcc42 on those older platforms.
llvm-3.1 does not currently build ppc
clang-3.1 still does not build on Leopard and Tiger, but this brings us closer.
Modified Paths:
--------------
trunk/dports/lang/clang-2.9/Portfile
trunk/dports/lang/clang-3.0/Portfile
trunk/dports/lang/clang-3.1/Portfile
trunk/dports/lang/llvm-2.9/Portfile
trunk/dports/lang/llvm-3.0/Portfile
trunk/dports/lang/llvm-3.1/Portfile
Added Paths:
-----------
trunk/dports/lang/clang-3.1/files/tiger.patch
trunk/dports/lang/llvm-3.1/files/tiger.patch
Modified: trunk/dports/lang/clang-2.9/Portfile
===================================================================
--- trunk/dports/lang/clang-2.9/Portfile 2012-04-02 19:21:10 UTC (rev 91468)
+++ trunk/dports/lang/clang-2.9/Portfile 2012-04-02 19:47:47 UTC (rev 91469)
@@ -73,13 +73,23 @@
select.group clang
select.file ${filespath}/mp-${name}
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+if {${configure.compiler} == "gcc-4.0"} {
+ configure.compiler gcc-4.2
+ if {![file exists ${configure.cc}]} {
+ depends_build-append port:apple-gcc42
+ configure.compiler apple-gcc-4.2
+ }
+}
+
variant universal {
build.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
destroot.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
post-extract {
# workaround a bug in Apple's shipped gcc driver-driver, patched in
@@ -107,19 +117,15 @@
}
platform darwin 8 {
- configure.args-delete --enable-shared --enable-jit
- configure.compiler macports-gcc-4.6
- depends_run-append port:gcc46 port:gmake
- depends_skip_archcheck-append gcc46 gmake
-
# Tiger's DevTools make has issues with the nested ifs in compiler-rt
+ depends_run-append port:gmake
+ depends_skip_archcheck-append gmake
build.cmd ${prefix}/bin/gmake
destroot.cmd ${prefix}/bin/gmake
- # It's not that we can't do it universal, it's that the host toolchains
- # won't link clang, so universal gives us a bootstrap issue since only
- # apple-gcc42, llvm-gcc42, and clang-* can be used to build universal
- universal_variant no
+ post-configure {
+ reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+ }
}
post-extract {
Modified: trunk/dports/lang/clang-3.0/Portfile
===================================================================
--- trunk/dports/lang/clang-3.0/Portfile 2012-04-02 19:21:10 UTC (rev 91468)
+++ trunk/dports/lang/clang-3.0/Portfile 2012-04-02 19:47:47 UTC (rev 91469)
@@ -73,13 +73,23 @@
select.group clang
select.file ${filespath}/mp-${name}
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+if {${configure.compiler} == "gcc-4.0"} {
+ configure.compiler gcc-4.2
+ if {![file exists ${configure.cc}]} {
+ depends_build-append port:apple-gcc42
+ configure.compiler apple-gcc-4.2
+ }
+}
+
variant universal {
build.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
destroot.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
post-extract {
# workaround a bug in Apple's shipped gcc driver-driver, patched in
@@ -107,19 +117,15 @@
}
platform darwin 8 {
- configure.args-delete --enable-shared --enable-jit
- configure.compiler macports-gcc-4.6
- depends_run-append port:gcc46 port:gmake
- depends_skip_archcheck-append gcc46 gmake
-
# Tiger's DevTools make has issues with the nested ifs in compiler-rt
+ depends_run-append port:gmake
+ depends_skip_archcheck-append gmake
build.cmd ${prefix}/bin/gmake
destroot.cmd ${prefix}/bin/gmake
- # It's not that we can't do it universal, it's that the host toolchains
- # won't link clang, so universal gives us a bootstrap issue since only
- # apple-gcc42, llvm-gcc42, and clang-* can be used to build universal
- universal_variant no
+ post-configure {
+ reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+ }
}
post-extract {
Modified: trunk/dports/lang/clang-3.1/Portfile
===================================================================
--- trunk/dports/lang/clang-3.1/Portfile 2012-04-02 19:21:10 UTC (rev 91468)
+++ trunk/dports/lang/clang-3.1/Portfile 2012-04-02 19:47:47 UTC (rev 91469)
@@ -65,13 +65,29 @@
select.group clang
select.file ${filespath}/mp-${name}
+patchfiles tiger.patch
+patch.pre_args -p1
+
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+if {${configure.compiler} == "gcc-4.0"} {
+ configure.compiler gcc-4.2
+ if {![file exists ${configure.cc}]} {
+ depends_build-append port:apple-gcc42
+ configure.compiler apple-gcc-4.2
+ }
+}
+
+# linking fails for ppc
+supported_archs i386 x86_64
+
variant universal {
build.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
destroot.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
post-extract {
# workaround a bug in Apple's shipped gcc driver-driver, patched in
@@ -99,19 +115,15 @@
}
platform darwin 8 {
- configure.args-delete --enable-shared --enable-jit
- configure.compiler macports-gcc-4.6
- depends_run-append port:gcc46 port:gmake
- depends_skip_archcheck-append gcc46 gmake
-
# Tiger's DevTools make has issues with the nested ifs in compiler-rt
+ depends_run-append port:gmake
+ depends_skip_archcheck-append gmake
build.cmd ${prefix}/bin/gmake
destroot.cmd ${prefix}/bin/gmake
- # It's not that we can't do it universal, it's that the host toolchains
- # won't link clang, so universal gives us a bootstrap issue since only
- # apple-gcc42, llvm-gcc42, and clang-* can be used to build universal
- universal_variant no
+ post-configure {
+ reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+ }
}
post-extract {
Added: trunk/dports/lang/clang-3.1/files/tiger.patch
===================================================================
--- trunk/dports/lang/clang-3.1/files/tiger.patch (rev 0)
+++ trunk/dports/lang/clang-3.1/files/tiger.patch 2012-04-02 19:47:47 UTC (rev 91469)
@@ -0,0 +1,32 @@
+diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc
+index c9ec9fc..8cc4f41 100644
+--- a/lib/Support/Unix/Signals.inc
++++ b/lib/Support/Unix/Signals.inc
+@@ -267,6 +267,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal() {
+ AddSignalHandler(PrintStackTrace, 0);
+
+ #if defined(__APPLE__)
++
++/* These aren't defined in the 10.4 SDK, so provide them here */
++#ifndef EXC_MASK_CRASH
++#define EXC_MASK_CRASH 0x400
++#endif
++#ifndef MACH_EXCEPTION_CODES
++#define MACH_EXCEPTION_CODES 0x80000000
++#endif
++
+ // Environment variable to disable any kind of crash dialog.
+ if (getenv("LLVM_DISABLE_CRASH_REPORT")) {
+ mach_port_t self = mach_task_self();
+
+--- a/tools/clang/tools/libclang/CIndex.cpp.orig 2012-04-01 22:38:40.000000000 -0700
++++ b/tools/clang/tools/libclang/CIndex.cpp 2012-04-01 22:39:17.000000000 -0700
+@@ -5754,7 +5754,7 @@ void SetSafetyThreadStackSize(unsigned V
+
+ void clang::setThreadBackgroundPriority() {
+ // FIXME: Move to llvm/Support and make it cross-platform.
+-#ifdef __APPLE__
++#if defined(__APPLE__) && defined(PRIO_DARWIN_THREAD) && defined(PRIO_DARWIN_BG)
+ setpriority(PRIO_DARWIN_THREAD, 0, PRIO_DARWIN_BG);
+ #endif
+ }
Modified: trunk/dports/lang/llvm-2.9/Portfile
===================================================================
--- trunk/dports/lang/llvm-2.9/Portfile 2012-04-02 19:21:10 UTC (rev 91468)
+++ trunk/dports/lang/llvm-2.9/Portfile 2012-04-02 19:47:47 UTC (rev 91469)
@@ -56,13 +56,23 @@
select.group llvm
select.file ${filespath}/mp-${name}
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+if {${configure.compiler} == "gcc-4.0"} {
+ configure.compiler gcc-4.2
+ if {![file exists ${configure.cc}]} {
+ depends_build-append port:apple-gcc42
+ configure.compiler apple-gcc-4.2
+ }
+}
+
variant universal {
build.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
destroot.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
post-extract {
# workaround a bug in Apple's shipped gcc driver-driver, patched in
@@ -101,7 +111,9 @@
}
platform darwin 8 {
- configure.args-delete --enable-shared --enable-jit
+ post-configure {
+ reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+ }
}
variant ocaml description {Enable generation of OCaml binding} {
Modified: trunk/dports/lang/llvm-3.0/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.0/Portfile 2012-04-02 19:21:10 UTC (rev 91468)
+++ trunk/dports/lang/llvm-3.0/Portfile 2012-04-02 19:47:47 UTC (rev 91469)
@@ -56,13 +56,23 @@
select.group llvm
select.file ${filespath}/mp-${name}
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+if {${configure.compiler} == "gcc-4.0"} {
+ configure.compiler gcc-4.2
+ if {![file exists ${configure.cc}]} {
+ depends_build-append port:apple-gcc42
+ configure.compiler apple-gcc-4.2
+ }
+}
+
variant universal {
build.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
destroot.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
post-extract {
# workaround a bug in Apple's shipped gcc driver-driver, patched in
@@ -101,7 +111,9 @@
}
platform darwin 8 {
- configure.args-delete --enable-shared --enable-jit
+ post-configure {
+ reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+ }
}
variant ocaml description {Enable generation of OCaml binding} {
Modified: trunk/dports/lang/llvm-3.1/Portfile
===================================================================
--- trunk/dports/lang/llvm-3.1/Portfile 2012-04-02 19:21:10 UTC (rev 91468)
+++ trunk/dports/lang/llvm-3.1/Portfile 2012-04-02 19:47:47 UTC (rev 91469)
@@ -52,13 +52,29 @@
select.group llvm
select.file ${filespath}/mp-${name}
+patchfiles tiger.patch
+patch.pre_args -p1
+
+# g++-4.0 fails to build some of the newer C++ for ppc
+# Intel looks ok, but I prefer using gcc-4.2 for consistency
+if {${configure.compiler} == "gcc-4.0"} {
+ configure.compiler gcc-4.2
+ if {![file exists ${configure.cc}]} {
+ depends_build-append port:apple-gcc42
+ configure.compiler apple-gcc-4.2
+ }
+}
+
+# linking fails for ppc
+supported_archs i386 x86_64
+
variant universal {
build.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
destroot.env-append \
UNIVERSAL=1 \
- UNIVERSAL_ARCH="${universal_archs}"
+ UNIVERSAL_ARCH="[get_canonical_archs]"
post-extract {
# workaround a bug in Apple's shipped gcc driver-driver, patched in
@@ -97,7 +113,9 @@
}
platform darwin 8 {
- configure.args-delete --enable-shared --enable-jit
+ post-configure {
+ reinplace "/^RPATH/s/=.*/=/" ${worksrcpath}/Makefile.config
+ }
}
variant ocaml description {Enable generation of OCaml binding} {
Added: trunk/dports/lang/llvm-3.1/files/tiger.patch
===================================================================
--- trunk/dports/lang/llvm-3.1/files/tiger.patch (rev 0)
+++ trunk/dports/lang/llvm-3.1/files/tiger.patch 2012-04-02 19:47:47 UTC (rev 91469)
@@ -0,0 +1,21 @@
+diff --git a/lib/Support/Unix/Signals.inc b/lib/Support/Unix/Signals.inc
+index c9ec9fc..8cc4f41 100644
+--- a/lib/Support/Unix/Signals.inc
++++ b/lib/Support/Unix/Signals.inc
+@@ -267,6 +267,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal() {
+ AddSignalHandler(PrintStackTrace, 0);
+
+ #if defined(__APPLE__)
++
++/* These aren't defined in the 10.4 SDK, so provide them here */
++#ifndef EXC_MASK_CRASH
++#define EXC_MASK_CRASH 0x400
++#endif
++#ifndef MACH_EXCEPTION_CODES
++#define MACH_EXCEPTION_CODES 0x80000000
++#endif
++
+ // Environment variable to disable any kind of crash dialog.
+ if (getenv("LLVM_DISABLE_CRASH_REPORT")) {
+ mach_port_t self = mach_task_self();
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120402/f0e83bfe/attachment-0001.html>
More information about the macports-changes
mailing list