summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2011-04-25 17:55:08 +0000
committerSergei Trofimovich <slyfox@gentoo.org>2011-04-25 17:55:08 +0000
commit618a841357fae79ed605b8380a44327cf420a772 (patch)
treeeb9fcd3e316c4ed45166e58eeab565a6d462d8e5 /dev-lang/ghc
parentUpdate live ebuild (diff)
downloadhistorical-618a841357fae79ed605b8380a44327cf420a772.tar.gz
historical-618a841357fae79ed605b8380a44327cf420a772.tar.bz2
historical-618a841357fae79ed605b8380a44327cf420a772.zip
Added support for x86-macos/ppc-macos/x85-solaric/ppc-solaris systems by Fabian Groffen <grobian@gentoo.org>.
Package-Manager: portage-2.1.9.42/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/ghc')
-rw-r--r--dev-lang/ghc/ChangeLog13
-rw-r--r--dev-lang/ghc/Manifest21
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-prefix.patch43
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-darwin8.patch18
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-mach-o-relocation-limit.patch34
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-pic-powerpc.patch30
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-powerpc-darwin-no-mmap.patch37
-rw-r--r--dev-lang/ghc/files/ghc-apply-gmp-hack11
-rw-r--r--dev-lang/ghc/ghc-6.12.3-r2.ebuild (renamed from dev-lang/ghc/ghc-6.12.3-r1.ebuild)102
9 files changed, 286 insertions, 23 deletions
diff --git a/dev-lang/ghc/ChangeLog b/dev-lang/ghc/ChangeLog
index 1c307a436bbc..458e5b7ee165 100644
--- a/dev-lang/ghc/ChangeLog
+++ b/dev-lang/ghc/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for dev-lang/ghc
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.203 2011/03/27 19:44:17 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.204 2011/04/25 17:55:08 slyfox Exp $
+
+*ghc-6.12.3-r2 (25 Apr 2011)
+
+ 25 Apr 2011; Sergei Trofimovich <slyfox@gentoo.org> -ghc-6.12.3-r1.ebuild,
+ +ghc-6.12.3-r2.ebuild, +files/ghc-6.12.3-configure-CHOST-prefix.patch,
+ +files/ghc-6.12.3-darwin8.patch,
+ +files/ghc-6.12.3-mach-o-relocation-limit.patch,
+ +files/ghc-6.12.3-pic-powerpc.patch,
+ +files/ghc-6.12.3-powerpc-darwin-no-mmap.patch, files/ghc-apply-gmp-hack:
+ Added support for x86-macos/ppc-macos/x85-solaric/ppc-solaris systems by
+ Fabian Groffen <grobian@gentoo.org>.
*ghc-6.12.3-r1 (27 Mar 2011)
diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest
index 18ae3df39d72..d00c46294ae5 100644
--- a/dev-lang/ghc/Manifest
+++ b/dev-lang/ghc/Manifest
@@ -16,20 +16,29 @@ AUX ghc-6.12.2-configure-CHOST-part2.patch 958 RMD160 cab606658d051c3b5f5751df2c
AUX ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch 2575 RMD160 53dd2e84868f8b66e4d8741b121177bf8e305924 SHA1 2b25421962df33044d8f0556756563ab7d5b1a9d SHA256 9b9748775ddcafa0171f1594c4f5e0c90269e4fd65837d9167b127238cec3d93
AUX ghc-6.12.3-autoconf-2.66-4252.patch 950 RMD160 63225a84d59c6f71593f67d989a647345f7671b0 SHA1 6890dfc4af8d0e98b269219be9e1a5a484358120 SHA256 259813eeefebfc9656341dd6939ab6e7a3257336001d794042f1e6a57b3b20c4
AUX ghc-6.12.3-configure-CHOST-freebsd.patch 2375 RMD160 6c847baeeeaa6ea75c4cf1c687145ffaaf6153d8 SHA1 cc5128a4f6049b2b61ee5789b6c4d15725bc53e3 SHA256 fd4edb1ff5c1f0f08ffad4bae3b2007af948ecdc9c5c285cc6f2953bca25d3cf
+AUX ghc-6.12.3-configure-CHOST-prefix.patch 1438 RMD160 536dabce9b36399c3eef2bd2412e86c42254cebc SHA1 40b69ee7dc7ffa803109fc68799fe4f387955e7b SHA256 f1a2ff270f308e4146622ef37b0b00f59e42c1251e17748d20f986f79d4fca4b
+AUX ghc-6.12.3-darwin8.patch 483 RMD160 2922ed331e2d694ab2ecf42376d412faa3de6bec SHA1 33252e3c684a0ab98b0cea7136bed84de877a5ab SHA256 5b3beb68152a3831a1fd3a1f50d1ae768745872b425dba8de0bac35f8ce5bd72
AUX ghc-6.12.3-ghciless-haddock-3558.patch 7222 RMD160 e2f4347100ce4c1763c3cdc37ce7286d7cbbfefc SHA1 06afb9dd4edde9bdfd0d9a9d4f6cf9fcb1ea5d09 SHA256 79f9d9931d3e9d5c45247814226372901f1db7a593dc97bff63ae42b767f3917
AUX ghc-6.12.3-ia64-fixed-relax.patch 1362 RMD160 81224e6cc74d20b80b93c55eaeda7e2a6a7e3ae0 SHA1 d93beaf3fa9fa37b87f6fc6c7fc85d488ff809c3 SHA256 db632a48cef7fdce8fd24759af33527d489121ce3e67cbbcd235608aa0247a31
AUX ghc-6.12.3-ia64-storage-manager-fix.patch 3035 RMD160 067caf41e1ba60b5215b16eafeaec262904e2e2a SHA1 12a9ef095286f22e9b7107af28bff6916c3700d2 SHA256 9e08ad179c7fdc7de1899f89560ec26215968187956f2853639bbe85650fa2ab
AUX ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch 683 RMD160 4361e22211960ef347a49e5d0fa53d6337d2c7a6 SHA1 6caf69a755034794f470c3f1e5f48e7453d4e949 SHA256 82f48006c95fb9d01c8618f7457cd2744d7a1fada8c70d25544eefa23cbfde2b
AUX ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch 2228 RMD160 a2104ee651e7f751db4ca7e460b3b4816b1358cc SHA1 d9a5d631b46d510715182890fbd91b962d75aa21 SHA256 97410ae73b0e1cc127d5f07b39c3a6e0a3fdaf36491af17c7b7eb0c9c8d716b1
+AUX ghc-6.12.3-mach-o-relocation-limit.patch 1660 RMD160 7d37d1757ea919acb9b06b42388ef6ff0acde9c6 SHA1 5f4f1a3aa0b262e24b097ee93c2c93ba7ba5f8dd SHA256 22b280bf837604a063d48acf3576cbd81dbc797dfa6dffb513ac0a1d9e0d6e36
+AUX ghc-6.12.3-pic-powerpc.patch 965 RMD160 f7f96e147f92e590c47fa753e41532cbda47585f SHA1 cb868c94410ca066eb7e087c2ff7ad3742f84c77 SHA256 90e8ead455df01ce67b757fb5993291f64c755f008fe052453aed0f40d652254
+AUX ghc-6.12.3-powerpc-darwin-no-mmap.patch 1482 RMD160 5a50cc2f6a61ec8c4abbc30cd0dbf46c50b87452 SHA1 ae70bee8460f40839e1e2ad9e0f637d5ea9d8d8d SHA256 2921717b946f030f27fc1edc0f3770f47c52465512add25906747c789bbc0934
AUX ghc-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch 609 RMD160 a26c8a5c7fde2188639484d5cc622de669e5f427 SHA1 03615e6b6428dd693b57d16420f3853ce3d51f47 SHA256 537a96473cec66739534da7cc88bbde37d7f5f0ab158a9921e666985c18fc1b5
AUX ghc-6.12.3-ticket-2615-linker-script.patch 8956 RMD160 f843756077a767a9ec59f114676bd06102259302 SHA1 ce5e2b90fc8a99ae37d2ade07d75e611514bb389 SHA256 e670eafd89bcbf7842eedb16af6f538e11c9644c56af6eaa8a3f87b8d0c794aa
AUX ghc-6.4.2-sparc32plus.patch 526 RMD160 970d062362284659c2570394c8f9328d8096ea8e SHA1 40d25c25a3cd6a228f3757b8e298fd8c72710544 SHA256 a05bd16c9308ec9f608aeabe0ea35e2dff6826f262108d1ccb16c4f93a2d3a44
AUX ghc-6.4.2-sparcmangler.patch 837 RMD160 7e3a2a94bb62c3c0da09f08096481cace2b1bb96 SHA1 5faccb311239c4c4d07a2c6dc507d51a18c2bc96 SHA256 3987724420c6d4b552c6fbb3b3ca10fca8aaa73573735aa3de824d3dc65f94af
AUX ghc-6.5-norelax.patch 613 RMD160 71012d8615e164c72d0db75c8cc606ccf8e3ddd9 SHA1 4bab0e904d9950ba92e16b3932635e5a1c3edee1 SHA256 0da9630bbd28edee7538d857dbeefd6d4cdddafd198499e61513f2f4d44c2fc0
AUX ghc-6.6-nothreadedrts.patch 665 RMD160 402c8eb78dc648e55d1d7e00c695b49abe0f293d SHA1 8d0bc56096ebe781371dffa668de48a97173cd32 SHA256 bdfb000a70d97bb7341dda5a2ec48bb7f688532ade830eb2d73c7fa6ef1eead1
-AUX ghc-apply-gmp-hack 2563 RMD160 3096051038c98ddae8aacb8f21e69f568534e40c SHA1 57c6024ed12aa351724ac6f21add4cd410b3937a SHA256 b6f6393a63d61d8c2d27bac8b87af197f4b9e0a8ec9873e3c02871ab633d6d2c
+AUX ghc-apply-gmp-hack 2585 RMD160 1246e8fc40bbbb28f52f755457feca97bf3e22cc SHA1 63a7999b829548f82bcdcc4da869956abe2890bf SHA256 0d3c9e52be232734c916e9765fae770225ad6fb04c0948780867450401ff1eed
AUX ghc-bash-completion 6496 RMD160 61574aab2f8ed4ae906df5ac291f528384b79b87 SHA1 a0d7c264cc8ff3d235511e151dc82f9e16691bac SHA256 82a862bea2c9248e06fcf74d307de07b05a55f9eb95f412762bd02e53fece822
AUX ghc-updater 9262 RMD160 10332a0dd2fd2f09e28b250fb74655e67305e2d7 SHA1 c297589995aa6c310bcf61db6fec1df57d5f0eb8 SHA256 e6277b2731c6be5159d28a450ccf9dfe701601f86552096ef8d8c5daedc5929a
+DIST ghc-6.10.1-i386-apple-darwin.tar.bz2 97910484 RMD160 3764303b9c9161905b5c0e2e4000cfe0fceea85c SHA1 299a829981db533cbab71426051cf924f4a6cdd7 SHA256 b806bf9c163314c3aac389df1cf5f30e31d3557baa0eabce9279f6ef58305d51
+DIST ghc-6.10.1-powerpc-apple-darwin.tar.bz2 110038307 RMD160 c3caed6f3c9c052ba480b728326783966dd5d77f SHA1 ada96c1671e79901fb5bb07e2def3e65d80316b9 SHA256 06a0712a18d328e408b3057a83e31ee6695b5a203f1e492ca1964a7899834134
+DIST ghc-6.10.4-i386-unknown-solaris2.tar.bz2 78409258 RMD160 8595f81eb215437155518e27f3f8da4f33df72ee SHA1 7251e23e7190b92ca0e2a6c03adc866429ae9452 SHA256 f53bbffff5b469fb4a6cea6ce3965596240549529306c8a9cfbf0a9cf6296eea
+DIST ghc-6.10.4-sparc-sun-solaris2.tar.bz2 87371847 RMD160 6028d2224524c6dfeb7b9b352eeee1b59f077df2 SHA1 dc48c475bce414545b734e27e50433f43a3a1b0c SHA256 bc6fa54fcb66d3d5f14c4bb32bb932a9168040e3e7eb4ef410de7fc18ecd3a38
DIST ghc-6.10.4-src.tar.bz2 8060565 RMD160 5f83baf2549f1f4bea140c6a80728c2a76f60ab6 SHA1 0566858b409066d98da70de5adb9a7030d0df5dc SHA256 d66a8e52572f4ff819fe5c4e34c6dd1e84a7763e25c3fadcc222453c0bd8534d
DIST ghc-6.12.3-src.tar.bz2 26592939 RMD160 021619aec4c820009e77745657bfdf0d9705f3e7 SHA1 d811be2131d4403ea452aa94fe71edd1b6bd0a79 SHA256 6cbdbe415011f2c7d15e4d850758d8d393f70617b88cb3237d2c602bb60e5e68
DIST ghc-6.2.2-libraries.tar.gz 524182 RMD160 f4ce0df2040f91a5a56cc618e68f1aa2e4bf0185 SHA1 64af9e782f7eeae9f7f47445811f50cf3210f093 SHA256 ebcf8c1fd31c9a33ff64ca888f01e9911464469f59e5432c626b8c686c2d9142
@@ -91,7 +100,7 @@ DIST ghc-bundled-readline-5.2_p13-amd64.tbz2 976677 RMD160 f0543aa3f404d45aad436
DIST ghc-bundled-readline-5.2_p13-x86.tbz2 940742 RMD160 5f9470a99047f004bd0917c62253bff9b663c9a5 SHA1 f5463a8929d2ba792b91085f78d6763cb50ef14e SHA256 bb9766235ed0d6e3c2f3ffe1625ecbe8e4d2e0254f7060e845be3a404835cd2a
DIST ghc-testsuite-6.4.2.tar.gz 1181389 RMD160 1eea6a19a9fca6b3d56a6f29b69289cb88af8173 SHA1 7ada60fe2abb9208d841787781d522d5a1110dc2 SHA256 1a864243e922c233049585fa3bf4a86a0ca3e7b3ffebf26245eb037f15dd4d12
EBUILD ghc-6.10.4-r1.ebuild 13011 RMD160 4feb3ad764af5ad16b3dd5a000d49755c8b91c2a SHA1 c8eb3181598c05053e1f27b5fdb2a3a4264377b1 SHA256 f8c163192a9c5a62158bbb5698cef9872fa0e64956689aeafb3f90c8c9670b0a
-EBUILD ghc-6.12.3-r1.ebuild 16641 RMD160 7d4d41912c87490900cd46c55919dd23eb981206 SHA1 02cda3a639ecbdcf00c98af46a559dd423bcef65 SHA256 98a1c06eb59197cd3927cb8c70c3388a759d8344e8979e2b5afc7734a44f385b
+EBUILD ghc-6.12.3-r2.ebuild 20222 RMD160 834425fed6136c2a2874eddaf24c09e159aa87aa SHA1 465fa174219df46b4a51b739c899a0c6da48eaf6 SHA256 deabd93ef60a712791643315b8d049d36077aee22ee6ae89c07c6cace99a2443
EBUILD ghc-6.12.3.ebuild 14839 RMD160 6ec6a88c9d4f616b32e8073610f051f0e86d7357 SHA1 b8c1b5c5bf6fe3db063e66f4997b7ab34c78d73e SHA256 cacb480c299072e2a004599682e8b4b04038997bde27ed47c7799398ca1cac0a
EBUILD ghc-6.2.2.ebuild 10613 RMD160 32eb80c657fcea0c99e683b313643e063fa67f30 SHA1 e35b8257c2e2d7b8ed9e62835a0b76994f0e91a8 SHA256 570e1f68ec3965ab8aab15ea946e96c6f7be7e037e60a1b9afd26cd479122cca
EBUILD ghc-6.4.2.ebuild 13718 RMD160 9cee26621e31ee8ed3e59cfd27cdf1f0689b054c SHA1 62f98f4ed6f74f770810b27d4772c4947129020e SHA256 b6fe46438045cc54225f20b4f4bdd4f33dfd18c303348e68d27626875de28368
@@ -99,12 +108,12 @@ EBUILD ghc-6.6.1.ebuild 12333 RMD160 76cd8b4fe72842cfcd0e2bf20f5c11e788472bd9 SH
EBUILD ghc-6.6.ebuild 10978 RMD160 f67c1aa1d68f5a277d5d6db6004269f576b95d80 SHA1 7c18bc6d59b1c948651fad042a8928af8aa07a81 SHA256 8e3efaf74dd46ca2bcf3a0f5e75700b7ad4e8083795c3604cc247a0fa6e6d8bf
EBUILD ghc-6.8.2-r1.ebuild 9147 RMD160 48d75d1fb56e58c4f87e95c6e1664bdabbb3eba4 SHA1 b8510681b9f2535a87f0cbef3768a771071ea1c5 SHA256 90eef3470c0ae305c0248ce2248333e703039a2c16ce6d567a88f9601b28690d
EBUILD ghc-6.8.2.ebuild 9201 RMD160 0b0685249c09afbb3a03f8c54e458eabf6e0a90f SHA1 9dc6947b948770e710aae71ed2ccb301609b8ffb SHA256 724109ab0e94f8919bb0ea92a96f48be2a10bea5ee339e2b750bf81669e96231
-MISC ChangeLog 36834 RMD160 7516d849891d4f5a76b90344b2c1c19195493d76 SHA1 753fddc1419b28b70f1065cccc9ec317e433885d SHA256 51679ec74e06a390ac714f0372469826f3e2a7e8027484b8625d85f8790c82b8
+MISC ChangeLog 37330 RMD160 0f33fcb86c9236275a394242cf9bced9ee8cb58d SHA1 b9a1058439c252e88f8cc09e12567420db962262 SHA256 a00a2f3391e4384f2d3654735f2fb958ba796c0fca3cfb089f406d264de961bb
MISC metadata.xml 442 RMD160 9cfa0af9084477c8a70ecf0ac3fb3093ae0cd602 SHA1 be2833090f093ac1c8fc2f5c6f3f253bdbdd6b96 SHA256 2bacbdfcaea11289949a687626f59f99af8fda9ec495b2c349ce5898d9f0dcd4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
-iEYEARECAAYFAk2PlD4ACgkQcaHudmEf86o8iQCbBpQUGFjZVc1uV5MZffj7wf/y
-C1sAnRYoXPuMZXWY/jHK19cBOWnibCIk
-=4L8m
+iEYEARECAAYFAk21tjAACgkQcaHudmEf86rA5QCfXDCN0crQnsyf+Ar7Tb5nocuE
+8igAn2EaWtq05CMcViKPEgt1LNRBV8SY
+=zGvh
-----END PGP SIGNATURE-----
diff --git a/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-prefix.patch b/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-prefix.patch
new file mode 100644
index 000000000000..926237ba8064
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-prefix.patch
@@ -0,0 +1,43 @@
+Strip versioning components from *HOST for Darwin and Solaris
+
+--- aclocal.m4
++++ aclocal.m4
+@@ -1358,6 +1358,12 @@
+ freebsd*)
+ $2="freebsd"
+ ;;
++ darwin*)
++ $2="darwin"
++ ;;
++ solaris2.*)
++ $2="solaris2"
++ ;;
+ *)
+ echo "Unknown OS $1"
+ exit 1
+--- configure.ac
++++ configure.ac
+@@ -227,6 +227,7 @@
+ fi
+ build=`echo "$build" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/' -e 's/-gentoo-/-unknown-/' -e 's/freebsd.*$/freebsd/'`
+ [build=`echo "$build" | sed -e 's/i[4-6]86/i386/'`] # escaping square bracket
++build=`echo "$build" | sed -e 's/-darwin.*$/-darwin/' -e 's/-solaris2.*$/-solaris/'`
+
+ # We have to run these unconditionally, but we may discard their
+ # results in the following code
+@@ -262,6 +263,7 @@
+ fi
+ host=`echo "$host" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/' -e 's/-gentoo-/-unknown-/' -e 's/freebsd.*$/freebsd/'`
+ [host=`echo "$host" | sed -e 's/i[4-6]86/i386/'`] # escaping square bracket
++host=`echo "$host" | sed -e 's/-darwin.*$/-darwin/' -e 's/-solaris2.*$/-solaris/'`
+
+ if test "$host_alias" = ""
+ then
+@@ -284,6 +286,7 @@
+ fi
+ target=`echo "$target" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/' -e 's/-gentoo-/-unknown-/' -e 's/freebsd.*$/freebsd/'`
+ [target=`echo "$target" | sed -e 's/i[4-6]86/i386/'`] # escaping square bracket
++target=`echo "$target" | sed -e 's/-darwin.*$/-darwin/' -e 's/-solaris2.*$/-solaris/'`
+
+ if test "$target_alias" = ""
+ then
diff --git a/dev-lang/ghc/files/ghc-6.12.3-darwin8.patch b/dev-lang/ghc/files/ghc-6.12.3-darwin8.patch
new file mode 100644
index 000000000000..c971eb25eed6
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.12.3-darwin8.patch
@@ -0,0 +1,18 @@
+Workaround headers problem in Darwin 8 as well.
+
+--- rts/PosixSource.h
++++ rts/PosixSource.h
+@@ -11,6 +11,13 @@
+
+ #include <ghcplatform.h>
+
++#if defined(darwin_HOST_OS)
++/* unfortunately the hack below only works for Darwin 9 and
++ * above, so as hack include sys/types early (before setting
++ * _POSIX_C_SOURCE) (this obviously obsoletes the hack below) */
++#include <sys/types.h>
++#endif
++
+ #define _POSIX_SOURCE 1
+ #define _POSIX_C_SOURCE 199506L
+ #define _XOPEN_SOURCE 500
diff --git a/dev-lang/ghc/files/ghc-6.12.3-mach-o-relocation-limit.patch b/dev-lang/ghc/files/ghc-6.12.3-mach-o-relocation-limit.patch
new file mode 100644
index 000000000000..93752ea76f7e
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.12.3-mach-o-relocation-limit.patch
@@ -0,0 +1,34 @@
+http://hackage.haskell.org/trac/ghc/attachment/ticket/3260/mach-o-relocation-limit.patch
+
+Sat May 8 23:24:11 JST 2010 pho@cielonegro.org
+ * Work around for Mach-O relocation limit
+
+ Mach-O has a limitation on the length of relocation addresses. No
+ segments can be larger than 2^24 - 1 bytes (approx 16 MiB; See
+ /usr/include/mach-o/reloc.h). Static GHCi libraries are merged large
+ objects so they tend to exceed this limit.
+
+--- rules/build-package-way.mk
++++ rules/build-package-way.mk
+@@ -83,8 +83,21 @@
+ ifneq "$4" "0"
+ BINDIST_LIBS += $$($1_$2_GHCI_LIB)
+ endif
++
++ifeq "$$(darwin_HOST_OS)" "1"
++# Mach-O has a limitation on the length of relocation addresses. No
++# segments can be larger than 2^24 - 1 bytes (approx 16 MiB; See
++# /usr/include/mach-o/reloc.h). Static GHCi libraries are merged large
++# objects so they tend to exceed this limit.
++$$($1_$2_GHCI_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS)
++ "$$(LD)" -r -o $$@ $$(EXTRA_LD_OPTS) $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) `$$($1_$2_$3_MKSTUBOBJS)` $$($1_$2_EXTRA_OBJS) \
++ || ( echo "Warning: creating dummy $$@" && \
++ touch empty.c && \
++ "$(CC)" $(SRC_CC_OPTS) $(CONF_CC_OPTS) -c empty.c -o $$@ )
++else
+ $$($1_$2_GHCI_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS)
+ "$$(LD)" -r -o $$@ $$(EXTRA_LD_OPTS) $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) `$$($1_$2_$3_MKSTUBOBJS)` $$($1_$2_EXTRA_OBJS)
++endif
+
+ $(call all-target,$1_$2,$$($1_$2_GHCI_LIB))
+ endif
diff --git a/dev-lang/ghc/files/ghc-6.12.3-pic-powerpc.patch b/dev-lang/ghc/files/ghc-6.12.3-pic-powerpc.patch
new file mode 100644
index 000000000000..e71109920820
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.12.3-pic-powerpc.patch
@@ -0,0 +1,30 @@
+From 1414e10a1470061e850b7ce2aa6350a428ade2e9 Mon Sep 17 00:00:00 2001
+From: pho@cielonegro.org <unknown>
+Date: Sat, 8 May 2010 14:39:00 +0000
+Subject: [PATCH] PIC support for PowerPC
+
+PPC.CodeGen.getRegister was not properly handling PicBaseReg.
+It seems working with this patch, but I'm not sure this change is correct.
+---
+ compiler/nativeGen/PPC/CodeGen.hs | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/compiler/nativeGen/PPC/CodeGen.hs b/compiler/nativeGen/PPC/CodeGen.hs
+index 1215b2e..a1b55ce 100644
+--- a/compiler/nativeGen/PPC/CodeGen.hs
++++ b/compiler/nativeGen/PPC/CodeGen.hs
+@@ -377,6 +377,11 @@ iselExpr64 expr
+
+ getRegister :: CmmExpr -> NatM Register
+
++getRegister (CmmReg (CmmGlobal PicBaseReg))
++ = do
++ reg <- getPicBaseNat archWordSize
++ return (Fixed archWordSize reg nilOL)
++
+ getRegister (CmmReg reg)
+ = return (Fixed (cmmTypeSize (cmmRegType reg))
+ (getRegisterReg reg) nilOL)
+--
+1.7.4.1
+
diff --git a/dev-lang/ghc/files/ghc-6.12.3-powerpc-darwin-no-mmap.patch b/dev-lang/ghc/files/ghc-6.12.3-powerpc-darwin-no-mmap.patch
new file mode 100644
index 000000000000..a438c0d57b90
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.12.3-powerpc-darwin-no-mmap.patch
@@ -0,0 +1,37 @@
+Tue Nov 30 06:30:14 PST 2010 pho@cielonegro.org
+ * FIX #1845 (unconditional relative branch out of range)
+
+ Don't use mmap on powerpc-apple-darwin as mmap doesn't support
+ reallocating but we need to allocate jump islands just after each
+ object images. Otherwise relative branches to jump islands can fail
+ due to 24-bits displacement overflow.
+diff -rN -u old-ghc/rts/Linker.c new-ghc/rts/Linker.c
+--- old-ghc/rts/Linker.c 2011-04-19 01:37:03.000000000 -0700
++++ new-ghc/rts/Linker.c 2011-04-19 01:37:04.000000000 -0700
+@@ -69,7 +69,15 @@
+ #include <sys/wait.h>
+ #endif
+
+-#if defined(linux_HOST_OS) || defined(freebsd_HOST_OS) || defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS) || defined(darwin_HOST_OS)
++#if defined(linux_HOST_OS ) || defined(freebsd_HOST_OS) || \
++ defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS ) || \
++ defined(openbsd_HOST_OS ) || \
++ ( defined(darwin_HOST_OS ) && !defined(powerpc_HOST_ARCH) )
++/* Don't use mmap on powerpc-apple-darwin as mmap doesn't support
++ * reallocating but we need to allocate jump islands just after each
++ * object images. Otherwise relative branches to jump islands can fail
++ * due to 24-bits displacement overflow.
++ */
+ #define USE_MMAP
+ #include <fcntl.h>
+ #include <sys/mman.h>
+@@ -1841,6 +1849,9 @@
+ int fd;
+ #else
+ FILE *f;
++# if defined(darwin_HOST_OS)
++ int misalignment;
++# endif
+ #endif
+ IF_DEBUG(linker, debugBelch("loadObj %s\n", path));
+
diff --git a/dev-lang/ghc/files/ghc-apply-gmp-hack b/dev-lang/ghc/files/ghc-apply-gmp-hack
index a0b4ab8ffd9c..32a3a8f1f7cf 100644
--- a/dev-lang/ghc/files/ghc-apply-gmp-hack
+++ b/dev-lang/ghc/files/ghc-apply-gmp-hack
@@ -1,6 +1,4 @@
-# this script is expected to be sourced by ghc ebuilds built against libgmp.so.3 library
-#
-# > source "${FILESDIR}/ghc-apply-gmp-hack"
+# This script is expected to be sourced by ghc ebuilds built against libgmp.so.3 library
#
# What it does and why it works:
# > GMP 5.0 is upwardly source and binary compatible with 4.x, and 3.x versions,
@@ -24,7 +22,7 @@
#
# Blames should be directed to Sergei Trofimovich <slyfox@gentoo.org>
-# should be used:
+# should be used as:
# > inherit multilib
# > ...
# > # somewhere in src_unpack() { # as early as possible, right after unpacking source/binary
@@ -33,8 +31,9 @@
local libdir_name=$1
# let's see if we are in affected system
if has_version '>=dev-libs/gmp-5.0.1'; then
- local libgmpso3=$ROOT/usr/$libdir_name/libgmp.so.3
- local libgmpso10=$ROOT/usr/$libdir_name/libgmp.so.10
+ has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}"
+ local libgmpso3=${EROOT}/usr/$libdir_name/libgmp.so.3
+ local libgmpso10=${EROOT}/usr/$libdir_name/libgmp.so.10
# bother user only if things won't work for him
if [[ ! -e "$libgmpso3" ]]; then
diff --git a/dev-lang/ghc/ghc-6.12.3-r1.ebuild b/dev-lang/ghc/ghc-6.12.3-r2.ebuild
index 238ff4fd138f..312987b9a829 100644
--- a/dev-lang/ghc/ghc-6.12.3-r1.ebuild
+++ b/dev-lang/ghc/ghc-6.12.3-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.12.3-r1.ebuild,v 1.1 2011/03/27 19:44:17 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.12.3-r2.ebuild,v 1.1 2011/04/25 17:55:08 slyfox Exp $
# Brief explanation of the bootstrap logic:
#
@@ -48,17 +48,24 @@ arch_binaries="$arch_binaries ppc? ( mirror://gentoo/ghc-bin-${PV}-ppc.tbz2 )"
# various ports:
arch_binaries="$arch_binaries x86-fbsd? ( http://code.haskell.org/~slyfox/ghc-x86-fbsd/ghc-bin-${PV}-x86-fbsd.tbz2 )"
+# prefix ports:
+arch_binaries="$arch_binaries x86-macos? ( http://www.haskell.org/ghc/dist/6.10.1/maeder/ghc-6.10.1-i386-apple-darwin.tar.bz2 )"
+arch_binaries="$arch_binaries ppc-macos? ( http://www.haskell.org/ghc/dist/6.10.1/maeder/ghc-6.10.1-powerpc-apple-darwin.tar.bz2 )"
+arch_binaries="$arch_binaries x86-solaris? ( http://www.haskell.org/ghc/dist/6.10.4/maeder/ghc-6.10.4-i386-unknown-solaris2.tar.bz2 )"
+arch_binaries="$arch_binaries sparc-solaris? ( http://www.haskell.org/ghc/dist/6.10.4/maeder/ghc-6.10.4-sparc-sun-solaris2.tar.bz2 )"
+
SRC_URI="!binary? ( http://darcs.haskell.org/download/dist/${PV}/${P}-src.tar.bz2 )
!ghcbootstrap? ( $arch_binaries )"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+KEYWORDS="~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
IUSE="binary doc ghcbootstrap"
RDEPEND="
!dev-lang/ghc-bin
- >=sys-devel/gcc-2.95.3
- >=sys-devel/binutils-2.17
+ !kernel_Darwin? ( >=sys-devel/gcc-2.95.3 )
+ kernel_linux? ( >=sys-devel/binutils-2.17 )
+ kernel_SunOS? ( >=sys-devel/binutils-2.17 )
>=dev-lang/perl-5.6.1
>=dev-libs/gmp-4.1
!<dev-haskell/haddock-2.4.2
@@ -203,11 +210,18 @@ src_unpack() {
# Create the ${S} dir if we're using the binary version
use binary && mkdir "${S}"
- base_src_unpack
+ # the Solaris and Darwin binaries from ghc (maeder) need to be
+ # unpacked separately, so prevent them from being unpacked
+ local ONLYA=${A}
+ case ${CHOST} in
+ *-darwin* | *-solaris*) ONLYA=${P}-src.tar.bz2 ;;
+ esac
+ unpack ${ONLYA}
}
src_prepare() {
- source "${FILESDIR}/ghc-apply-gmp-hack" "$(get_libdir)"
+ [[ ${CHOST} != *-darwin* ]] && \
+ source "${FILESDIR}/ghc-apply-gmp-hack" "$(get_libdir)"
ghc_setup_cflags
@@ -232,7 +246,64 @@ src_prepare() {
mv "${WORKDIR}/usr" "${S}"
else
if ! use ghcbootstrap; then
- relocate_ghc "${WORKDIR}"
+ case ${CHOST} in
+ *-darwin* | *-solaris*)
+ mkdir "${WORKDIR}"/ghc-bin-installer || die
+ pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
+ use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
+ use x86-solaris && unpack ghc-6.10.4-i386-unknown-solaris2.tar.bz2
+ use ppc-macos && unpack ghc-6.10.1-powerpc-apple-darwin.tar.bz2
+ use x86-macos && unpack ghc-6.10.1-i386-apple-darwin.tar.bz2
+ popd > /dev/null
+
+ pushd "${WORKDIR}"/ghc-bin-installer/ghc-6.10.? > /dev/null || die
+ # fix the binaries so they run, on Solaris we need an
+ # LD_LIBRARY_PATH which has our prefix libdirs, on
+ # Darwin we need to replace the frameworks with our libs
+ # from the prefix fix before installation, because some
+ # of the tools are actually used during configure/make
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
+ elif [[ ${CHOST} == *-darwin* ]] ; then
+ # http://hackage.haskell.org/trac/ghc/ticket/2942
+ pushd utils/haddock/dist-install/build > /dev/null
+ ln -s Haddock haddock >& /dev/null # fails on IN-sensitive
+ popd > /dev/null
+
+ local readline_framework=GNUreadline.framework/GNUreadline
+ local gmp_framework=/opt/local/lib/libgmp.3.dylib
+ local ncurses_file=/opt/local/lib/libncurses.5.dylib
+ for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
+ install_name_tool -change \
+ ${readline_framework} \
+ "${EPREFIX}"/lib/libreadline.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${gmp_framework} \
+ "${EPREFIX}"/usr/lib/libgmp.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${ncurses_file} \
+ "${EPREFIX}"/usr/lib/libncurses.dylib \
+ ${binary} || die
+ done
+ # we don't do frameworks!
+ sed -i \
+ -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
+ -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
+ rts/package.conf.in || die
+ fi
+
+ # it is autoconf, but we really don't want to give it too
+ # much arguments, in fact we do the make in-place anyway
+ ./configure --prefix="${WORKDIR}"/usr || die
+ make install || die
+ popd > /dev/null
+ ;;
+ *)
+ relocate_ghc "${WORKDIR}"
+ ;;
+ esac
fi
sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_CFLAGS}|" \
@@ -263,6 +334,7 @@ src_prepare() {
epatch "${FILESDIR}/ghc-6.12.1-configure-CHOST.patch"
epatch "${FILESDIR}/ghc-6.12.2-configure-CHOST-part2.patch"
epatch "${FILESDIR}/ghc-6.12.3-configure-CHOST-freebsd.patch"
+ epatch "${FILESDIR}/ghc-6.12.3-configure-CHOST-prefix.patch"
# -r and --relax are incompatible
epatch "${FILESDIR}/ghc-6.12.3-ia64-fixed-relax.patch"
@@ -283,7 +355,9 @@ src_prepare() {
epatch "${FILESDIR}/ghc-6.12.3-autoconf-2.66-4252.patch"
# ticket 2615, linker scripts
- epatch "${FILESDIR}/ghc-6.12.3-ticket-2615-linker-script.patch"
+ # breaks Darwin
+ [[ ${CHOST} != *-darwin* ]] && \
+ epatch "${FILESDIR}/ghc-6.12.3-ticket-2615-linker-script.patch"
# export typechecker internals even if ghci is disabled
# http://hackage.haskell.org/trac/ghc/ticket/3558
@@ -293,6 +367,11 @@ src_prepare() {
# TPE (Trusted Path Execution) protection.
epatch "${FILESDIR}/ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch"
+ epatch "${FILESDIR}"/${P}-pic-powerpc.patch
+ epatch "${FILESDIR}"/${P}-darwin8.patch
+ epatch "${FILESDIR}"/${P}-mach-o-relocation-limit.patch
+ epatch "${FILESDIR}"/${P}-powerpc-darwin-no-mmap.patch
+
if use prefix; then
# Make configure find docbook-xsl-stylesheets from Prefix
sed -i -e '/^FP_DIR_DOCBOOK_XSL/s:\[.*\]:['"${EPREFIX}"'/usr/share/sgml/docbook/xsl-stylesheets/]:' configure.ac || die
@@ -315,7 +394,11 @@ src_configure() {
# We also need to use the GHC_CFLAGS flags when building ghc itself
echo "SRC_HC_OPTS+=${GHC_CFLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS} -Wa,--noexecstack" >> mk/build.mk
+ case $($(tc-getAS) -v 2>&1 </dev/null) in
+ *"GNU Binutils"*) # GNU ld
+ echo "SRC_CC_OPTS+=${CFLAGS} -Wa,--noexecstack" >> mk/build.mk
+ ;;
+ esac
# We can't depend on haddock except when bootstrapping when we
# must build docs and include them into the binary .tbz2 package
@@ -378,7 +461,6 @@ src_compile() {
src_install() {
if use binary; then
- mkdir -p "${ED}"
mv "${S}/usr" "${ED}"
# Remove the docs if not requested