[64764] trunk/dports/lang/ghc

gwright at macports.org gwright at macports.org
Mon Mar 15 09:37:19 PDT 2010


Revision: 64764
          http://trac.macports.org/changeset/64764
Author:   gwright at macports.org
Date:     2010-03-15 09:37:19 -0700 (Mon, 15 Mar 2010)
Log Message:
-----------
Add support for building under Snow Leopard, both 32 and 64 bit.

Modified Paths:
--------------
    trunk/dports/lang/ghc/Portfile
    trunk/dports/lang/ghc/files/patch-mk-cabal.mk-debug.diff

Added Paths:
-----------
    trunk/dports/lang/ghc/files/patch-snowleopard-compiler-cmm-CLabel.hs.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-compiler-main-DynFlags.hs.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-ghc-ghc-bin.cabal.in.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile-debug.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.local.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-main-DriverPipeline.hs.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile-debug.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-ghc.wrapper.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-includes-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-libffi-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile-debug.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-cabal-bin.hs.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-haskeline-haskeline.cabal.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk-debug.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-target.mk.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genapply-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genprimopcode-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-hsc2hs-hsc2hs.wrapper.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-rts-Linker.c.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-rts-Makefile.diff
    trunk/dports/lang/ghc/files/patch-snowleopard-rts-package.conf.in.diff

Modified: trunk/dports/lang/ghc/Portfile
===================================================================
--- trunk/dports/lang/ghc/Portfile	2010-03-15 16:31:33 UTC (rev 64763)
+++ trunk/dports/lang/ghc/Portfile	2010-03-15 16:37:19 UTC (rev 64764)
@@ -1,10 +1,12 @@
 # $Id$
 
-PortSystem 1.0
+PortSystem	1.0
+PortGroup	archcheck 1.0
 
 name		ghc
 set canonicalname	ghc
 version		6.10.4
+revision	2
 categories	lang haskell
 maintainers	gwright
 platforms	darwin
@@ -47,9 +49,6 @@
 # ghc does not support a universal build:
 universal_variant	no
 
-# On (at least) i386/Tiger, the file compiler/ghc.cabal.in needs to be
-# patched so it can find the GMP library.
-#
 patchfiles	patch-configure.ac.diff			\
 		patch-aclocal.m4.diff			\
 		patch-compiler-ghc.cabal.in.diff	\
@@ -69,16 +68,30 @@
 		port:ncursesw	\
 		port:libiconv
 
+archcheck.files	lib/libgmp.dylib	\
+		lib/libiconv.dylib	\
+		lib/libncursesw.dylib
+
+variant maintainer_debug requires cabal_configure_debug description {Verbose logging and save all temporary files} { }
+
 variant cabal_configure_debug description {Add verbose debugging to cabal configure commands} {
-	patchfiles-append	patch-compiler-Makefile-debug.diff	\
-				patch-ghc-Makefile-debug.diff		\
-				patch-libraries-Makefile-debug.diff	\
-				patch-mk-cabal.mk-debug.diff
 
-	patchfiles-delete	patch-compiler-Makefile.diff	\
-				patch-ghc-Makefile.diff		\
-				patch-libraries-Makefile.diff	\
-				patch-mk-cabal.mk.diff
+		patchfiles-delete	patch-compiler-Makefile.diff	\
+					patch-ghc-Makefile.diff		\
+					patch-libraries-Makefile.diff	\
+					patch-mk-cabal.mk.diff
+
+		if { ${configure.build_arch} == "i386" && ${os.platform} == "darwin" && ${os.major} == 10 } {
+			patchfiles-append	patch-snowleopard-i386-compiler-Makefile-debug.diff	\
+						patch-snowleopard-i386-ghc-Makefile-debug.diff		\
+						patch-snowleopard-i386-libraries-Makefile-debug.diff	\
+						patch-snowleopard-i386-mk-cabal.mk-debug.diff
+		} else {
+			patchfiles-append	patch-compiler-Makefile-debug.diff	\
+						patch-ghc-Makefile-debug.diff		\
+						patch-libraries-Makefile-debug.diff	\
+						patch-mk-cabal.mk-debug.diff
+		}
 }
 
 # Yes, it some situations (-fvia-C) we really need perl
@@ -93,20 +106,6 @@
 
 worksrcdir	${canonicalname}-${version}
 
-platform darwin 7 {
-		pre-fetch {
-			return -code error "${canonicalname} is not supported on Mac OS X 10.3.x (Panther)"
-		}
-}
-
-
-platform darwin 10 {
-		pre-fetch {
-			return -code error "${canonicalname} is not yet supported on Mac OS X 10.6.x (SnowLeopard)"
-		}
-}
-
-
 platform darwin 8 powerpc {
 		global ghc_bootversion
 		set ghc_bootversion	6.10.1
@@ -115,9 +114,10 @@
 
 		distfiles-append	${canonicalname}-${ghc_bootversion}-darwin-ppc-tiger-bootstrap.tar.bz2:bootstrap
 
-                checksums-append	${canonicalname}-${ghc_bootversion}-darwin-ppc-tiger-bootstrap.tar.bz2 md5     511f4bec375b51aaa82de999529916ae		\
-                      sha1    cb6974a680168246c6e13a92818b39c559d7a2b4	\
-                      rmd160  be60cfffc0ed223fb39ce2fe40ad501486564f0e
+                checksums-append	${canonicalname}-${ghc_bootversion}-darwin-ppc-tiger-bootstrap.tar.bz2 \
+					md5     511f4bec375b51aaa82de999529916ae		\
+                      			sha1    cb6974a680168246c6e13a92818b39c559d7a2b4	\
+                      			rmd160  be60cfffc0ed223fb39ce2fe40ad501486564f0e
 
 		extract.only		${canonicalname}-${version}-src.tar.bz2 \
 					${canonicalname}-${version}-src-extralibs.tar.bz2 \
@@ -142,7 +142,8 @@
 
 		distfiles-append	${canonicalname}-${ghc_bootversion}-darwin-i386-tiger-bootstrap-rev1.tar.bz2:bootstrap
 
-		checksums-append	${canonicalname}-${ghc_bootversion}-darwin-i386-tiger-bootstrap-rev1.tar.bz2 md5 f01663cecefd50b5f1e1f524f49cd6df
+		checksums-append	${canonicalname}-${ghc_bootversion}-darwin-i386-tiger-bootstrap-rev1.tar.bz2 \
+					md5 f01663cecefd50b5f1e1f524f49cd6df
 
 		extract.only		${canonicalname}-${version}-src.tar.bz2 \
 					${canonicalname}-${version}-src-extralibs.tar.bz2 \
@@ -167,9 +168,10 @@
 
 		distfiles-append	${canonicalname}-${ghc_bootversion}-darwin-ppc-leopard-bootstrap.tar.bz2:bootstrap
 
-                checksums-append	${canonicalname}-${ghc_bootversion}-darwin-ppc-leopard-bootstrap.tar.bz2 md5     511f4bec375b51aaa82de999529916ae	\
-                        sha1    cb6974a680168246c6e13a92818b39c559d7a2b4\
-                        rmd160  be60cfffc0ed223fb39ce2fe40ad501486564f0e
+                checksums-append	${canonicalname}-${ghc_bootversion}-darwin-ppc-leopard-bootstrap.tar.bz2 \
+					md5     511f4bec375b51aaa82de999529916ae	\
+                        		sha1    cb6974a680168246c6e13a92818b39c559d7a2b4\
+                        		rmd160  be60cfffc0ed223fb39ce2fe40ad501486564f0e
 
 		extract.only		${canonicalname}-${version}-src.tar.bz2 \
 					${canonicalname}-${version}-src-extralibs.tar.bz2 \
@@ -194,7 +196,8 @@
 
 		distfiles-append	${canonicalname}-${ghc_bootversion}-darwin-i386-leopard-bootstrap.tar.bz2:bootstrap
 
-		checksums-append	${canonicalname}-${ghc_bootversion}-darwin-i386-leopard-bootstrap.tar.bz2 md5 f263cedef8bcbaa7e9014b3e06923583
+		checksums-append	${canonicalname}-${ghc_bootversion}-darwin-i386-leopard-bootstrap.tar.bz2 \
+					md5 f263cedef8bcbaa7e9014b3e06923583
 
 		extract.only		${canonicalname}-${version}-src.tar.bz2 \
 					${canonicalname}-${version}-src-extralibs.tar.bz2 \
@@ -211,6 +214,79 @@
 }
 
 
