Ticket #20132: lang-ghc.diff
File lang-ghc.diff, 5.6 KB (added by ecronin (Eric Cronin), 15 years ago) |
---|
-
files/patch-sl-compiler-main-DynFlags.hs.diff
1 --- compiler/main/DynFlags.hs.orig 2010-02-09 15:39:50.000000000 -0500 2 +++ compiler/main/DynFlags.hs 2010-02-09 15:49:29.000000000 -0500 3 @@ -2115,10 +2115,20 @@ 4 -- -fomit-frame-pointer : *must* in .hc files; because we're stealing 5 -- the fp (%ebp) for our register maps. 6 = let n_regs = stolen_x86_regs _dflags 7 - sta = opt_Static 8 in 9 - ( [ if sta then "-DDONT_WANT_WIN32_DLL_SUPPORT" else "" 10 + ( 11 +#if darwin_TARGET_OS 12 + -- By default, gcc on OS X will generate SSE 13 + -- instructions, which need things 16-byte aligned, 14 + -- but we don't 16-byte align things. Thus drop 15 + -- back to generic i686 compatibility. Trac #2983. 16 + -- 17 + -- Since Snow Leopard (10.6), gcc defaults to x86_64. 18 + ["-march=i686", "-m32"], 19 +#else 20 + [ if sta then "-DDONT_WANT_WIN32_DLL_SUPPORT" else "" 21 ], 22 +#endif 23 [ "-fno-defer-pop", 24 "-fomit-frame-pointer", 25 -- we want -fno-builtin, because when gcc inlines -
files/patch-sl-compiler-main-DriverPipeline.hs.diff
1 --- ./compiler/main/DriverPipeline.hs.bak 2010-02-09 02:26:27.000000000 -0500 2 +++ ./compiler/main/DriverPipeline.hs 2010-02-09 02:26:54.000000000 -0500 3 @@ -988,13 +988,6 @@ 4 -- This is a temporary hack. 5 ++ ["-mcpu=v9"] 6 #endif 7 -#if defined(darwin_TARGET_OS) && defined(i386_TARGET_ARCH) 8 - -- By default, gcc on OS X will generate SSE 9 - -- instructions, which need things 16-byte aligned, 10 - -- but we don't 16-byte align things. Thus drop 11 - -- back to generic i686 compatibility. Trac #2983. 12 - ++ ["-march=i686"] 13 -#endif 14 ++ (if hcc && mangle 15 then md_regd_c_flags 16 else []) -
Portfile
1 1 # $Id$ 2 2 3 3 PortSystem 1.0 4 PortGroup archcheck 1.0 4 5 5 6 name ghc 6 7 set canonicalname ghc … … 68 69 depends_lib port:gmp \ 69 70 port:ncursesw \ 70 71 port:libiconv 72 archcheck.files lib/libgmp.dylib \ 73 lib/libncursesw.dylib \ 74 lib/libiconv.dylib 71 75 72 76 variant cabal_configure_debug description {Add verbose debugging to cabal configure commands} { 73 77 patchfiles-append patch-compiler-Makefile-debug.diff \ … … 100 104 } 101 105 102 106 103 platform darwin 10 {104 pre-fetch {105 return -code error "${canonicalname} is not yet supported on Mac OS X 10.6.x (SnowLeopard)"106 }107 }108 109 110 107 platform darwin 8 powerpc { 111 108 global ghc_bootversion 112 109 set ghc_bootversion 6.10.1 … … 211 208 } 212 209 213 210 211 platform darwin 10 i386 { 212 global ghc_bootversion 213 set ghc_bootversion 6.8.2 214 215 master_sites-append ${homepage}/dist/${ghc_bootversion}/:bootstrap 216 217 distfiles-append ${canonicalname}-${ghc_bootversion}-darwin-i386-leopard-bootstrap.tar.bz2:bootstrap 218 219 checksums-append ${canonicalname}-${ghc_bootversion}-darwin-i386-leopard-bootstrap.tar.bz2 md5 f263cedef8bcbaa7e9014b3e06923583 220 221 extract.only ${canonicalname}-${version}-src.tar.bz2 \ 222 ${canonicalname}-${version}-src-extralibs.tar.bz2 \ 223 ${canonicalname}-${ghc_bootversion}-darwin-i386-leopard-bootstrap.tar.bz2 224 225 pre-fetch { 226 set minimum_xcodeversion 3.1 227 228 set current_xcodeversion [exec defaults read /Developer/Applications/Xcode.app/Contents/Info CFBundleShortVersionString] 229 if {[rpm-vercomp ${current_xcodeversion} ${minimum_xcodeversion}] < 0} { 230 ui_msg "On Mac OS X ${macosx_version}, ${name} ${version} requires Xcode ${minimum_xcodeversion} but you have Xcode ${current_xcodeversion}." 231 return -code error "incompatible Xcode version" 232 } 233 } 234 235 236 # GHC is not 64-bit friendly yet 237 configure.build_arch i386 238 patchfiles-append patch-sl-compiler-main-DriverPipeline.hs.diff \ 239 patch-sl-compiler-main-DynFlags.hs.diff 240 241 pre-configure { 242 # fix up the bootstrap ghc to use 32-bit gcc 243 reinplace "s|-I|-optc-m32 -opta-m32 -optl-m32 -I|g" \ 244 ${workpath}/ghc-bootstrap/bin/ghc 245 reinplace "s|--lflag=\"|--cflag=\"-m32\" --lflag=\"-m32 |g" \ 246 ${workpath}/ghc-bootstrap/bin/hsc2hs 247 248 # make the build use 32-bit gcc 249 reinplace "s|--lflag=\"|--cflag=\"-arch i386\" --lflag=\"-arch i386 |g" \ 250 ${worksrcpath}/mk/build.mk 251 set cfg [open "${worksrcpath}/mk/build.mk" a] 252 puts $cfg "CC_OPTS += -m32" 253 puts $cfg "EXTRA_CABAL_CONFIGURE_FLAGS += --ld-options=\"-arch i386 \" --gcc-options=\"-arch i386 \"" 254 close $cfg 255 reinplace "s|\$\(CABAL\) configure|\$\(CABAL\) configure \$\(EXTRA_CABAL_CONFIGURE_FLAGS\)|g" \ 256 ${worksrcpath}/libraries/Makefile 257 258 # make the intermediate and final ghc use 32-bit gcc 259 reinplace "s|executablename|executablename -optc-m32 -opta-m32 -optl-m32|g" \ 260 ${worksrcpath}/ghc/ghc.wrapper 261 } 262 } 214 263 post-extract { 215 264 system "tar jxf ${distpath}/testsuite-${version}.tar.bz2 -C ${worksrcpath}" 216 265 }