diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2011-04-25 17:55:08 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2011-04-25 17:55:08 +0000 |
commit | 618a841357fae79ed605b8380a44327cf420a772 (patch) | |
tree | eb9fcd3e316c4ed45166e58eeab565a6d462d8e5 /dev-lang/ghc | |
parent | Update live ebuild (diff) | |
download | historical-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/ChangeLog | 13 | ||||
-rw-r--r-- | dev-lang/ghc/Manifest | 21 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-prefix.patch | 43 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-6.12.3-darwin8.patch | 18 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-6.12.3-mach-o-relocation-limit.patch | 34 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-6.12.3-pic-powerpc.patch | 30 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-6.12.3-powerpc-darwin-no-mmap.patch | 37 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-apply-gmp-hack | 11 | ||||
-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 |