+platform darwin 10 {
+		global ghc_bootversion
+		set ghc_bootversion	6.10.4
+
+		master_sites-append	${homepage}/dist/${ghc_bootversion}/:bootstrap
+
+		if { ${configure.build_arch} == "x86_64" } {
+			distfiles-append	${canonicalname}-${ghc_bootversion}-darwin-x86_64-snowleopard-macports-bootstrap.tar.bz2:bootstrap
+
+			checksums-append	${canonicalname}-${ghc_bootversion}-darwin-x86_64-snowleopard-macports-bootstrap.tar.bz2 \
+						md5     70c8743dc4d606904426146e0e6d7cdf \
+						sha1    bd6830318c522527b2c35a84724832d983054416 \
+						rmd160  bc67c499417e009428fe6bf90b86fda4f1ec3e9e
+
+			extract.only		${canonicalname}-${version}-src.tar.bz2 \
+						${canonicalname}-${version}-src-extralibs.tar.bz2 \
+						${canonicalname}-${ghc_bootversion}-darwin-x86_64-snowleopard-macports-bootstrap.tar.bz2
+
+		} elseif { ${configure.build_arch} == "i386" } {
+			distfiles-append	${canonicalname}-${ghc_bootversion}-darwin-i386-snowleopard-bootstrap.tar.bz2:bootstrap
+
+			checksums-append	${canonicalname}-${ghc_bootversion}-darwin-i386-snowleopard-bootstrap.tar.bz2 \
+						md5     fba9493ef1a1cb3f54274ab59f007725 \
+						sha1    cd30029d0c32b8e97ef31c81f0a9613586628c0f \
+						rmd160  d32bc2006ff9d56da1dfecce0eb8be780e81b8b9
+
+			patchfiles-delete	patch-compiler-Makefile.local.diff		\
+						patch-libraries-cabal-bin.hs.diff		\
+						patch-mk-target.mk.diff
+
+			patchfiles-append	patch-snowleopard-i386-includes-Makefile.diff           	\
+						patch-snowleopard-i386-compiler-Makefile.local.diff             \
+						patch-snowleopard-i386-compiler-main-DriverPipeline.hs.diff     \
+						patch-snowleopard-i386-ghc-ghc.wrapper.diff                     \
+						patch-snowleopard-i386-libraries-cabal-bin.hs.diff              \
+						patch-snowleopard-i386-libraries-haskeline-haskeline.cabal.diff \
+						patch-snowleopard-i386-libffi-Makefile.diff                     \
+						patch-snowleopard-i386-mk-target.mk.diff                        \
+						patch-snowleopard-i386-utils-genapply-Makefile.diff             \
+						patch-snowleopard-i386-utils-genprimopcode-Makefile.diff        \
+						patch-snowleopard-i386-utils-hsc2hs-hsc2hs.wrapper.diff
+
+			if { !([variant_isset maintainer_debug] || [variant_isset cabal_configure_debug]) } {
+				patchfiles-delete	patch-compiler-Makefile.diff	\
+							patch-ghc-Makefile.diff		\
+							patch-libraries-Makefile.diff	\
+							patch-mk-cabal.mk.diff
+
+				patchfiles-append	patch-snowleopard-i386-compiler-Makefile.diff	\
+							patch-snowleopard-i386-ghc-Makefile.diff	\
+							patch-snowleopard-i386-libraries-Makefile.diff	\
+							patch-snowleopard-i386-mk-cabal.mk.diff
+			}
+
+			extract.only		${canonicalname}-${version}-src.tar.bz2 \
+						${canonicalname}-${version}-src-extralibs.tar.bz2 \
+						${canonicalname}-${ghc_bootversion}-darwin-i386-snowleopard-bootstrap.tar.bz2
+
+		} else {
+			# belt and braces approach:
+			return -code error "Unrecognized build architecture on Snow Leopard"
+		}
+
+		patchfiles-append	patch-snowleopard-compiler-cmm-CLabel.hs.diff		\
+					patch-snowleopard-compiler-main-DynFlags.hs.diff	\
+					patch-snowleopard-ghc-ghc-bin.cabal.in.diff		\
+					patch-snowleopard-rts-Linker.c.diff			\
+					patch-snowleopard-rts-Makefile.diff			\
+					patch-snowleopard-rts-package.conf.in.diff
+
+}
+
+
 post-extract {
      system "tar jxf ${distpath}/testsuite-${version}.tar.bz2 -C ${worksrcpath}" 
 }
@@ -253,7 +329,11 @@
 
 		set cfg [open "${workpath}/ghc-bootstrap/bin/ghc-pkg" w]
 		puts $cfg "#!/bin/sh"
-		puts $cfg "GHCPKGBIN=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/ghc-pkg.bin"
+		if {${ghc_bootversion} eq "6.10.4"} {
+			puts $cfg "GHCPKGBIN=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/ghc-pkg"
+		} else {
+			puts $cfg "GHCPKGBIN=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/ghc-pkg.bin"
+		}
 		puts $cfg "PKGCONF=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/package.conf"
 		puts $cfg "exec \$GHCPKGBIN --global-conf \$PKGCONF \${1+\"\$@\"}"
 		close $cfg
@@ -262,8 +342,12 @@
 
 		set cfg [open "${workpath}/ghc-bootstrap/bin/hsc2hs" w]
 		puts $cfg "#!/bin/sh"
-		puts $cfg "HSC2HSBIN=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/hsc2hs-bin"
-		if {${ghc_bootversion} eq "6.10.1"} {
+		if {${ghc_bootversion} eq "6.10.4"} {
+			puts $cfg "HSC2HSBIN=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/hsc2hs"
+		} else {
+			puts $cfg "HSC2HSBIN=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/hsc2hs-bin"
+		}
+		if {${ghc_bootversion} eq "6.10.1" || ${ghc_bootversion} eq "6.10.4"} {
 			puts $cfg "tflag=\"--template=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/hsc2hs-0.67/template-hsc.h\""
 		} else {
 			puts $cfg "tflag=\"--template=${workpath}/ghc-bootstrap/lib/ghc-${ghc_bootversion}/template-hsc.h\""
@@ -277,7 +361,11 @@
 		puts $cfg "        --)           break;;"
 		puts $cfg "    esac"
 		puts $cfg "done"
-		puts $cfg "exec \$HSC2HSBIN \$tflag \$HSC2HS_EXTRA -I${prefix}/include --lflag=\"-L${prefix}/lib\" \${1+\"\$@\"}"
+		if { ${configure.build_arch} == "i386" && ${os.platform} == "darwin" && ${os.major} == 10 } {
+			puts $cfg "exec \$HSC2HSBIN --cflag=\"-m32\" --lflag=\"-m32\" \$tflag \$HSC2HS_EXTRA -I${prefix}/include --lflag=\"-L${prefix}/lib\" \${1+\"\$@\"}"
+		} else {
+			puts $cfg "exec \$HSC2HSBIN \$tflag \$HSC2HS_EXTRA -I${prefix}/include --lflag=\"-L${prefix}/lib\" \${1+\"\$@\"}"
+		}
 		close $cfg
 
 		system "chmod +x ${workpath}/ghc-bootstrap/bin/hsc2hs"
@@ -287,13 +375,32 @@
 	  	puts $cfg "# Local configuration overrides for MacPorts"
 	  	puts $cfg "#"
 	  	puts $cfg "SRC_HC_OPTS += -I${prefix}/include -L${prefix}/lib"
+
+		if {[variant_isset maintainer_debug]} {
+			puts $cfg "SRC_HC_OPTS += -v -keep-tmp-files"
+		}
+
 	  	puts $cfg "EXTRA_HSC2HS_OPTS += -I${prefix}/include --lflag=\"-L${prefix}/lib\""
 	  	puts $cfg "EXTRA_LD_OPTS += -L${prefix}/lib"
 		puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --extra-include-dirs=${prefix}/include"
 		puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --extra-lib-dirs=${prefix}/lib"
+
 		if {[variant_isset cabal_configure_debug]} then {
 			puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --verbose=3"
 		}
+
+		if { ${configure.build_arch} == "i386" && ${os.platform} == "darwin" && ${os.major} == 10 } {
+			puts $cfg "SRC_HC_OPTS += -optP-m32 -optc-m32 -opta-m32 -optl-m32"
+			puts $cfg "GHC_CC_OPTS += -optP-m32 -optc-m32 -opta-m32 -optl-m32"
+
+			puts $cfg "EXTRA_HSC2HC_OPTS += -optc-m32 -opta-m32 -optl-m32"
+
+			puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --ghc-option=-optP-m32"
+			puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --ghc-option=-optc-m32"
+			puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --ghc-option=-opta-m32"
+			puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --ghc-option=-optl-m32"
+		}
+
 	  	close $cfg
 }
 
@@ -311,13 +418,20 @@
 configure.env-append	DYLD_FALLBACK_LIBRARY_PATH=${prefix}/lib	\
 			ac_cv_lib_elf_nlist=no
 
-configure.args  --prefix=${destroot}${prefix}				\
-		--datadir=${destroot}${prefix}/share/${canonicalname}-${version}	\
-		--with-gmp-includes=${prefix}/include			\
-		--with-gmp-libraries=${prefix}/lib			\
-		--with-ghc='${workpath}/${canonicalname}-bootstrap/bin/ghc' \
+configure.pre_args	--prefix=${destroot}${prefix}
+configure.args  --datadir=${destroot}${prefix}/share/${canonicalname}-${version}	\
+		--with-gmp-includes=${prefix}/include					\
+		--with-gmp-libraries=${prefix}/lib					\
+		--with-ghc='${workpath}/${canonicalname}-bootstrap/bin/ghc' 		\
 		--with-gcc=${configure.cc}
 
+# The configure script needs to be told the platform explicitly if we're on x86_64:
+if { ${configure.build_arch} == "x86_64" } {
+	configure.args-append	--build=x86_64-apple-darwin	\
+				--host=x86_64-apple-darwin	\
+				--target=x86_64-apple-darwin
+}
+
 build	{
 	system "cd ${worksrcpath} && env DYLD_FALLBACK_LIBRARY_PATH=${prefix}/lib ${build.cmd}"
 }
@@ -356,8 +470,6 @@
 	file rename ${destroot}${prefix}/lib/${canonicalname}-${version}/libffi.a ${destroot}${prefix}/lib/${canonicalname}-${version}/libHsLocalFfi.a
 	reinplace s|"ffi"|"HsLocalFfi"| ${destroot}${prefix}/lib/${canonicalname}-${version}/package.conf
 
-	file rename ${destroot}${prefix}/bin/haddock ${destroot}${prefix}/bin/haddock-${canonicalname}
-
         system "ranlib ${destroot}${prefix}/lib/ghc-${version}/*.a"
 
 	if {[file exists ${workpath}/${testlog}]} {

Modified: trunk/dports/lang/ghc/files/patch-mk-cabal.mk-debug.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-mk-cabal.mk-debug.diff	2010-03-15 16:31:33 UTC (rev 64763)
+++ trunk/dports/lang/ghc/files/patch-mk-cabal.mk-debug.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -1,5 +1,5 @@
---- mk/cabal.mk.sav	2009-07-19 14:46:18.000000000 -0400
-+++ mk/cabal.mk	2009-07-19 14:46:50.000000000 -0400
+--- mk/cabal.mk.sav	2009-12-04 14:45:24.000000000 -0500
++++ mk/cabal.mk	2009-12-04 14:51:29.000000000 -0500
 @@ -25,17 +25,21 @@
  
  default all: with-bootstrapping-compiler

Added: trunk/dports/lang/ghc/files/patch-snowleopard-compiler-cmm-CLabel.hs.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-compiler-cmm-CLabel.hs.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-compiler-cmm-CLabel.hs.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,13 @@
+--- compiler/cmm/CLabel.hs.sav	2010-03-09 16:45:23.000000000 -0500
++++ compiler/cmm/CLabel.hs	2010-03-09 16:53:31.000000000 -0500
+@@ -918,6 +918,10 @@
+ pprDynamicLinkerAsmLabel :: DynamicLinkerLabelInfo -> CLabel -> SDoc
+ 
+ #if x86_64_TARGET_ARCH && darwin_TARGET_OS
++pprDynamicLinkerAsmLabel CodeStub lbl
++  = char 'L' <> pprCLabel lbl <> text "$stub"
++pprDynamicLinkerAsmLabel SymbolPtr lbl
++  = char 'L' <> pprCLabel lbl <> text "$non_lazy_ptr"
+ pprDynamicLinkerAsmLabel GotSymbolPtr lbl
+   = pprCLabel lbl <> text "@GOTPCREL"
+ pprDynamicLinkerAsmLabel GotSymbolOffset lbl

Added: trunk/dports/lang/ghc/files/patch-snowleopard-compiler-main-DynFlags.hs.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-compiler-main-DynFlags.hs.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-compiler-main-DynFlags.hs.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,22 @@
+--- compiler/main/DynFlags.hs.sav	2010-03-09 16:45:42.000000000 -0500
++++ compiler/main/DynFlags.hs	2010-03-09 16:47:38.000000000 -0500
+@@ -577,9 +577,7 @@
+         hpcDir                  = ".hpc",
+ 
+         opt_L                   = [],
+-        opt_P                   = (if opt_PIC
+-                                   then ["-D__PIC__"]
+-                                   else []),
++        opt_P                   = [],
+         opt_F                   = [],
+         opt_c                   = [],
+         opt_a                   = [],
+@@ -2172,7 +2170,7 @@
+       --     in dynamic libraries.
+ 
+     | opt_PIC
+-        = ["-fno-common", "-D__PIC__"]
++        = ["-fno-common"]
+     | otherwise
+         = ["-mdynamic-no-pic"]
+ #elif mingw32_TARGET_OS

Added: trunk/dports/lang/ghc/files/patch-snowleopard-ghc-ghc-bin.cabal.in.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-ghc-ghc-bin.cabal.in.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-ghc-ghc-bin.cabal.in.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,8 @@
+--- ghc/ghc-bin.cabal.in.sav	2010-03-09 17:01:04.000000000 -0500
++++ ghc/ghc-bin.cabal.in	2010-03-09 17:02:23.000000000 -0500
+@@ -60,3 +60,5 @@
+ 
+     Extensions: CPP, PatternGuards, MagicHash
+ 
++    ld-options: -pagezero_size 0x1000
++

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile-debug.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile-debug.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile-debug.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,21 @@
+--- compiler/Makefile.sav	2009-12-04 14:44:53.000000000 -0500
++++ compiler/Makefile	2009-12-04 14:47:31.000000000 -0500
+@@ -186,10 +186,17 @@
+ 
+ boot.stage.%: $(PRIMOP_BITS) $(CONFIG_HS) $(PARSER_Y)
+ 	test -f $(STAGE3_PACKAGE_CONF) || echo "[]" > $(STAGE3_PACKAGE_CONF)
+-	$(CABAL) configure --distpref dist-stage$* \
++	$(CABAL) configure --verbose=3 --distpref dist-stage$* \
+ 	                   $(CONFIGURE_FLAGS_STAGE$*) \
+ 	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
+ 	                   $(COMMON_CONFIGURE_FLAGS) \
++			   --ghc-option='-pgmP "XXPATH_TO_GCCXX -E -undef -traditional"' \
++			   --ghc-option='-pgmc XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgml XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgma XXPATH_TO_GCCXX' \
++			   --ghc-option=-optc-m32		\
++			   --ghc-option=-opta-m32		\
++			   --ghc-option=-optl-m32		\
+ 	                   --ghc-option=-DSTAGE=$*
+ 	$(RM) -f Makefile-stage$*
+ 	$(CABAL) makefile  --distpref dist-stage$* -f Makefile-stage$*

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,16 @@
+--- compiler/Makefile.sav	2009-12-04 13:56:13.000000000 -0500
++++ compiler/Makefile	2009-12-04 14:05:52.000000000 -0500
+@@ -190,6 +190,13 @@
+ 	                   $(CONFIGURE_FLAGS_STAGE$*) \
+ 	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
+ 	                   $(COMMON_CONFIGURE_FLAGS) \
++			   --ghc-option='-pgmP "XXPATH_TO_GCCXX -E -undef -traditional"' \
++			   --ghc-option='-pgmc XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgml XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgma XXPATH_TO_GCCXX' \
++			   --ghc-option=-optc-m32		\
++			   --ghc-option=-optl-m32		\
++			   --ghc-option=-opta-m32		\
+ 	                   --ghc-option=-DSTAGE=$*
+ 	$(RM) -f Makefile-stage$*
+ 	$(CABAL) makefile  --distpref dist-stage$* -f Makefile-stage$*

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.local.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.local.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-Makefile.local.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,16 @@
+--- compiler/Makefile.local.sav	2009-12-04 13:56:21.000000000 -0500
++++ compiler/Makefile.local	2009-12-04 14:06:35.000000000 -0500
+@@ -19,6 +19,13 @@
+ GHC_CC_OPTS += $(addprefix -optc, $(MACOSX_DEPLOYMENT_CC_OPTS))
+ GHC_OPTS    += $(SRC_HC_OPTS)
+ GHC_OPTS    += $(GhcHcOpts)
++GHC_CC_OPTS += -pgmP "XXPATH_TO_GCCXX -E -undef -traditional"
++GHC_CC_OPTS += -pgma XXPATH_TO_GCCXX
++GHC_CC_OPTS += -pgmc XXPATH_TO_GCCXX
++GHC_CC_OPTS += -pgml XXPATH_TO_GCCXX
++GHC_CC_OPTS += -optc-m32
++GHC_CC_OPTS += -opta-m32
++GHC_CC_OPTS += -optl-m32
+ GHC_OPTS    += $(GhcStage$(stage)HcOpts)
+ GHC_OPTS    += $(addprefix -optc, $(MACOSX_DEPLOYMENT_CC_OPTS))
+ LIB_LD_OPTS += $(addprefix -optl, $(MACOSX_DEPLOYMENT_LD_OPTS))

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-main-DriverPipeline.hs.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-main-DriverPipeline.hs.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-compiler-main-DriverPipeline.hs.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,10 @@
+--- compiler/main/DriverPipeline.hs.sav	2010-01-31 17:02:21.000000000 -0500
++++ compiler/main/DriverPipeline.hs	2010-01-31 17:02:54.000000000 -0500
+@@ -1167,6 +1167,7 @@
+                             SysTools.Option "-nodefaultlibs",
+                             SysTools.Option "-Wl,-r",
+                             SysTools.Option ld_x_flag,
++                            SysTools.Option "-m32",
+                             SysTools.Option "-o",
+                             SysTools.FileOption "" output_fn ] ++ args)
+             ld_x_flag | null cLD_X = ""

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile-debug.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile-debug.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile-debug.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,21 @@
+--- ghc/Makefile.sav	2009-12-04 14:45:02.000000000 -0500
++++ ghc/Makefile	2009-12-04 14:49:04.000000000 -0500
+@@ -108,10 +108,17 @@
+ dist-stage1 dist-stage2 dist-stage3: dist-stage%: boot.stage.%
+ 
+ boot.stage.%:
+-	$(CABAL) configure --distpref dist-stage$*         \
++	$(CABAL) configure --verbose=3 --distpref dist-stage$*         \
+ 	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
+ 	                   $(CONFIGURE_FLAGS_STAGE$*)      \
+ 	                   $(COMMON_CONFIGURE_FLAGS)       \
++			   --ghc-option='-pgmP XXPATH_TO_GCCXX -E -undef -traditional' \
++			   --ghc-option='-pgmc XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgml XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgma XXPATH_TO_GCCXX' \
++			   --ghc-option=-optc-m32		\
++			   --ghc-option=-opta-m32		\
++			   --ghc-option=-optl-m32		\
+ 	                   --libsubdir=.                   \
+ 	                   --datadir='$$libdir'            \
+ 	                   --datasubdir=.

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,16 @@
+--- ghc/Makefile.sav	2009-12-04 13:57:21.000000000 -0500
++++ ghc/Makefile	2009-12-04 14:08:06.000000000 -0500
+@@ -112,6 +112,13 @@
+ 	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
+ 	                   $(CONFIGURE_FLAGS_STAGE$*)      \
+ 	                   $(COMMON_CONFIGURE_FLAGS)       \
++			   --ghc-option='-pgmP XXPATH_TO_GCCXX -E -undef -traditional' \
++			   --ghc-option='-pgmc XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgml XXPATH_TO_GCCXX' \
++			   --ghc-option='-pgma XXPATH_TO_GCCXX' \
++			   --ghc-option=-optc-m32		\
++			   --ghc-option=-opta-m32		\
++			   --ghc-option=-optl-m32		\
+ 	                   --libsubdir=.                   \
+ 	                   --datadir='$$libdir'            \
+ 	                   --datasubdir=.

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-ghc.wrapper.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-ghc.wrapper.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-ghc-ghc.wrapper.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,7 @@
+--- ghc/ghc.wrapper.sav	2010-01-11 19:08:00.000000000 -0500
++++ ghc/ghc.wrapper	2010-01-11 19:09:34.000000000 -0500
+@@ -1,3 +1,3 @@
+ #!/bin/sh
+ 
+-exec $executablename -B$datadir -dynload wrapped ${1+"$@"}
++exec $executablename -B$datadir -optc-m32 -opta-m32 -optl-m32 -dynload wrapped ${1+"$@"}

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-includes-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-includes-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-includes-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,28 @@
+--- includes/Makefile.sav	2009-12-05 12:53:11.000000000 -0500
++++ includes/Makefile	2009-12-05 12:58:11.000000000 -0500
+@@ -127,8 +127,11 @@
+ 
+ mkDerivedConstants.c : $(H_CONFIG) $(H_PLATFORM)
+ 
++mkDerivedConstants.o : mkDerivedConstants.c
++	$(CC) -o $@ -m32 $(CC_OPTS) -c $<
++
+ mkDerivedConstantsHdr : mkDerivedConstants.o
+-	$(CC) -o $@ $(CC_OPTS) $(LD_OPTS) mkDerivedConstants.o
++	$(CC) -o $@ -m32 $(CC_OPTS) $(LD_OPTS) mkDerivedConstants.o
+ 
+ DerivedConstants.h : mkDerivedConstantsHdr
+ 	./mkDerivedConstantsHdr >$@
+@@ -151,10 +154,10 @@
+ else
+ 
+ mkGHCConstants : mkGHCConstants.o
+-	$(CC) -o $@ $(CC_OPTS) $(LD_OPTS) mkGHCConstants.o
++	$(CC) -o $@ -m32 $(CC_OPTS) $(LD_OPTS) mkGHCConstants.o
+ 
+ mkGHCConstants.o : mkDerivedConstants.c
+-	$(CC) -o $@ $(CC_OPTS) -c $<  -DGEN_HASKELL
++	$(CC) -o $@ -m32 $(CC_OPTS) -c $<  -DGEN_HASKELL
+ 
+ GHCConstants.h : mkGHCConstants
+ 	./mkGHCConstants >$@

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-libffi-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-libffi-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-libffi-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,11 @@
+--- libffi/Makefile.sav	2010-02-07 12:17:10.000000000 -0500
++++ libffi/Makefile	2010-02-07 12:17:33.000000000 -0500
+@@ -84,7 +84,7 @@
+ 	    PATH=`pwd`:$$PATH; \
+ 	    export PATH; \
+ 	    cd build && \
+-	    CC=$(WhatGccIsCalled) $(SHELL) configure \
++	    CC=$(WhatGccIsCalled) CFLAGS="-O2 -m32" $(SHELL) configure \
+ 		  --enable-static=yes \
+ 	          --enable-shared=$(EnableShared) \
+ 		  --host=$(PLATFORM) --build=$(PLATFORM)

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile-debug.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile-debug.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile-debug.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,44 @@
+--- libraries/Makefile.sav	2009-12-04 14:45:11.000000000 -0500
++++ libraries/Makefile	2009-12-04 14:50:12.000000000 -0500
+@@ -123,7 +123,7 @@
+ 
+ HERE_ABS=$(FPTOOLS_TOP_ABS)/libraries
+ 
+-CABAL_GHC_FLAGS = -Wall
++CABAL_GHC_FLAGS = -v3 -Wall -pgmP "XXPATH_TO_GCCXX -E -undef -traditional" -pgmc XXPATH_TO_GCCXX -pgml XXPATH_TO_GCCXX -pgma XXPATH_TO_GCCXX -optP-m32 -optc-m32 -opta-m32 -optl-m32
+ ifeq "$(ghc_ge_605)" "NO"
+ CABAL_GHC_FLAGS += -cpp
+ endif
+@@ -141,19 +141,19 @@
+ bootstrapping.conf: cabal-bin
+ 	echo "[]" > $@.tmp
+ 	-cd extensible-exceptions && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd extensible-exceptions && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd extensible-exceptions && $(CABAL) configure --verbose=3 --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
+ 	cd extensible-exceptions && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd extensible-exceptions && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	-cd filepath && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd filepath && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd filepath && $(CABAL) configure --verbose=3 --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
+ 	cd filepath && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd filepath && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	-cd Cabal    && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd Cabal    && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd Cabal    && $(CABAL) configure --verbose=3 --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
+ 	cd Cabal    && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd Cabal    && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	-cd hpc    && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd hpc    && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd hpc    && $(CABAL) configure --verbose=3 --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --with-hsc2hs=XXPATH_TO_HSC2HSXX --package-db=$(HERE_ABS)/$@.tmp
+ 	cd hpc    && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd hpc    && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	mv $@.tmp $@
+@@ -165,7 +165,7 @@
+ ifeq "$(stage)" "2"
+ 	cd ifBuildable && ../$(HC) -Wall --make ifBuildable -o ifBuildable
+ else
+-	cd ifBuildable && $(GHC) -Wall --make ifBuildable -o ifBuildable
++	cd ifBuildable && $(GHC) -pgmc XXPATH_TO_GCCXX -pgml XXPATH_TO_GCCXX -pgma XXPATH_TO_GCCXX -optc-m32 -opta-m32 -optl-m32 -Wall --make ifBuildable -o ifBuildable
+ endif
+ 
+ .PHONY: all build configure

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,44 @@
+--- libraries/Makefile.sav	2009-12-04 13:57:40.000000000 -0500
++++ libraries/Makefile	2009-12-04 14:10:52.000000000 -0500
+@@ -123,7 +123,7 @@
+ 
+ HERE_ABS=$(FPTOOLS_TOP_ABS)/libraries
+ 
+-CABAL_GHC_FLAGS = -Wall
++CABAL_GHC_FLAGS = -Wall -pgmP "XXPATH_TO_GCCXX -E -undef -traditional" -pgmc XXPATH_TO_GCCXX -pgml XXPATH_TO_GCCXX -pgma XXPATH_TO_GCCXX -optP-m32 -optc-m32 -opta-m32 -optl-m32
+ ifeq "$(ghc_ge_605)" "NO"
+ CABAL_GHC_FLAGS += -cpp
+ endif
+@@ -141,19 +141,19 @@
+ bootstrapping.conf: cabal-bin
+ 	echo "[]" > $@.tmp
+ 	-cd extensible-exceptions && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd extensible-exceptions && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd extensible-exceptions && $(CABAL) configure  --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
+ 	cd extensible-exceptions && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd extensible-exceptions && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	-cd filepath && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd filepath && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd filepath && $(CABAL) configure  --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
+ 	cd filepath && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd filepath && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	-cd Cabal    && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd Cabal    && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd Cabal    && $(CABAL) configure  --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
+ 	cd Cabal    && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd Cabal    && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	-cd hpc    && $(CABAL) clean     --distpref=dist-bootstrapping
+-	cd hpc    && $(CABAL) configure --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
++	cd hpc    && $(CABAL) configure  --distpref=dist-bootstrapping --with-compiler=$(GHC) --with-gcc=XXPATH_TO_GCCXX --ghc-options='$(CABAL_GHC_FLAGS)' --with-hc-pkg=$(GHC_PKG) --with-hsc2hs=XXPATH_TO_HSC2HSXX --package-db=$(HERE_ABS)/$@.tmp
+ 	cd hpc    && $(CABAL) build     --distpref=dist-bootstrapping
+ 	cd hpc    && $(CABAL) install   --distpref=dist-bootstrapping --inplace
+ 	mv $@.tmp $@
+@@ -165,7 +165,7 @@
+ ifeq "$(stage)" "2"
+ 	cd ifBuildable && ../$(HC) -Wall --make ifBuildable -o ifBuildable
+ else
+-	cd ifBuildable && $(GHC) -Wall --make ifBuildable -o ifBuildable
++	cd ifBuildable && $(GHC) -pgmc XXPATH_TO_GCCXX -pgml XXPATH_TO_GCCXX -pgma XXPATH_TO_GCCXX -optc-m32 -opta-m32 -optl-m32 -Wall --make ifBuildable -o ifBuildable
+ endif
+ 
+ .PHONY: all build configure

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-cabal-bin.hs.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-cabal-bin.hs.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-cabal-bin.hs.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,17 @@
+--- libraries/cabal-bin.hs.sav	2010-03-05 15:14:33.000000000 -0500
++++ libraries/cabal-bin.hs	2010-03-05 15:15:14.000000000 -0500
+@@ -53,6 +53,14 @@
+     unless cleaning $
+         rawSystemExit verbosity ghc ["-package-conf", packageConf,
+                                      "--make", "Setup",
++				     "-optP-m32",
++				     "-optc-m32",
++				     "-opta-m32",
++				     "-optl-m32",
++				     "-pgmP", "XXPATH_TO_GCCXX -E -undef -traditional",
++				     "-pgmc", "XXPATH_TO_GCCXX",
++				     "-pgml", "XXPATH_TO_GCCXX",
++				     "-pgma", "XXPATH_TO_GCCXX",
+                                      "-package", "Cabal-" ++ useCabalVersion,
+                                      "-o", "Setup"]
+     rawSystemExit verbosity "./Setup" args

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-haskeline-haskeline.cabal.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-haskeline-haskeline.cabal.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-libraries-haskeline-haskeline.cabal.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,8 @@
+--- libraries/haskeline/haskeline.cabal.sav	2010-02-18 12:46:13.000000000 -0500
++++ libraries/haskeline/haskeline.cabal	2010-02-18 12:46:51.000000000 -0500
+@@ -100,3 +100,5 @@
+         }
+     }
+     ghc-options: -Wall
++    cc-options: -m32
++

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk-debug.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk-debug.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk-debug.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,27 @@
+--- mk/cabal.mk.sav	2009-12-04 14:45:24.000000000 -0500
++++ mk/cabal.mk	2009-12-04 14:51:29.000000000 -0500
+@@ -25,17 +25,21 @@
+ 
+ default all: with-bootstrapping-compiler
+ 
++CABAL_GHC_MACPORTS_FLAGS = --ghc-option='-pgmP XXPATH_TO_GCCXX -E -undef -traditional' --ghc-option='-pgmc XXPATH_TO_GCCXX' --ghc-option='-pgml XXPATH_TO_GCCXX' --ghc-option='-pgma XXPATH_TO_GCCXX' --ghc-option='-optc-m32' --ghc-option='-opta-m32' --ghc-option='-optl-m32'
++
+ with-bootstrapping-compiler:
+-	$(CABAL) configure --distpref dist-inplace          \
++	$(CABAL) configure --verbose=3 --distpref dist-inplace          \
+ 	                   $(INPLACE_DIRS_CONFIGURE_FLAGS)  \
+ 	                   $(USE_BOOT_CONFIGURE_FLAGS)      \
+ 	                   $(COMMON_CONFIGURE_FLAGS)        \
++			   $(CABAL_GHC_MACPORTS_FLAGS)      \
+ 	                   $(EXTRA_INPLACE_CONFIGURE_FLAGS)
+-	$(CABAL) build     --distpref dist-inplace $(BUILD_FLAGS)
++	$(CABAL) build     --verbose=3 --distpref dist-inplace \
++			   $(BUILD_FLAGS)
+ 	$(CABAL) install   --distpref dist-inplace $(INSTALL_FLAGS)
+ 
+ with-stage-2:
+-	$(CABAL) configure --distpref dist-install         \
++	$(CABAL) configure --verbose=3 --distpref dist-install         \
+ 	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
+ 	                   $(USE_STAGE2_CONFIGURE_FLAGS)   \
+ 	                   $(COMMON_CONFIGURE_FLAGS)       \

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-cabal.mk.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,27 @@
+--- mk/cabal.mk.sav	2009-12-04 13:59:14.000000000 -0500
++++ mk/cabal.mk	2009-12-04 14:13:13.000000000 -0500
+@@ -25,17 +25,21 @@
+ 
+ default all: with-bootstrapping-compiler
+ 
++CABAL_GHC_MACPORTS_FLAGS = --ghc-option='-pgmP XXPATH_TO_GCCXX -E -undef -traditional' --ghc-option='-pgmc XXPATH_TO_GCCXX' --ghc-option='-pgml XXPATH_TO_GCCXX' --ghc-option='-pgma XXPATH_TO_GCCXX' --ghc-option='-optc-m32' --ghc-option='-opta-m32' --ghc-option='-optl-m32'
++
+ with-bootstrapping-compiler:
+-	$(CABAL) configure --distpref dist-inplace          \
++	$(CABAL) configure  --distpref dist-inplace          \
+ 	                   $(INPLACE_DIRS_CONFIGURE_FLAGS)  \
+ 	                   $(USE_BOOT_CONFIGURE_FLAGS)      \
+ 	                   $(COMMON_CONFIGURE_FLAGS)        \
++			   $(CABAL_GHC_MACPORTS_FLAGS)      \
+ 	                   $(EXTRA_INPLACE_CONFIGURE_FLAGS)
+-	$(CABAL) build     --distpref dist-inplace $(BUILD_FLAGS)
++	$(CABAL) build      --distpref dist-inplace \
++			   $(BUILD_FLAGS)
+ 	$(CABAL) install   --distpref dist-inplace $(INSTALL_FLAGS)
+ 
+ with-stage-2:
+-	$(CABAL) configure --distpref dist-install         \
++	$(CABAL) configure  --distpref dist-install         \
+ 	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
+ 	                   $(USE_STAGE2_CONFIGURE_FLAGS)   \
+ 	                   $(COMMON_CONFIGURE_FLAGS)       \

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-target.mk.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-target.mk.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-mk-target.mk.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,11 @@
+--- mk/target.mk.sav	2009-12-04 13:59:21.000000000 -0500
++++ mk/target.mk	2009-12-04 14:14:29.000000000 -0500
+@@ -86,7 +86,7 @@
+ ifeq "$(USE_NEW_MKDEPEND_FLAGS)" "YES"
+ MKDEPENDHS_FLAGS = -dep-makefile .depend $(foreach way,$(WAYS),-dep-suffix $(way))
+ else
+-MKDEPENDHS_FLAGS = -optdep-f -optdep.depend $(foreach way,$(WAYS),-optdep-s -optdep$(way))
++MKDEPENDHS_FLAGS = -optdep-f -optdep.depend -pgmP "XXPATH_TO_GCCXX -E -undef -traditional" -pgmc XXPATH_TO_GCCXX -pgml XXPATH_TO_GCCXX -pgma XXPATH_TO_GCCXX -optc-m32 -opta-m32 -optl-m32 $(foreach way,$(WAYS),-optdep-s -optdep$(way))
+ endif
+ 
+ depend :: $(MKDEPENDHS_SRCS) $(MKDEPENDC_SRCS) $(PKGCONF_DEP)

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genapply-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genapply-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genapply-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,17 @@
+--- utils/genapply/Makefile.sav	2009-12-04 13:59:47.000000000 -0500
++++ utils/genapply/Makefile	2009-12-04 14:15:17.000000000 -0500
+@@ -23,6 +23,14 @@
+ SRC_HC_OPTS += -no-recomp
+ endif
+ 
++SRC_HC_OPTS += -pgmP "XXPATH_TO_GCCXX -E -undef -traditional"
++SRC_HC_OPTS += -pgma XXPATH_TO_GCCXX
++SRC_HC_OPTS += -pgmc XXPATH_TO_GCCXX
++SRC_HC_OPTS += -pgml XXPATH_TO_GCCXX
++SRC_HC_OPTS += -optc-m32
++SRC_HC_OPTS += -opta-m32
++SRC_HC_OPTS += -optl-m32
++
+ GenApply.o : $(GHC_INCLUDE_DIR)/ghcconfig.h
+ GenApply.o : $(GHC_INCLUDE_DIR)/MachRegs.h
+ GenApply.o : $(GHC_INCLUDE_DIR)/Constants.h

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genprimopcode-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genprimopcode-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-genprimopcode-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,17 @@
+--- utils/genprimopcode/Makefile.sav	2009-12-04 14:00:05.000000000 -0500
++++ utils/genprimopcode/Makefile	2009-12-04 14:15:53.000000000 -0500
+@@ -3,6 +3,14 @@
+ 
+ HS_PROG = genprimopcode
+ 
++SRC_HC_OPTS += -pgmP "XXPATH_TO_GCCXX -E -undef -traditional"
++SRC_HC_OPTS += -pgma XXPATH_TO_GCCXX
++SRC_HC_OPTS += -pgmc XXPATH_TO_GCCXX
++SRC_HC_OPTS += -pgml XXPATH_TO_GCCXX
++SRC_HC_OPTS += -optc-m32
++SRC_HC_OPTS += -opta-m32
++SRC_HC_OPTS += -optl-m32
++
+ binary-dist:
+ 	@:
+ 

Added: trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-hsc2hs-hsc2hs.wrapper.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-hsc2hs-hsc2hs.wrapper.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-i386-utils-hsc2hs-hsc2hs.wrapper.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,8 @@
+--- utils/hsc2hs/hsc2hs.wrapper.sav	2009-12-04 16:59:15.000000000 -0500
++++ utils/hsc2hs/hsc2hs.wrapper	2009-12-04 16:59:48.000000000 -0500
+@@ -12,4 +12,4 @@
+     esac
+ done
+ 
+-exec $executablename $tflag $HSC2HS_EXTRA ${1+"$@"} "$Iflag"
++exec $executablename --cflag="-m32" --lflag="-m32" $tflag $HSC2HS_EXTRA ${1+"$@"} "$Iflag"

Added: trunk/dports/lang/ghc/files/patch-snowleopard-rts-Linker.c.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-rts-Linker.c.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-rts-Linker.c.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,41 @@
+--- rts/Linker.c.sav	2010-03-09 16:43:35.000000000 -0500
++++ rts/Linker.c	2010-03-09 17:00:36.000000000 -0500
+@@ -61,7 +61,7 @@
+ #include <sys/wait.h>
+ #endif
+ 
+-#if defined(ia64_HOST_ARCH) || defined(linux_HOST_OS) || defined(freebsd_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS)
++#if defined(ia64_HOST_ARCH) || defined(linux_HOST_OS) || defined(freebsd_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS) || defined(darwin_HOST_OS)
+ #define USE_MMAP
+ #include <fcntl.h>
+ #include <sys/mman.h>
+@@ -4159,6 +4159,9 @@
+                 thing += value;
+                 break;
+             case X86_64_RELOC_SIGNED:
++            case X86_64_RELOC_SIGNED_1:
++            case X86_64_RELOC_SIGNED_2:
++            case X86_64_RELOC_SIGNED_4:
+                 ASSERT(reloc->r_pcrel);
+                 thing += value - baseValue;
+                 break;
+@@ -4224,7 +4227,8 @@
+ 		        || scat->r_type == PPC_RELOC_HI16_SECTDIFF
+ 		        || scat->r_type == PPC_RELOC_HA16_SECTDIFF)
+ #else
+-                    else if(scat->r_type == GENERIC_RELOC_SECTDIFF)
++                    else if(scat->r_type == GENERIC_RELOC_SECTDIFF
++			|| scat->r_type == GENERIC_RELOC_LOCAL_SECTDIFF)
+ #endif
+ 		    {
+ 		        struct scattered_relocation_info *pair =
+@@ -4287,7 +4291,8 @@
+                         || scat->r_type == PPC_RELOC_SECTDIFF)
+ #else
+                     if(scat->r_type == GENERIC_RELOC_VANILLA
+-                        || scat->r_type == GENERIC_RELOC_SECTDIFF)
++                        || scat->r_type == GENERIC_RELOC_SECTDIFF
++			|| scat->r_type == GENERIC_RELOC_LOCAL_SECTDIFF)
+ #endif
+                     {
+                         *wordPtr = word;

Added: trunk/dports/lang/ghc/files/patch-snowleopard-rts-Makefile.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-rts-Makefile.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-rts-Makefile.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,11 @@
+--- rts/Makefile.sav	2010-03-08 17:14:26.000000000 -0500
++++ rts/Makefile	2010-03-08 17:14:49.000000000 -0500
+@@ -409,7 +409,7 @@
+ SRC_HC_OPTS += -I.
+ 
+ # Otherwise the stack-smash handler gets triggered.
+-ifeq "$(TargetOS_CPP)" "openbsd"
++ifneq "$(findstring $(TargetOS_CPP), darwin openbsd)" ""
+ SRC_HC_OPTS += -optc-fno-stack-protector
+ endif
+ 

Added: trunk/dports/lang/ghc/files/patch-snowleopard-rts-package.conf.in.diff
===================================================================
--- trunk/dports/lang/ghc/files/patch-snowleopard-rts-package.conf.in.diff	                        (rev 0)
+++ trunk/dports/lang/ghc/files/patch-snowleopard-rts-package.conf.in.diff	2010-03-15 16:37:19 UTC (rev 64764)
@@ -0,0 +1,11 @@
+--- rts/package.conf.in.sav	2010-03-09 16:44:05.000000000 -0500
++++ rts/package.conf.in	2010-03-09 16:56:46.000000000 -0500
+@@ -164,7 +164,7 @@
+ 	 , "-Wl,-search_paths_first"
+ #endif
+ 
+-#ifdef darwin_HOST_OS
++#if defined(darwin_HOST_OS) && !defined(X86_64_HOST_ARCH)
+          , "-read_only_relocs", "warning"
+ #endif
+ 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100315/287ec8ae/attachment-0001.html>


More information about the macports-changes mailing list