summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/ghc/ChangeLog38
-rw-r--r--dev-lang/ghc/Manifest86
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-autoconf.patch44
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-disable-strip.patch15
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-ia64-fixed-relax.patch35
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-ia64-storage-manager-fix.patch63
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-libm-detection.patch43
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-ppc64-always-minimal-toc.patch9
-rw-r--r--dev-lang/ghc/files/ghc-6.10.4-propagate-hc-options-to-all-libraries.patch37
-rw-r--r--dev-lang/ghc/files/ghc-6.12.1-configure-CHOST.patch29
-rw-r--r--dev-lang/ghc/files/ghc-6.12.2-configure-CHOST-part2.patch42
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch68
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-autoconf-2.66-4252.patch20
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-freebsd.patch58
-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-ghciless-haddock-3558.patch224
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch35
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-ia64-storage-manager-fix.patch62
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch12
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch61
-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-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch13
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-ticket-2615-linker-script.patch278
-rw-r--r--dev-lang/ghc/files/ghc-7.0.2-CHOST.patch89
-rw-r--r--dev-lang/ghc/files/ghc-7.0.4-CHOST-softfloat.patch14
-rw-r--r--dev-lang/ghc/files/ghc-7.0.4-fix-ppc-linker.patch23
-rw-r--r--dev-lang/ghc/files/ghc-7.0.4-nxstack.patch31
-rw-r--r--dev-lang/ghc/files/ghc-apply-gmp-hack60
-rw-r--r--dev-lang/ghc/ghc-6.12.3-r2.ebuild579
-rw-r--r--dev-lang/ghc/ghc-7.0.4.ebuild600
-rw-r--r--dev-lang/ghc/ghc-7.4.1-r1.ebuild603
-rw-r--r--dev-lang/ghc/ghc-7.4.1.ebuild590
-rw-r--r--dev-lang/ghc/ghc-7.6.2.ebuild713
-rw-r--r--dev-lang/ghc/ghc-7.6.3-r1.ebuild6
-rw-r--r--dev-lang/ghc/ghc-7.6.3.ebuild737
-rw-r--r--dev-lang/ghc/ghc-7.8.3.ebuild6
-rw-r--r--dev-lang/ghc/ghc-7.8.4.ebuild6
40 files changed, 52 insertions, 5439 deletions
diff --git a/dev-lang/ghc/ChangeLog b/dev-lang/ghc/ChangeLog
index 5faf5d22ac39..7cf7ef9f0423 100644
--- a/dev-lang/ghc/ChangeLog
+++ b/dev-lang/ghc/ChangeLog
@@ -1,6 +1,40 @@
# ChangeLog for dev-lang/ghc
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.272 2014/12/26 23:35:44 slyfox Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.273 2015/01/02 23:50:56 slyfox Exp $
+
+ 02 Jan 2015; Sergei Trofimovich <slyfox@gentoo.org>
+ -files/ghc-6.10.4-autoconf.patch, -files/ghc-6.10.4-disable-strip.patch,
+ -files/ghc-6.10.4-ia64-fixed-relax.patch,
+ -files/ghc-6.10.4-ia64-storage-manager-fix.patch,
+ -files/ghc-6.10.4-libm-detection.patch,
+ -files/ghc-6.10.4-ppc64-always-minimal-toc.patch,
+ -files/ghc-6.10.4-propagate-hc-options-to-all-libraries.patch,
+ -files/ghc-6.12.1-configure-CHOST.patch,
+ -files/ghc-6.12.2-configure-CHOST-part2.patch,
+ -files/ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch,
+ -files/ghc-6.12.3-autoconf-2.66-4252.patch,
+ -files/ghc-6.12.3-configure-CHOST-freebsd.patch,
+ -files/ghc-6.12.3-configure-CHOST-prefix.patch,
+ -files/ghc-6.12.3-darwin8.patch,
+ -files/ghc-6.12.3-ghciless-haddock-3558.patch,
+ -files/ghc-6.12.3-ia64-fixed-relax.patch,
+ -files/ghc-6.12.3-ia64-storage-manager-fix.patch,
+ -files/ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch,
+ -files/ghc-6.12.3-libffi-incorrect-detection-of-selinux.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-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch,
+ -files/ghc-6.12.3-ticket-2615-linker-script.patch,
+ -files/ghc-7.0.2-CHOST.patch, -files/ghc-7.0.4-CHOST-softfloat.patch,
+ -files/ghc-7.0.4-fix-ppc-linker.patch, -files/ghc-7.0.4-nxstack.patch,
+ -files/ghc-apply-gmp-hack, -ghc-6.12.3-r2.ebuild, -ghc-7.0.4.ebuild,
+ -ghc-7.4.1-r1.ebuild, -ghc-7.4.1.ebuild, -ghc-7.6.2.ebuild, -ghc-7.6.3.ebuild,
+ ghc-7.6.3-r1.ebuild, ghc-7.8.3.ebuild, ghc-7.8.4.ebuild:
+ Drop old. Seek kids: those were Great Folks to deal with. The older 6.12
+ brought us The Rise of Arches where we got back long lost lore of having
+ haskell on alpha, ppc64, ia64 and sparc. While younger one 7.0 was The Herald
+ of Haskell2010. So far ... Good luck!
26 Dec 2014; Sergei Trofimovich <slyfox@gentoo.org> ghc-7.8.4.ebuild:
Added alpha binary.
diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest
index 1edc6cef09ec..6e9e7608f56f 100644
--- a/dev-lang/ghc/Manifest
+++ b/dev-lang/ghc/Manifest
@@ -1,36 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-AUX ghc-6.10.4-autoconf.patch 2010 SHA256 125afd89af86b32bcf88dd97860993dc6f7ef9920a3f3dfb577897837fbcf4fe SHA512 c51552c63bba8a13d6ef379c6f1b563aebcacd4fa329d35ae29ca1ebbe99472e8054d12908f5f810494e7c6c9957954f1bddaa3b45696d0fa4712ff76c710df0 WHIRLPOOL deaa24a45ca6b9594a3b06ec0b1cd403c8f774c9b73f6f6433c1fbb03fff538d189da9f40b45ae602ed53edb9b22837915cb7b8ba9c0e1a55d64dffc8779e929
-AUX ghc-6.10.4-disable-strip.patch 782 SHA256 3d61160acc28afed2c2fd0a37c460b57368d81d5a18c8fcd07867cfdc8a190a6 SHA512 0206d9f2143df00ad0461e32a79b24ab89f3eb75f11d65e2885df063127c8e0ca1bdb73b66316abf1ad4b0b44654a7a51e34e3030508f91e701bba3fd336bf97 WHIRLPOOL f1f51c320000bca4299aa66389a19914e8e6bb4ab0bcc775acd92740cd8cd669463036fc649d5585f68277b609851aa4d750e9731b4b879cd5fad848fa630532
-AUX ghc-6.10.4-ia64-fixed-relax.patch 1368 SHA256 f2862403cc89c3f7e83fcc569cf357597d70afd444194178eb2a299f16a938c3 SHA512 7307d9e3e0ae8b806a19629b3c446b796eeebd9cf00b689666ce4e6c66a7676fb6aadd20ee232735e8776a36e26a375b0b2f5360b4bfcb774f8b75aba7996abf WHIRLPOOL 349e3b766eacbbde8bd3369b5a975a602fec0cb3bf7f1ee3e503b43886146c9237b42a87f3949dd34e85f00b3bd3229a83f40099dc3175b1b5057823cb6426ac
-AUX ghc-6.10.4-ia64-storage-manager-fix.patch 2978 SHA256 8b650cdfe0ba5657dd0bced3c07f9d3dca7a1e9304ac1d70099cacc0829650e2 SHA512 3d00c79a54b0d657d36a1bf4cce0eb0bfffe2350bd68c48ef33ce8acc12418b04fb7de632618f1036c62925619bc05396b264b23ff78b1f29a39ddd32e0e3f92 WHIRLPOOL 8fb4fe26470eb16560fa531503b93698fb8f784db44a8facc99efaaeafbde7aaaab6eb0594866618dd56805839374d798fc0b8b817926af481b8c3f6f090b308
-AUX ghc-6.10.4-libm-detection.patch 1791 SHA256 05eaaadb68ae16b7569a722008bc9a697c9dae84673b285400c6744cb600a3a9 SHA512 5d6ad82a4e119a37dee9f17c448a8fdc4af4bd182c1479f8839fc20a0a1eeca3b8cc6c07faf0864bdeb433d47589da44551c9a63f4107723d0e5d41e51546abe WHIRLPOOL b31dd65d2e80562502cdc77e33bc7359bfcb642777a5a448be1a21171d045877b3249d7757727a17179c4c81c2337fe9fe0d79a43cb4c97b28d659cbffca4292
-AUX ghc-6.10.4-ppc64-always-minimal-toc.patch 289 SHA256 4d06007ca8a0542e120a189d49c743c1982f5b098504e031327b51f912cd69ad SHA512 e03aeaf39dcc693675ac9cf1c90162f8d5021bdd1323787594eaf2215985ea1e096e23b945a66b5c6f3f5f44c80d62d7f3a52622fff05bd0d2723ffb5fefb78c WHIRLPOOL 049927fad6a535c4d3f430884ffeb0887427c0566df295f9ee516a633f163bdd783ee6ed901b8dba95d227acc120bac80935f3fe85a7907be48f048fa30aeeba
-AUX ghc-6.10.4-propagate-hc-options-to-all-libraries.patch 2976 SHA256 d8d191dea237d2492202fbc528deaebe5df7a48201868a2b969a5865758cb4cb SHA512 a8a314dfaa8de223ba59a76adb5eb9d808892948372ce055e7beaa262d5c01010d141bcb621998808adfdd166505bcf200c9440d72c54add8cfcd00788b7210b WHIRLPOOL ea3a9123815e92db207bbf94de0085646f9f795eb6ff20efdee2322c0f0f941b8085a37518455802772a0d70d943b4d795033395bdbf86a68a8705121f1ebc0a
-AUX ghc-6.12.1-configure-CHOST.patch 851 SHA256 b4e1ebeea2fdd1e04f14140fe07d991ac583f221bc79f0eb175fb378ed12cd69 SHA512 244324a27103eb939dd701a0a4fcfbe2576e0bd995f5e390d6c8c96eb3b16ac1b9d9ac8197cc9464644ff33a9f4e27cd71f7d5fef86d500274f864832a38ac85 WHIRLPOOL 2c1a4fde08bc2ae7b81d22c5da9ee8b479172b67aa82297c7e2fc4dcc7b9664555eee5b5aa4cde13721adb43b999be9647196d655b1294318c568e29530458a3
-AUX ghc-6.12.2-configure-CHOST-part2.patch 958 SHA256 696cf5693b714b2c19cd3f32d5e96677cf9ad828a3f151f0c16fbc16585227a4 SHA512 3a6c6aa6e05bcc67c08a23b14cc2a17e5337dca5058f0acf558d96b61da9ccadf2dbdd325e72bae64ffd897f52d99d9459d55950c028200f97f5b6b10fe11b8e WHIRLPOOL 0a578314ce3c3f91ee5845d4b88b561704eb5e2e2533cdcb26da004993861442af5edd8428dcc783ac371b9f2a090278bfc81905ab7b29760ab35f5383e0c019
-AUX ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch 2575 SHA256 9b9748775ddcafa0171f1594c4f5e0c90269e4fd65837d9167b127238cec3d93 SHA512 786c37c6cd6150b464c68c438e13e7d918d3f0ae5f8c9cd19cac5f24a49f7a3bc4bcce434c1e6ea89b6e51411dfdc3538bbb257d84ac919cfeb642d2d17706e3 WHIRLPOOL f12da2b9754e60a9cb192cb90075842aba970f87359c7a1d8cdfe0df8797f76c58686c2bb9afed02a0c1064509a6dda9ff1a7b89d056e65cc72356786ccd6786
-AUX ghc-6.12.3-autoconf-2.66-4252.patch 950 SHA256 259813eeefebfc9656341dd6939ab6e7a3257336001d794042f1e6a57b3b20c4 SHA512 19dac8cb727ff9566ba06f46788381f31158c0cef021f0c97d9ccd30bd44d844ba728da13d4ad522d980e0cf8912ceb1f27e167f8c8dfbac3d5974bc9091efc3 WHIRLPOOL 65d8ae3cad5f37b01a661f1e16308e4a08adcf28200f82e4e9261a2be80323a45a0b0e1ca6305dec0be3c90e6eac285c17c885456e0d41c7468d215693e03eb5
-AUX ghc-6.12.3-configure-CHOST-freebsd.patch 2375 SHA256 fd4edb1ff5c1f0f08ffad4bae3b2007af948ecdc9c5c285cc6f2953bca25d3cf SHA512 98073edc7342ac58a39e515d525d0fb15120a37a6e5ca05fec2dd62d9a3dccdc889b88870d7c37238c6368c7e01a9388d2a30e8ecaef73b667c8c33a599e7b12 WHIRLPOOL 0054692e7c3cb6867d0dda6970a42ddfdc65f8674280b25740b41355434666c008ed1a06c010861443f9a6f44ab8fb11cec08cad7d76ab25ebe9561c29ea253a
-AUX ghc-6.12.3-configure-CHOST-prefix.patch 1438 SHA256 f1a2ff270f308e4146622ef37b0b00f59e42c1251e17748d20f986f79d4fca4b SHA512 6eb0b3c99101ab5694d9ccce7b33349a85902e22bdc6a18f5934b939e61d5565ded1756f5045c3539620d340289a502aaffe18f553e8078b3b424b01d2959c22 WHIRLPOOL 64977b314c2867f627d44a6edb7f39d3557372b72c8cbded41f46c271936ef782eff22c785f5511f6241e5d77b3061ad28f17cedc112908e9a718d3667c8fa8f
-AUX ghc-6.12.3-darwin8.patch 483 SHA256 5b3beb68152a3831a1fd3a1f50d1ae768745872b425dba8de0bac35f8ce5bd72 SHA512 6d903fd4c5c9dfe20c8e5b3717ec0aa91864932fa69fa56375f42e30d1792b31ab376d816751c4cb17d97595b4968503356f3f40dc931a0f995968769222a164 WHIRLPOOL fa0529c8f17f891bdad08c1e051b1d905533aa3989873bfa4617e27b8b0a4cadb5a1fcefb0ed9742dc3a9f1975264e18a18cbb94610e8ac99dd5ec608314f6ee
-AUX ghc-6.12.3-ghciless-haddock-3558.patch 7222 SHA256 79f9d9931d3e9d5c45247814226372901f1db7a593dc97bff63ae42b767f3917 SHA512 d8b51bea7de2635dbd54c892bb1b13919d4f3e6d05476865388590998062512da227ffd818ee7a8eaa8c65ade36e312af274d0a1c23db51ba3155d2341850b27 WHIRLPOOL 2f0137f86b07f7caaa15c2183c26d38058ce0befb7664b4fafd936e06fb9e2f5250d9c802661a5bd3a2de4e0532c3a11ae41340343eb0fcc2a961f9c8da4de8e
-AUX ghc-6.12.3-ia64-fixed-relax.patch 1362 SHA256 db632a48cef7fdce8fd24759af33527d489121ce3e67cbbcd235608aa0247a31 SHA512 f1802f36b92e6f82f373d7f941df6469df5809c7f3246d5e2b6812a614bd518c4fef3d3418dd82dd72605e08e09172f5365bb85eeca37b25c204cb517de58c59 WHIRLPOOL d9614cb7a7e38e1ede0e527a81b8708ab6eb90d1398b8d962a920c6674c36bf15e3947e1757deed3cf3ab154895bdd7d024dde7717b6cf48606c95736a25cdf6
-AUX ghc-6.12.3-ia64-storage-manager-fix.patch 3035 SHA256 9e08ad179c7fdc7de1899f89560ec26215968187956f2853639bbe85650fa2ab SHA512 c6d6fd22b3c0c0fefe567922ee5487cea213f8a9eeba82568ed5e492d81efe1f1f384a34127f6acb7ac54077121e356b80d396c37a4e2f27a9f27e3ce08ba4d8 WHIRLPOOL b1ab7ddf569856aa23e4c5a10ea4ed57d6dd1e26afdb1041a4f5378c968634f8e30880ef78424d29f434ff274ed2e10e926baccc1a4b9994963a58add6d74d22
-AUX ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch 683 SHA256 82f48006c95fb9d01c8618f7457cd2744d7a1fada8c70d25544eefa23cbfde2b SHA512 118074b626beb4882f89e4f733e1a6b3fc9d763fc11bf6bb69cc115c126dd5e14da7574983240a9169cb769260ee713e5ef81cc54c69b60f0d37d9bed08b2916 WHIRLPOOL 9d94ed6ce0392f21e5d5f8c88125c5141265d0066948608330eb3b8d310e1f076062b94e6447b32ce1ca28fea3c1b5736cac03aa1242078c374d10f46e4324a5
-AUX ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch 2228 SHA256 97410ae73b0e1cc127d5f07b39c3a6e0a3fdaf36491af17c7b7eb0c9c8d716b1 SHA512 21f6b6c9dee4a69b0fd628e611b99106be3eeb63c9cba9eb52ca646c3cd25f725d9566682ebb3a91630160167818799f75f37f6b050d9a0d9166f2504bc16955 WHIRLPOOL 8112cd7a8060a1da2bf69c537c03c8b7c4fd5a8cab96d17e87007ef4cb58c0e9675d3178c8cb02acd16d07ed925fef2c3c671580c383ee1c58144bed471446e8
-AUX ghc-6.12.3-mach-o-relocation-limit.patch 1660 SHA256 22b280bf837604a063d48acf3576cbd81dbc797dfa6dffb513ac0a1d9e0d6e36 SHA512 4bbd962eb5623c886cb7c2fcccc021709fe23a7342f7ff171508d7b6469d27ab7d08711ace98b2b08fb48a6c55d53149f6b0674bd5582155b878f346ad56a159 WHIRLPOOL de3fc86d6ee4be27374e658173050f6d04ff8f4e30417bb79a41e8059726be895b896bb8474b079276a49f6930fd641cb5939d7e700189f76a347f405804be4a
-AUX ghc-6.12.3-pic-powerpc.patch 965 SHA256 90e8ead455df01ce67b757fb5993291f64c755f008fe052453aed0f40d652254 SHA512 8a37e5554e20528df89d5431379142f3cfe08260312a6fd37b6dee506f4fb41d47251c89c9057695eebc55034c4e95ef1ae90c95c5254493b34b4dd8afd344df WHIRLPOOL 1ac2e589fdba1eb4642ede915b0259f0c44a7067ef4a56886722fe4055f5356fc63c4739a23b1c3be8eef81a499cd3a43d6919a192497183aeeba2da39c79604
-AUX ghc-6.12.3-powerpc-darwin-no-mmap.patch 1482 SHA256 2921717b946f030f27fc1edc0f3770f47c52465512add25906747c789bbc0934 SHA512 5122dd0344db2ea5a6b4babb0929f2b2e151e702c0591ba27c96f9651e13a1782f4abe919a7ae280ae9c92f6840bdcd890d00a32911358ef50fe0cec8e1846b0 WHIRLPOOL 33a57c95dcf05773c460ff9a8b5418a2c2eec826008e171e40d53292367583c89d9c6398a1c1ee060adc592f9e63500bcfa8944dc60d34f9b0aa4b26e6ef966b
-AUX ghc-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch 609 SHA256 537a96473cec66739534da7cc88bbde37d7f5f0ab158a9921e666985c18fc1b5 SHA512 bfce62e39fbf5f722f68976aa800760db2c7399e9434f819f88252e84ead3e4f341c780cd3e7c13817f015a3de38bd6f8c6f668708478467958300eaddcd03df WHIRLPOOL 6fafaa41748dab23e8cbf35f7bbe42182ea68966a811b9566dbf118b10fc22e11c4cd6acfa4f1abffe36786f96b31fb8b44e61d2befe85f3ad5dda9174d38954
-AUX ghc-6.12.3-ticket-2615-linker-script.patch 8956 SHA256 e670eafd89bcbf7842eedb16af6f538e11c9644c56af6eaa8a3f87b8d0c794aa SHA512 4d2eb22787a2ae0745922ca13021cf910011986074b00fa26984e21afb7c0e0ac851b8bd34d25fef68e003615fa54647128a1692d1bc5a7dc7ff1833024d6309 WHIRLPOOL 55fa0dea4077119114c4edef65e0a9ec3ac80f9e9709f504fbbe161e796b8231a5bb8555e20ae9164fc724b3e7c3c2dfe5e3b32902ecb2cbe00e60750397d608
-AUX ghc-7.0.2-CHOST.patch 3027 SHA256 0f7081318e06a4bc013e2e7ac18c56224558d4268cf98fab3f9b3fe5367b9a9b SHA512 08feb2ed29d760e218c57440c5a1b32644b849fdb1ed7bb2ddb86d6f1aceddc1f064bc7dc73ebf326b4f6293eb33f356fee159fea38cdad8376b2f0c1e14dc71 WHIRLPOOL 7698cdbf5bf9ecc8d82392c314e45e99ab08f595d427de864737fae79e12cc81d35e08cf61fb03110fe57fe3e9f9592623eaca721da38d2ab5294fe7d2e36cd4
AUX ghc-7.0.4-CHOST-prefix.patch 272 SHA256 83942dfcbe1968c7f5e0ae09e4d84d77d85778839814fca1689e168cad3a4f66 SHA512 e969478289c9bb99e24ce73acc8da866e2d2944405849fe10308999a386c57c2058037e142ab8c6548f1f4e01b7722efe4af9fa6c375f0988ff5a023bd2a96dc WHIRLPOOL a8ea4c41a895fab20c7db9bddec330d2a9192785d5a0b488dee622a8a739d37c187d5585f57d98c78379a1dea21dea7cf8f0c3a58dd1c44de2fcbdc11f732427
-AUX ghc-7.0.4-CHOST-softfloat.patch 371 SHA256 90e04c7d56612d24920a1801865b8e53f6ac1e291a11a6219f939117613e5976 SHA512 91f1f103d366bf893ce85d27dc5e6fbb4a389ea48322dfdf703b1d40ea21a30fc7f059054bf7de18979b476bec794627d6631e255c9e018c337f2e66bf479840 WHIRLPOOL 99dc171dda0827c5d86b707a22333a8ff5bf58895f47e7de2c2fd1a0d3030678b90f21ecf934c573586c83522ef6e74e1585b7f678020680b4fafff288c21991
AUX ghc-7.0.4-darwin8.patch 486 SHA256 b0857679f29aab3719df5538a2f104924cf5df913927a2748be3f77d2c8ea481 SHA512 9e3b5c36a85fe4dc63d0917639925b9edaa58363ad63e6bfd97adcddc5d5644ed0176bf019ffcbe8acf2487f014c29b9a5e51c8a83d58349a70bcdc3a7be2d07 WHIRLPOOL f2c8938e55fdd4ead4a472ecada906040242ecabeebbfbb8339d9b7d70cd2370f5e0eb057c3f96dfe07d48de42c409071e57f9dd663a5d03d827b465ef1719ad
-AUX ghc-7.0.4-fix-ppc-linker.patch 732 SHA256 983689df4b59985ffc2aa116f553d91c9743610e671530350d7b2c55998d1549 SHA512 091db7d8c60824eaacfdd0c260b404ef6ec2c4aa29caf7696a178ab5addd82a2232bd3f93cefa5137a137dd52b40c84f767165133e38d76573098853104a9e10 WHIRLPOOL 775c6e5d529317b2a4521a4cb09a3752261f484b0f601ac3babb138bd14c79ca13357efb3f69545103b1c173429a608389f8c4841b5902d6cbc66188b8e81667
-AUX ghc-7.0.4-nxstack.patch 984 SHA256 325f00f12922edaf54e6df56acc7743e40234c53e2f341b9a28e4fe22fb4569f SHA512 adc03a3d2a2eb666862851d60d17adaeb72585909c5d519907db5691bd031081efaf87dd29ea160ee4fd23e461df0da0530749ec2c29bff9fb23739c2126da4b WHIRLPOOL 7941b9078bbb3c954a7feecc2c3c9ef8642c34623e2ee5afbda3db95c39bdf63fd91de2305e23024b1ac92e9267b1fdf66b305f75661371184597453e4272506
AUX ghc-7.2.1-freebsd-CHOST.patch 472 SHA256 f9538a6d3fc3e9023fa1647ccb05ac3f93cdc285c4e8cd2cb7fd5f53262dbabb SHA512 abb19147a6754c7b926c6f1320df5d623a78b6702a0337d18c1acf20734bd85e3b4116d4ad48f5314f1be1061b3d9f0e20c6714187fc7de7602c39bf5cb6b3ef WHIRLPOOL 68132b52542dc8f46a99e9684946520f7a438f523c947549d26d5f4753b13fac335525cc9cf68aad501c76b08caaea1807235fc25cff1a82d773b5c7ace6827f
AUX ghc-7.4-rc2-macos-prefix-respect-gcc.patch 776 SHA256 7ffcbfc1822408cf8ed17f2f35c192e56967fc1e83265764aa414b868b69f463 SHA512 9b1a6dcceb7872138c793d2fafcf47fc3dce02938378172b8c57ef8742b31a0458bcc349e469dab5effa10a66d3f2bf861f92edfa9da582edc2218e129a0d756 WHIRLPOOL 7181704e710f2c1c056a3820aea4bc70f5dd7e137f78d7b1bd22160af058fade843026dd72d70323df7f1c2c74148704f219e6e7dc77ab70f8fda9b43f28bcfd
AUX ghc-7.4.1-darwin-CHOST.patch 461 SHA256 0ab369e4f3dd0ffd15e9ea48a3b0e45350cae6831e58a82a1fbe0d745d0f7839 SHA512 ea8381354b703df86e91f73a0767078047876153748ec2a49c28ca102d3aac4ac39ee211c75e7eeffc16f60b31aee618ff6e581fb36a2e5151a179af154d78a1 WHIRLPOOL dbede3f9785947acfd46763f93a6f7672fbae971a23c5c7ae1935ff7e1576ac211399344a5aab442fb183a2c67e454f9c65dce9b0e572f3e57c54edaee0ffaf1
@@ -51,45 +23,12 @@ AUX ghc-7.8.3-pic-sparc.patch 1007 SHA256 71a77d9d43c76a5bb712bbd4bc00892058f519
AUX ghc-7.8.3-ppc32-fPIC.patch 14549 SHA256 413638aeec8e7cf35495f163e584d459870ea001e74360c546419e801eb36b57 SHA512 aa6f13e04a52e7f25db456c02031b63c01b71adf41262361b36ca97aec18965f618ebba73494b4283ad3c0224f15d5c80dbd43076553e604d86a07baf7fa86db WHIRLPOOL 98b008bf28280b878446f3aab83176334c4dc27c759d408eff2a6a52e84d8d7f002f3cb15be8022e6c8ebdb3d364067db0738a9ca96c4159c213eaa925ea63e6
AUX ghc-7.8.3-prim-lm.patch 444 SHA256 c147880c5c9f784cd731749589009a777317bd32b80b63f508730854025fcb7e SHA512 6979e002589a54c870c70eee8357dad4feb55b4e5102350cc09a466145677dacaa1bab5ebe4818cf0d3cd8ab50ee0ec2ab642ab0fb3fd34f4a266e5e90f9f389 WHIRLPOOL e33b43f42fa5e408d7879822c5081c89688cb924fadea32bb3c7ba426661c6b345e2051aac29e5f73ec2c7eafd63ae87413b4d52228e7e345308f5f816e1117a
AUX ghc-7.8.3-unreg-lit.patch 3248 SHA256 dd7dc819e0211f936c8bc450adb90c433ca7e37596898c97698c93dae7c4011a SHA512 c16361d3bf04839106221e18f9b1d861cf52da8091276fd4e6347f24e0707093b94e4d384bd452e1d7ef772392b8ce0103e42d68d91ec583f26250bb9af2be9e WHIRLPOOL 94194d10dd6b5ca9d624071bc455a1d76b4323f2cbc229bcb4cc9f41089903d7405cfa2e1000bb24b5828bcd5bdf1a44defe5c95a26e8d470c899906f2be0784
-AUX ghc-apply-gmp-hack 2585 SHA256 0d3c9e52be232734c916e9765fae770225ad6fb04c0948780867450401ff1eed SHA512 54d4a7ccb4a652e36b012bfa37696895755495a698449f77e854822f0be10d33803a7d049101c8835c8bcb587af3b5ab735e578e820feaa6a90bba0e21ad0a63 WHIRLPOOL 76d2d62886a1dcdb1da1ada62e48846f20b91dcdc2d1d7882107fc7662dd127a821f275eb909b93e4a3e0733c70afb70e41ae405da2eb39f57246f3dec01a914
AUX ghc-bash-completion 6496 SHA256 82a862bea2c9248e06fcf74d307de07b05a55f9eb95f412762bd02e53fece822 SHA512 ede79ccf23555f60f48297d29bd98e3ccfd67d2cf27462153e00beb930398cb497e34ba8316e91df44c577ed11fdbe5606f7c6a2777e35d5e783590e49ccfeb5 WHIRLPOOL 271dc4159ac500beb53981259e4b154b1f96e2909bb7cc43b7364f4fd4f86ce65df04611a46043c14079f699226195a002532fbb1e4ec01715e07e8469f9a7a4
AUX terminfo-0.3.2.5-tinfo.patch 1217 SHA256 dfbb8d5c9ca133837e6f6be766fa8e3af2715e39d8994e56a4a84d6cdc15f9b3 SHA512 60552b163295c565d506b1d3c9624d6d0e94e814c37bb38d0cf0911e153c593c2bd13418306b44fbe611b7fd9064307a201860ed1e2ce5f2a7bb16618bd0b615 WHIRLPOOL 2c06869486a8eb08ff63f7bacebfddfdf68cf0c0dd94ef3578c5dbc49b4374b2ba8c0de9ac2ed4731a3ad27466a4169d2bd13d1c208a8d0aa1226770bcb30847
-DIST ghc-6.10.1-i386-apple-darwin.tar.bz2 97910484 SHA256 b806bf9c163314c3aac389df1cf5f30e31d3557baa0eabce9279f6ef58305d51 SHA512 63135f3b2c14bef9d7f4d2428b2fc018adc62bcfad7561ee7003b3e131462ff1c0d21712d8e9523e77c9458671a888de8bd62476eb83bd3b2e05d66282700672 WHIRLPOOL 696acd0c2d8046fe6c3b6d72bd938bc61b2604bea6ba595ab6aa660c476172a3caeb0e72e286f4838e7ddc1d3889dd45de1297209944ab465142e65fd1329b05
-DIST ghc-6.10.1-powerpc-apple-darwin.tar.bz2 110038307 SHA256 06a0712a18d328e408b3057a83e31ee6695b5a203f1e492ca1964a7899834134 SHA512 ec4310bdb531d8db196ad73ac21d70864006004d1d32584f726bb8a9175ecff361c5a09c5c5a6124d9f2bff0e15606043f8558aad4bbfe8effd4e02af38b93cd WHIRLPOOL 1455a31f06ab086a2b0ab1614d8aa6f7814c15f8ba81043046a098d58d5f3df88f8b797bdc22f95d99d0f6fc31ea4d9f102e4647fa090801abf7ce4b42a29924
-DIST ghc-6.10.4-i386-unknown-solaris2.tar.bz2 78409258 SHA256 f53bbffff5b469fb4a6cea6ce3965596240549529306c8a9cfbf0a9cf6296eea SHA512 f1ba4571c9bae6e10794cd48fed56d4226c86f00e72e3a07f42db5858bc80908c2068648422a90850e70221e23305b2eab55d66f1bcfc5db7924c06ecfe74623 WHIRLPOOL 5428812e8e58e0c345b922a28aea0a32dc7dafb0275883956f683f1e12a36f1c32630187581addb231d5eb3cf3bdc5aade03efb4f574beca999d18956697fbf8
-DIST ghc-6.10.4-sparc-sun-solaris2.tar.bz2 87371847 SHA256 bc6fa54fcb66d3d5f14c4bb32bb932a9168040e3e7eb4ef410de7fc18ecd3a38 SHA512 fd6d6c119d4cbc082426c6dbe85b188e30471eb1ab5452238e22f79d941b96c7d5b7c2f951c1bad4ec7692d8f63d5afd97072b1a1e4246bdfa162dce5af92337 WHIRLPOOL aa6067bace184b29550cc9b677c495ca32bb2fbb98106ec347e1b99842580c4a91724d63984c793156f1db7667634c2f40655ce2da9aee105ac9dcee0271ed74
-DIST ghc-6.12.3-src.tar.bz2 26592939 SHA256 6cbdbe415011f2c7d15e4d850758d8d393f70617b88cb3237d2c602bb60e5e68 SHA512 e6f021d92fbdb5ddd041811ffc41750a24bfd625cced89c4e13443d1d749dc5288d342f631713d11f0cccf68ad416957254e89f8c5d839133225af6b4042f791 WHIRLPOOL 364d31e44af60437317ba277e3ce83c00229c2a03d70472133c4cba78ac912b78394755bfca0e9ff184bf319f1ecb38e2ad0184eb930420eb6fec19f51293864
-DIST ghc-7.0.3-i386-unknown-solaris2.tar.bz2 85219039 SHA256 d1e6fb322e8ea2f74b9826686f477a0838c0bf06a6128bfa0d05ff7c7afb1356
-DIST ghc-7.0.4-src.tar.bz2 24205070 SHA256 1a9b78d9d66c9c21de6c0932e36bb87406a4856f1611bf83bd44539bdc6ed0ed SHA512 acc82a1c2f23cfb2841f5f236cf8721091a969ee21e10af63a3d690c341d4d66c6eb0b5419e78a24677e32f16c03253691f89dce6392bfa775af902aa4682085 WHIRLPOOL 1d2dfc68e94012496b84f08b629b47c392150fea43670694a4659fce6f8e9b8b474ea46d4f69fe568fd6cffd1d0b6109e5e832be1251ec100a18db183ab4bdbe
-DIST ghc-7.4.1-i386-apple-darwin.tar.bz2 154932146 SHA256 0dc5a8eec085e816c234e3fb5db5b90e0bb014e140e2fcacbcd4de24c753542c
-DIST ghc-7.4.1-src.tar.bz2 25272609 SHA256 721c09a49e519b7459b67b451b5103252ba3833906a7a24c3a3679ff94669a79 SHA512 2d92deb2e9373f816b97acafd9239efc35bad1d912dbe57fc2744b35cb0e156b031b2b039d8699ee1554179ace15a94b03b62b1395d0a87703aa524750b818a3 WHIRLPOOL 6bd5aa1e3aa9381ba0bc8689a357971aee79af4e4a40e1c6d061eec4738110d9d5d9b31e0fa57131acb868f319b921134edf953b6dd743c3d6ffa7f56a1fb92b
-DIST ghc-7.4.1-x86_64-apple-darwin.tar.bz2 148037332 SHA256 52eb17e513f9eb2e221b2183ebe6e8aa4358275128ea416788d2deb7e0a751bd
DIST ghc-7.4.2-src.tar.bz2 25836446 SHA256 f2ee1289a33cc70539287129841acc7eaf16112bb60c59b5a6ee91887bfd836d SHA512 5a3d06a36702fa7e337b482c9de92ce1f84a68f18d8560bcc11f3617d6d46f93167fee27e786de6483a9ef0eab3b1ac6909a71dd53908d36156df4e465075050 WHIRLPOOL 61865eed2bf92728e7c4c4a0c48be44081bf728cfd824760d643e2fad838d96c19e173052d3aac073e0795b5efa3720ba5ddf13cca1ec7952b7524bbe1f204bc
-DIST ghc-7.6.2-src.tar.bz2 110778081 SHA256 d5f45184abeacf7e9c6b4f63c7101a5c1d7b4fe9007901159e2287ecf38de533 SHA512 2e6e54f509e564f3713ea15dfefb16a84a467f8044c692ad2647c05b641e1ccb4125b9b63bbf711be1054d7ef56612186d2b9cd88ba4127fe01eec225152e4cf WHIRLPOOL 78724187c0f7579c3f39f257620d3046711f20fe07c540b6b70cf1b0b87bb8476d2382835895b5770865faaac291de05be88e2708fd0c1956ad7bc132d558b9c
DIST ghc-7.6.3-src.tar.bz2 110763823 SHA256 bd43823d31f6b5d0b2ca7b74151a8f98336ab0800be85f45bb591c9c26aac998 SHA512 ac86f18b4feeb0bdc9e867261600b210caf62740d73ae657259bbe8149b8c2c4f5a73d09d74d944d4e50f85cc87503485365f0a0ae65befe8d2b6844e5e1253a WHIRLPOOL 0fe1f5f2987699067494559e6a679d28f027eee8fb2a00c683161dbce5443b1faeebfb51572209b75231cee24c7f0c929cabbc82a93f70e16d05e351fdfe2eaf
DIST ghc-7.8.3-src.tar.xz 9160092 SHA256 b0cd96a549ba3b5e512847a4a8cd1a3174e4b2b75dadfc41c568fb812887b958 SHA512 2cc8c2aa6f18ba565c1e2aa637045e246f1214c2a77e95c2a97dfb97203b8983e4ad3cc13178b4b51aff70c58d59a1f68f94cd813d043745cb02411bad04bb00 WHIRLPOOL 3a2e8eea0db7a150e4732efed488a3a5eb56da00a9a90a3379afcb4090323925a2a7485fec6676e784139f112d7c825e8d18a576c34c760af4a7f3adb22c021a
DIST ghc-7.8.4-src.tar.bz2 10600755 SHA256 59e3bd514a1820cc1c03e1808282205c0b8518369acae12645ceaf839e6f114b SHA512 079a53891d8ebd8d9b88da96170e60981608a619f8282e4b7948f35244e99bd87277649ac7fcebc227a61a4d21960db8d5e5b9e92f2c69c82d8d68d7fd0a41d3 WHIRLPOOL a9be7641adbd237ed6e0f644c312e655e98be9566097aee5e2c0022e8756d5b2236e42dd86d76c638a001b5ca3f67307e89ec0cd003a92cd112a5d6d3e3d8467
-DIST ghc-bin-6.12.3-alpha-haddock.tbz2 106307940 SHA256 22951ccbaa2e77f811c634fa95492451f28f8b79e5cfe0297890ce1dd9d525ab SHA512 47b124cb2b745ffa6471dd75b9b922170cd275d837093f320116a842cc2ed4e6f215128fe7269bbe5f85b34239fe46bac697d7210c2f5df97b67c5629ea30c94 WHIRLPOOL 2f26c8c046e779ed63f86fdfcf2cb4815f5f0ea08b0c6c98668909a7a3bcca3c6fa2dac390d3bd066e197093227086cbe4bd5c35044a23d344e591b5d5a1cfc1
-DIST ghc-bin-6.12.3-amd64.tbz2 82390661 SHA256 6a1c9978c4ad19bb98f70b900afa799f16cfd3e159bb6d51437c264e35f4d6cc SHA512 ae883f94621fcf0ffe8b57954e403db6812769bbeee92e031be49fc9cc2087c7700bb6a36c6fdd170936c2fea9024d2400db04db94c530841ab6662be34227e8 WHIRLPOOL ffbb50018216af9cc84d2cc04a39646dd47f70e1451bbaf700495864edddbbf729c61c3a020dde472e27236b19151b3373fd1b1735da5d3d9f68c63d9e3ea4ed
-DIST ghc-bin-6.12.3-ia64-haddock.tbz2 113756002 SHA256 135c60f870badec5e10add87061d0d9c85276e182ae448ab52c6f9f7ebe6eb2e SHA512 0e789ff5af719106e9eac030c477109a928f04facfd9b7da0c55a25465cd5c92c409d08838f75206939943df6c028e302854da368eefe17fd704c88bc5e83fe4 WHIRLPOOL 7e6ad1b44f28724c4cbf8c618aa04202e61dddaf2f50a71de42161d32b78573fc530aeffb1cb4b550e2141690515487fd99e8c5e01d5c79775ffb771ee5cefe9
-DIST ghc-bin-6.12.3-ppc.tbz2 88933294 SHA256 36eb2d458c48c09a2700fb3814700cb91669cde1baf15af8a332b13b5d3e4236 SHA512 7b2d6504d00c1659af9848d4130e299fb825fc81bcba964190ac09b8933ed307116be7164267e6772767adb7c9112c924a2a634118349fde1125efe1300fcdf1 WHIRLPOOL 6242ec777ccdc7c22641ff6262dde09f434e34a20d0b322baa32445b79a43f1dd042a2f98db0606c2227479a53f158b560f707d2e9f2b844cf9920db3f3b7168
-DIST ghc-bin-6.12.3-ppc64.tbz2 95781107 SHA256 62c2424c97381be4e0e5f5bf1312a24ebe97c85a52d62bd9e35f991b6ec568f0 SHA512 fc74f10ffe67e7123dac012ff7748aa0ae6730d50d880af2ee280c0a156ccbfceae4b0aabb19e389a9e334ccbdf58b8f1c849fd1179f3f0350d469cfa61cf6a6 WHIRLPOOL 127e5056a02abbf6f115114d79172c2c2d1f25685cd8e97c4876b121c0d09ef8447bf799679a1cd03b24855c468873e9a2b52c3a3808390afd46959875471987
-DIST ghc-bin-6.12.3-sparc.tbz2 79140624 SHA256 3e3fb498a1fae5cd2285ea9a22d94b4bead500c0aace5ee76d49e1a3919da96f SHA512 5bbb05dfb2a87eebcd84e8010fb7f720c3241600bd1cd7324a4fdfadd8500b6e544a71d2d7b9e6d63cd52c6f5db72c9751406347bc041b014a4ca87dc01ef1e2 WHIRLPOOL 0005056672eb720707f0d46ebfeace4e76a22b5e1bd2d6236afac9333c9f35086ceedbb6652480051fe454bf5c89a39a1ea862180f8b2494e96107807bae2880
-DIST ghc-bin-6.12.3-x86-fbsd.tbz2 78971971 SHA256 8c39359b3dad6216a1b92464468f9c554d5bae546b037f57d7dccb8ecd5f9f7a SHA512 6af0a571cb66089c1d5f796b700c8d0b1db6869c41e6683d878047020d84817fb8b5d395c335a0c4c52e9781ad5b7291c3f88d56e5f97c3780ace1a48aa2cb82 WHIRLPOOL aa5bc6843664f828f10b44e770da9832827c2d0a0c7a76958802ffcbe7f8e7dd483b9c39ca6ee370433fa36734d19b01e082f2ebe19cabe19b9a2f4c40c29a53
-DIST ghc-bin-6.12.3-x86.tbz2 82262946 SHA256 0d74a18473d6303e8818a6bd1de87f6dfd86466e7d967d68707a6c255a96945d SHA512 76df8fa335042e83c14fb447c011c89a0189446ed133b54c1c0c52d3bd615d0f75ceab6f3d43b32297d898c40c66db30eb21420830af6056b8993f272536c4ef WHIRLPOOL 6d6fd4cfe9ac9e1fb278e92aec367e6a67c74f0592fe65508f9a427f13745efff244c5af57400699ed131df6658e4fdc54364c5b51832ae1a41b57747f7f44be
-DIST ghc-bin-7.0.4-alpha.tbz2 111174890 SHA256 a83e77b23b49b5d5e47d55019ff7583802b074b5fc48df622572931252391107 SHA512 5ea3fb692e198b15a8bb0721e0c5cc2396c2af280e2c94111e07f1ca8d8e8620510c1f6a490c5f5a66cd5712c6aee74dec3639e70425a36b4559dabc0dc55379 WHIRLPOOL 08cac1cfc5828b4a44215363d621ecbc1aea6fd3a1387fcf646bd2dc369b56787a0afcbc8933f2dda9303f50c950cc493ffa2a6e0dafc359cc6bc6da2244e819
-DIST ghc-bin-7.0.4-amd64.tbz2 82353700 SHA256 7232ee42a99046d084668cb08d5a7b80ee0adeaf4b26fa5b900b9ea2759bd807 SHA512 2eaafe9d09d629c4931e7aa66af78026d68f568d659cc51d81f745c2d0c603edaba1fa1d78505a72dad96481c28d14c8b3bbe71435cc5b597fd930a9996cbd74 WHIRLPOOL 1266ba518f3f2e9733ef577b1fcd99123a399290579e4484a47fe4e4ac526a5a365e1067600fc74cbd179535c8a1c29d91884a4fe7c19addbbff630f6ce44de9
-DIST ghc-bin-7.0.4-arm.tbz2 113773534 SHA256 cad8248628d33f2f02a46fd8c40170f75273f3dbb8e443a427fcad2840911138 SHA512 36c24fee63cf6ba741ba8f624e1f1e73ddd819b83943d4a9fa1340803ef6a541c5073718fcffeca0f3079ba8522735918a340425f063556d75a31e941a43418c WHIRLPOOL 54d3d068d71b1c745bbc8cfa37778bce1900879a1f7dd457c142576daa37b90815d2fba4fab76c164999ae5a9c75627aba11fc706b9eeeb2599ffcb87b467a13
-DIST ghc-bin-7.0.4-ppc.tbz2 95836292 SHA256 7ecb2c963da8ad3190dc923c70485ea9abcb5c1bc5e3458b6b0217da997ef3c7 SHA512 7757b61b43c69fed45c3908b9295f130fee646acd3ae11ec521a9bc351bd78166486faca7711cb7eb99c8826c7607cccdc78708bbf9d6e5b62825402364b57d6 WHIRLPOOL 96714eaf351857b89ab648d01a4fe07e0e3db84ca0ff4eea0a8bc87fd7bbcef061bf9ba6a28846d486296fe1a1ac8c0aa2c69c4a6467486ed933eb54d0ae4805
-DIST ghc-bin-7.0.4-ppc64.tbz2 84686556 SHA256 91789cdb5bac716f04f63a60a52d2185e5b09aa09a345b6e9339fa922778ee93 SHA512 95783430300d49b0659fea2748595137b8b1d78f01bea469b5174e64c627c1248867c0c0120e8889a66961fb87f5f7911a3d0fa39d5ff1b3a82c284d569487cc WHIRLPOOL a758b101fb8787ea94511b11cc8639d951617ab4eebb7f5484d3bb12ef00a6184179d9b46033cc40787ac9110532cdef078e9fb6fde09e080965d20fc27713ce
-DIST ghc-bin-7.0.4-sparc.tbz2 82859870 SHA256 72e067091fa2108c9b5c42bce833e2ac853a9c3bb3406ae23d1d25b5c71168e2 SHA512 dac79942ffe26fcd9209786fbd0988ea587a4a411eab57dbac35143c3e3127a75b6d3786d39e51b16b96b382925e1baf6e5eaeb5e5dcf14cd6e245ed32e5951e WHIRLPOOL a7dbcad7c193a6300e8d3a0b3dcdc5eac4559f13fb55a40ec8e7d447f3ce78f997133f8c48b65881bfdcf53611d5916e98a9a2aae07ba6a5f1537a84d2fd00e8
-DIST ghc-bin-7.0.4-x86.tbz2 81814964 SHA256 45450fea47fb8b6cea50bcd7b6c78d121ba6444a5e70f8a53b81009cedcc5838 SHA512 d134b6045a993470e9380eac16a59fd5e03bcc0f252a6a55e62f103a6c16ed854c3384c8575c579dc8fe0130ce42d37aac49eadb5ff0f10230f7507bda452612 WHIRLPOOL ee93b8008d878955ef38954dfb06e691437081714a7b8d6e35bf6eaf428126705889f03661ae87a4aff46d41be9b5cd1ae0d2747eee7915e954e7ddd992de686
-DIST ghc-bin-7.4.1-alpha.tbz2 120687236 SHA256 0d0dca79efeed686d7eced85967613ecb905bf379f200c79897c4a1692e7de91 SHA512 ebb63cde20d7acca5472a6c4ac2b1ffd392a25c65d91c340a3d0c9e2621d13ac5d1a6d877f37dded3e9bf60c37eabad6d976829908123bb60a3bc10df084b6c0 WHIRLPOOL ecf535a2e2071b1027990f6cecef80efe42712a06a66d0fe45f77099d89c17e58e415deef0bbcac35b4863c15994b31152ab1ce2ae7d0fd6e19f96afe16adb45
-DIST ghc-bin-7.4.1-amd64.tbz2 91883701 SHA256 d8579f840068f204ef87959920b3ec797dfa64f7de421d9d0eb82b0b1a950f0d SHA512 97c2804d19ef63fb2366a7b5d6df55488c144dab344266347e8e959b6cf887c62047418194ea163c840a4aed5828636d83fa5fcfb2d3e88906e2511e9aefdc7f WHIRLPOOL a1eb116ce49b80df60f9c2b36a3c6cab8cef0376ad8432cfeefaf74b5b9ad1ef8b56ca91c8bd5ea809b364dbe3b8004cef8c906b2a931d7d7ce51996c5895e57
-DIST ghc-bin-7.4.1-ppc.tbz2 89826596 SHA256 8641113d157c9462aec360a6e17841051eee83f231c2c557fa9222d223dea4cc SHA512 9f63cc28ccf742efac5979db7f7b2ba28c102a490bfb53f1ebce3a61c1012d1369634a485b3f8233b164489ab87e1b186bb7fed0710a67881d057894d667d624 WHIRLPOOL 356887f32b0c2786cada528156d0f42403620f08b31dbffa71b1e9d78d109a55272a8451cf3ed45ef2ee11e2c2f762ec3c13d48be44c2e5c4dfddd07f87f644d
-DIST ghc-bin-7.4.1-ppc64.tbz2 101724506 SHA256 6aef001a91281cf9a45a6a00f8aeacefa1b04a67c05a77eaff245290ded6fb5b SHA512 5bcdfb8ff84cdd8fb2d7b718a2359127aac56c335284679775ace2080621215f0cd31fcdea500aa8e425ee373b479e8c437a4c84537e4dde63512af831181d39 WHIRLPOOL 9410a828ce368f0457f32a8d73c7a5909383d92704eb434e5292bbd209a46fd9a9aa529df11a268db67e40152919d97bd02e923033f80e3d7b806a474112b77d
-DIST ghc-bin-7.4.1-sparc.tbz2 117317699 SHA256 c318674f5ffe5fae91becaf5747a1fb27f90fea50893766468bb729ce45ccf3f SHA512 2a78e50932a8f0f137969c891bb3f85f130e111dcd26a6995b83430105ec2f04d62d181b5f08e37436715c6febb2552dd62f74e686c4ac020877a792555af569 WHIRLPOOL 24c220d30e831740c658168b0924e49c36d63e6f4d1b90f1c38b1ef0004e41c61ea9549df8bf2b6a2936f2ef2cdaffa5e1d34db226ae2e7d126468081d37dde7
-DIST ghc-bin-7.4.1-x86.tbz2 91033605 SHA256 e5ff322b0496519b8bb879c9c87a25cd2d89921c89850b8fd21247cfd281e942 SHA512 83e8e56eede602ca93cae15f859337386bd532465356ce3e18f3fdd4bd0c0734e25b90fa7ba2e3d39717228377ac0ec4373e4a35e445ee80a2bf233144db3acc WHIRLPOOL d838ec64e51a17ff28294b45d193900b132f0960454a9b03b1aad2b96fc2c080b2d6f060f059cfae7992d47f8da22bcc3ff0d2fd534135208ad7ce0941dbb0e2
DIST ghc-bin-7.4.2-alpha.tbz2 130483507 SHA256 cd8e72e569574f137bf10fcdb4337bb0dc320deb2a2c4d72529a821735c53ae6 SHA512 6fb99dea706965afa60f4aeb68da3da1c69dda477f5fcfb4e67b73d75b78583193148ce9f623a356679a57f1a740f8010f28a22f08e56ace50f3fcd42142f83f WHIRLPOOL e5ec69ab24dc963ac709f13928c0e35931d5d50ca6b21dfb0aa79f9088c0ce1196b64bb4d9668e35d73dcdf9e2df9c3da59c95eaf3db8b793a6bb65b1f4ba6c0
DIST ghc-bin-7.4.2-amd64-stable-glibc.tbz2 93139900 SHA256 f06dff00585cc1a8ecc8ac29aeca7fdc601d272eed29d7613f7a2f2924cad585 SHA512 9b725f2613dd9013851a16eaea4000ea424c51cbafa97d3860f120fdb9936247f8c65208775a80a2f49b74946ddda2e843a54dec00b78c521197374aa3dd2d50 WHIRLPOOL 9e2630b1de40a059c324be38a1fe68b16ea484bc7afc2a397ea05192263d1964aed1d29fde543622ceab12ed2df111204576fdc72b7e35b2bbf9c6b9519901d1
DIST ghc-bin-7.4.2-ia64.tbz2 155787636 SHA256 a1d89221645832cc5d11cde4937cce75d564e6a79eba334b92a4c465eb3f161f SHA512 c7138ed8eaf40ee7e7559b6063096351b64fc35cbd1adb4c734b2f2c6b77fb98368b1296fcb67c1a0b21b0faf053a82f8f98c3656b89c593e677ce78165d0c74 WHIRLPOOL 7ff2db2932a6d56961dcca386c9ec8f8eb1ee12e1b84230fbb089ff137eeb216117eecaa37b33b4c037ebee0063a07cd380077b754e64ef0219759b54a4f7fe2
@@ -97,12 +36,7 @@ DIST ghc-bin-7.4.2-ppc.tbz2 89396808 SHA256 ebf6083a1f3256a978a9408cffa2562e837b
DIST ghc-bin-7.4.2-ppc64.tbz2 105431655 SHA256 d0aecf47749a9862085aec6403f25197465d99a02a3c721dffd5314bf81d74eb SHA512 f220fb91b1856da37f72166fe050d4908049845eec03626d09c5b6e88701b0002835c3343c3584baf9f9d9efb5c7cbc210eb64c6eb711a58764d0fea92e8ac9f WHIRLPOOL e27022a72c254fd189995fd1b39629d5328927b83237ae4e61e97ab5efb5c451c92fe77f944c724bf9d14130d5a6cd2e0896a7cd6052de1ef7091531aa39fa0f
DIST ghc-bin-7.4.2-sparc.tbz2 121224130 SHA256 e5eaf1f31ddc4790e0226f0075236af340ec9674d98701452d5c51455ca1cb52 SHA512 a3647d82bbb36fe0ca55185ebc9479a264e785eb5a8a33be6c37b8a6cbcf8c55373374801c685eef004de78db5aa1c96760b2bedb2ca0ac9097d39fe286984e9 WHIRLPOOL d2d5f8c5abb001fb5425e68d3d26d941569b832c373e40b5a96aaa11f589db9e2b72eb1cbcf8df7b8d4473e2cc1c61498b284d8b006cc20822c3a203fd0fe2cd
DIST ghc-bin-7.4.2-x86-stable-glibc.tbz2 92394017 SHA256 2c42257a60aec03ae622c1a600cd210a6094f26ac310fbd307006e7f2260e2a4 SHA512 9e8ef72d2aeb5681e6bb71e2eb875587ddd51089cfc3443c33c69f93274a29e5680de4bf4884af05cd84f0e9cea13d66d20f1e89994460137910cbc987b64359 WHIRLPOOL 5722824af91f1191e6a38a8eb4696e765468e3bf54ad411b1d387ae4bcc7cd4cb772bdf2054d7013a3cff41feaaf5607f051b3c0d9f609ca19f1a1f92dd02586
-DIST ghc-bin-7.6.2-amd64.tbz2 94464851 SHA256 82ba625dc5ff58db6e085155b2c1d708c490ac6ac84dba85763b74ec1cabda13 SHA512 b6ef3ed764a3a325dc2cbcfb5fa2f416d240ca70f33791bc6535b2d3416cfa281ad6c343b72c8ffd59be92cfcc3c5dcddb1a7c6d57128ab16b89d341880b022f WHIRLPOOL a5412e0df5105e1c1de0af71a5bb0671d27c869bd74a271b07bf4a8985c30f8e6aff69aa89e7801b2c49623f4cb0b9ec34ad3eb96af5d9bc2de106652b7bf4a0
-DIST ghc-bin-7.6.2-ia64.tbz2 158914515 SHA256 fac170050bfeb7c20ac62525bf169ad252d0598f2790db2027b04c4c70df58f1 SHA512 a79fa35aadf65ca60d1b0ae98bdd9151c3cce13eac1fa6c525cd29c5ea2359da8ff78549a138db876bceaa4ffcdbb621d87cde053be0fa282f8891251eb78e21 WHIRLPOOL 7753255c9f4a7b5fb7434157df7821bce3c3c2a36e8a781e5e6939aeb0c5721ce62d4710ebd4c377393dea3c51ed8300a3f8c8adb4d0c16ca8c7a8ce86f8e853
-DIST ghc-bin-7.6.2-x86.tbz2 93746314 SHA256 d5d50ae425cfa2cb7e476e0829fae61623fc6d728413ffa27cb7ecfc925633f1 SHA512 cd56331b8855539671e1b9463960413c84665da3aa7d6e7fcd1cf4425f003582f524d3385c97e7fe9707989712bf487cd7cc75a1096918abd057cc6021badde5 WHIRLPOOL d5dffb0e970c16f168d5d6b5057b42afa8704a156a5521eca01aa522248cd9cdb8fa29e0ae5c368e11fbd87c39b89569c4ccbde7d8ba1660801cf593f328266c
-DIST ghc-bin-7.6.3-alpha.tbz2 132175518 SHA256 c0a16219d1e270cb73e68d6d0b0fae08264fa308acceb876d2c4e7dea302e13d SHA512 944f8dfea78e54068bfeb8773e9b15d7e5e307c5cdef5d928e011ceaef3a9449950afc2b033508c496497e4f97d6acafc005ba097ed9fd18b978eae601cce6a7 WHIRLPOOL 16dfdc97b310038daced86f7ea93632e9f6e1879cfabd7e8a4f662358fe17074c060df1c864dca944a79d60c98f134cc31b335bfce3d89b8537001783803e7a9
DIST ghc-bin-7.6.3-amd64.tbz2 94441516 SHA256 3ef747e96a40c9d5021e88b8afee0a97838c27b00619d9187783d95279c31779 SHA512 89f6c693d83d6309a0e44fcc68e30279c858adb0a0ea9317dd168b2e632c22a8507da78ed953523f5d7156db98e06c6df56d6edc19c0c50b3941ea578263dc64 WHIRLPOOL 891dfbfc9d88fa579b6a837651f7cc6d9aecef8b8752ec7bcebbdfef2a6d8929d0edaceff27ec61d6160d36d1b0e8406b7829a04a858ed64210b5c57b9c98940
-DIST ghc-bin-7.6.3-ia64.tbz2 158762376 SHA256 07234585032a319d769bdf2c748904e2a1ce170413f6f24e2a62b4ef9be6a05c SHA512 86b439432f446034a54af6e177a5dcbf32a523b004d41c22243be2acb412f5df2645f0adff6aa80ca3efffb905ffd4e70e6753c4735bc74ca8545ea00791699a WHIRLPOOL bddcf1ab380bdfcf4cccd2afe6248503199abfba127a2c97ca148d71a6a558607f7e3324d1ac3f2b7aeb812468bc76cef870e201642fb8298f2da15d3ebe200e
DIST ghc-bin-7.6.3-r1-alpha.tbz2 123486983 SHA256 fb6828d9dff7b90563cc7b3277ed38801907930aebd6042a7e5ba61e5f50db73 SHA512 7821bdf7490283dc062be090d224138dd34641e014cc6742edaa51dcc9cb1de9724d575955b596c9273b878dfe79023daf172b132b124f67567132649cf9a30d WHIRLPOOL 4e51a7e7f54fcb4aeb7a4ade4140533413348f9aacf04f683fe7cc5e20843dc6a95bdd6d79a995e5e1085747be9e584df6ada61430662f06eb600abae0c7eabd
DIST ghc-bin-7.6.3-r1-ia64.tbz2 154480728 SHA256 9a176312f796a189c0354deab9a7c446db274f75f40554963c2f86597a5951fb SHA512 2aa945cebcd3d0c26af5ddb53cf2002ec6d263d071173495905dd52898bd2ab6605370b0025554c1f6afbd28e276abc708708e4add9a9b8cb08b4bb39f8f50a1 WHIRLPOOL 6371531141e707618577e924c01102481a12d91e2c85e24694ba64f9b2545869c248999138146f63ca379a4243ccd0dfa322ea01a23d222b9757584787c5a899
DIST ghc-bin-7.6.3-r1-ppc.tbz2 91800558 SHA256 c9b2262957585c9f02136014aa05423e1b7674c8eb0731a6d991e400e053e33a SHA512 2a101a30a4324780f1a614e044ba614f9094cd57d026c56f2b3ba514ae049c26ce8e4acbc89e93229da451b6fbe05ba0980b500cdd785bb2bce968a60434403a WHIRLPOOL 3a3b7e1eb945be01ab195880c7709514d2d11d25bab12fc15c2257207da48a37e6d6d7699c9ed5c1cc32d01057240a4d795e43cdf9d9d2748a1d94b93fb283ed
@@ -117,22 +51,16 @@ DIST ghc-bin-7.8.4-ppc.tbz2 112803496 SHA256 a47e0fb17137878af1e7b5a166046bee20d
DIST ghc-bin-7.8.4-ppc64.tbz2 129284515 SHA256 1e8a350af39d1db1e58a74c9bc4a4c57765eceb33e5b32751fb31340b9ff02ff SHA512 53974e15c26cf6b62d8f838607abd209ec57cf0f45fcc48b90ad62736f5e4e7ff263dcd326ae03d8d5557a22eb9730e5eb8ae4eda55e52dd3d973bc73c84935e WHIRLPOOL adaaa92323d319f6576423ac41678f7d263f36e0e30d89fc14ee89104b006772c26d7b408be7f85225d1bddaf5f15ebdcbb7136f5c8bf7bda4bb0938eefbe6c2
DIST ghc-bin-7.8.4-sparc.tbz2 147340595 SHA256 1cde749ce3c47016c5c7a7179423d0aa2b174ddae4af0392ae3b7f57b098ec0c SHA512 ee5f0b2f1cf2693a0f2be9df71ef61b52bc2327225d40b8be955c1584b9901ffc6aaab63c1e46bf9bb352633b605c98378f8fd3e6cd71aef1c089007e4110217 WHIRLPOOL 27d55a016ffb49852553f920c29929c3bdf383e28b4b806ceb9ffc8b46a59b438801101402e498b069aa6eb56870b70a00ba7b1f4098f3fd8d8ddf1b20caa626
DIST ghc-bin-7.8.4-x86.tbz2 102312459 SHA256 4c53148836e5a1ba55b8db5bb7c3eb915103e0955fb503b2facdc5a72f12a974 SHA512 cabc5bd6d8760ce4120e7053f6c1dffca7d161ba454b6201087760096c037c932e3ff8c82e53346c8278855bf0cff1c2f5fb8046242ca4d8307355b060a9556e WHIRLPOOL 0171d67dc1b63381a491e1577a783eb0e8f53cb579ba96a9b4fdf6685d494d78eb2be780f77ff33422d3b7c320ed102d9b48f6e954f8fee5532982575001a4a5
-EBUILD ghc-6.12.3-r2.ebuild 20796 SHA256 527f54ef419549e18778e2b3be5ecbe3026fcd7a91c6e52e373c7214ac1a826a SHA512 028a823d9e1da226580c28405e8d8d555dcac4a605731de1066ff695428fe2b26efe7d0345a32b037952bc48b35968e2a427f89000ebbb89e5ec32d7dba0c60a WHIRLPOOL c32681c78b7f78b93c42fd161c057ce414ce397a893cb2301ee14e0871326923dfc18b9b81e1a6444dca5a5432a34514e373137d4f6fffd680e17e0686a74c26
-EBUILD ghc-7.0.4.ebuild 20256 SHA256 d9525a3cec1a9f0ba46eb8ac0fb4fe4e136bef03f6c7dfd6bfe82c82e2ff6552 SHA512 35989124a714ac7297af8043653fd34844effe545c7775b37a1b98a7f4d58d7478de1300bd85cce9a0a34ed24cc27f7ffa1a250f167e6632c6ca75e499b43a02 WHIRLPOOL d7e349c59deaa0ef7a1293e4742d667cd4e537633725f6a611c6ea03f2a6b0e3960fb82ceca2bb0e301cff41940c883f2b08679b25cb53d330abfa2c9b5a52e8
-EBUILD ghc-7.4.1-r1.ebuild 21359 SHA256 58c914920bddc3dc9ef84509fd58ec2d3cb86ca8f61f316b85aac75cc8985206 SHA512 8aeeded46d1ab2baeb14837d7b58a7cac4b2c3b8960bd85b9885dae616e44594b831dd336469f2f2f168393fce76215809640d1d1ed84c44c5ceb321ca67b14d WHIRLPOOL 102d072ffb5bfbfbc1e70fa8b6b94c8308587d9669edf56b47505b62039aa2ef02e1c6f6c8d859d3189f2a983b420e0410cfd6303ef6950684810760a1c3711b
-EBUILD ghc-7.4.1.ebuild 20555 SHA256 24af5f5cac7746f627708fc5e74fc72f528409f2912032a5ed8bf0595d3d88a3 SHA512 040180430cacfb19816dbbb7deed54ea08424d5ceae275a61b25bde38f68419fa6a65e1dc7dddc887f967eeb47ae81f430a2dbc4cc750c542254e91101734d47 WHIRLPOOL b344b1465f05555da6b22be4351820c557cc575e61661dab79dea92ae98530fa57c8174a108cf80b5cfccc6572a4b5b14a23393719e307fca16bf91781c2951e
EBUILD ghc-7.4.2.ebuild 22109 SHA256 c061678ca7fb3e578856ed5e5ccd72b9e1cf86000889d41b64bf51dcfcdaad3c SHA512 9fa1ac3968cb2e9cc231d2fdaf0fee54b1070c925a86f5fc257858a3bab9eb1b684893a405d4f7fbbc0a6771fa06b7d572e790368f8093e23abed176cefaa43a WHIRLPOOL 813f4113c4dd73bfd0591d48f426a6451b1662458e75ea6b3f748a8d64fec354273cc15f8db218e03965338e87e0b00ffc424dd7defc77a5424ef8651fa29038
-EBUILD ghc-7.6.2.ebuild 25352 SHA256 1986bda9cf2dcc52b90b3dd18d8241bb9d93b5f7b7eac5bf5db99dc2bb0503af SHA512 64ebb74a3132a6a162c30fc588592dbfe72328da0d3fa2435942165e470df0ffbcbb640361d1f0a6a9efaf25a5648149c4e8a5e0a16fc39f4bcaa07907e38038 WHIRLPOOL 68d57561fa4dc29ba9c104c85cf9b0df624860ff2b24438659861c76e3472847fd34de8f619eaf0e010e115a712ab7837c3a39153d663c4a429a3c7ba035de10
-EBUILD ghc-7.6.3-r1.ebuild 29017 SHA256 898e3fe4d3561f75a46d65a3e3bb978895e63c0ae2b77075e899fdaebd6328ad SHA512 1b5e5bc934059bc6c761477ed3746ff2eac15f5d71be3b786d84c8f900a23fa1064938dfa72b411dc60ff4185b3c4d18b0bf4f0a3a392cdcb1df1081552ebb55 WHIRLPOOL 03ea67ec40a951dd4e5dc6dafe56c147ab0f16605bc32c6f9ca55c3e9ed74adeb14c8a2c952a3160453bcb827d175ce93cc3514aa607bf76e77660d21eb387d6
-EBUILD ghc-7.6.3.ebuild 26240 SHA256 517f567d0241deee7c473edcc999c7255f7a8cb14e6cc36f13850021e7802310 SHA512 26c8aa9894e1bcc194b2f62dd1741d03e90ea0b8607e760027117c391ab0ff036e66fe76ce8b07d5cc1acf372e3ed4316d9b866d818e5299285cfbfcb13c19eb WHIRLPOOL 429c9f83b45b153145a999655c6a9f17518f70e48ecbfe91cb8d682eacc3ea9d7818b0de23a7507aa454b3885dbcff3a8393f5f4eb734402f1dd0688535500bc
-EBUILD ghc-7.8.3.ebuild 20718 SHA256 36f3de9ed9f5f72e742a0109e02b3c305d4a7e7fa40790990f66bec2e37ef9d0 SHA512 09caadef7b208ad4c89bbf70c1897f01a0cb5f3a15c4005c606651c1424d0c920a8dce7a45a3abaa77a2516c55a71ea2745175f248dd90d8044fc2df5763ef7f WHIRLPOOL 40815fd6c952826a4b299dc26ce1dd3431026e8a7075f495273f66fc57f841bad8f0fc20a4f3b21eb1b08adc036edff75330e2810d68a23dfe4f03f02abf6605
-EBUILD ghc-7.8.4.ebuild 20539 SHA256 f297a7f01749bf0f19169357abfc26e168ddaf0bf31f564d3ad9a1ad30eaa420 SHA512 c247a618dd043776c41ce41dad7585f63be827759fdb886ae35828d382cfdda69f5521b66ac2ac98f3aa7097d974787ac15f753f021ac818b539770b49be94ff WHIRLPOOL a9603ef87d0210f86c57f6f033dcc329775be8147fb3b582dbfe9eda406642926a61430510c7f6b19f4a5f1c30cb86a2467de9480c65d6ee86b15392e66ae76a
-MISC ChangeLog 49553 SHA256 5ecc026c3acd66fc0ea240ef39ba92bd1ab9cd33695df8de2f8b6ff252e5b694 SHA512 0df80a4ff56805e0f95fc4f5736f354a501f7ef439a876d200f6d3b87b69793df81f43bd511c09d7f0b0eeecf8dc9ed5da273d5bb8077d11440022ddec9a03a3 WHIRLPOOL e3d08c79617620c761c369cfcbc70d49ccdb4d7603bfb29d693617410d537cfc3fce2ec4cd357193ddf2f0b729df75930dfbccdf6e5a28789f143e1ecba0e425
+EBUILD ghc-7.6.3-r1.ebuild 29019 SHA256 343248f0572b248bf68911c17c0be7b191831a32372c3fb8790d4058a0069ecd SHA512 185f14b1bbe37caf75544784dbea9859b5d539202b31a2f1c48775be7ee7ddd6dd5af0f6a647ff22dfac95c4d590243f4a3b66f5153438e31f472f7db3041759 WHIRLPOOL bca4e0dd6122a6e05973153119ce3d1db6a97ada0b8d0718638d6446eca7dec322bf954d86605b34ab76b5e0496bdae98ff88694e789476e7de6b78ef2def205
+EBUILD ghc-7.8.3.ebuild 20720 SHA256 9887614b5a6bc0df0bb5a3899344caf7c5555673cb6c080fe58749afe9c65985 SHA512 267750389414cd573a876d2fd6af57c2deea63d05d004bfe1d42cd98af73fc69cbd660e4ceb726b1eba223c99ad784aa2c9b1bb4ab9407f3f9640e36fd5ff7f5 WHIRLPOOL 4c24a143522443adb7c664671ee7d65b92dd28e9aedc444422eb1e23598b167c4b0ebd8ac8f6e4cd3b7cb130a6dab271838be1cc311e5ff95c3164d8a691af6e
+EBUILD ghc-7.8.4.ebuild 20541 SHA256 aad46eef94f8ca43b6bae52178af9e7b4eda7c8afc75722bbc2c42f31cb9eb2a SHA512 270a05e22919a8aebb465150d1f74f55dbe1a27c2c4359fef9c0980d2afe216d13ca7362793f83fa1616d0437c53ff45b79ba09b0d968a8f89dba4999464fd7e WHIRLPOOL 0bde2f1cc622b9038233d47b24647fb6d6564e4f410301b84af4bc4200db770e16940023cdeab8cf0eae609ecc34118009740d66817672d2e364608189dffce4
+MISC ChangeLog 51453 SHA256 35a16c2f72cb209ad918508f47612015cd360c7dc32ee33444b58881af959caf SHA512 fabd8e0ed8785b475449d60bb06e6b2b93269ebcbc3683674f304f5698b03207698afb2b76dcae324b76d6609064903bc5a7891e3f87d3b99424fb19c3c8e483 WHIRLPOOL d1900a137cdb5032ed38fed5aca53cc7964fc6ba1806cbb768c03729508069f557009dcb207bc5e2205340fc0e3822f20fa9c1a0fb211c72ef6ce2ac207f0eb4
MISC metadata.xml 561 SHA256 f964cd5b31b8a5e1979c03ced645f9e28b61528b456340e36cacef4b25104735 SHA512 50ef5db553f7ae99de80ef2f45d2c6c9c3b85bc4ef70ef7f79797a3c47f33a8ca9c9caf14752f38b81f0abd17df594820bc2161a10c7d177c126fcb101b24c31 WHIRLPOOL 1d4e744e284d0053a8cff1547dd25c4f0f2dcb8da35dee4523dbadcc9e29a92beb6ce7e63044c09995ffb255d39c5f02d901b330c481763b608ba4ed6e243faf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iEYEAREIAAYFAlSd8NMACgkQcaHudmEf86oP3gCeO8tLMUvSHC684Cc3VmI9PwyG
-G+sAmwX9bU1EOSkSBZjJ2AlW6DATfURF
-=vMQq
+iEYEAREIAAYFAlSnLuEACgkQcaHudmEf86pldQCeKkAnNmmNw12/qkgN7wszlJyS
+UkUAmgNEM1B++cujwctRqkEe4I+mO2eT
+=fUgg
-----END PGP SIGNATURE-----
diff --git a/dev-lang/ghc/files/ghc-6.10.4-autoconf.patch b/dev-lang/ghc/files/ghc-6.10.4-autoconf.patch
deleted file mode 100644
index 57d0de55e4d0..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-autoconf.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff --git a/aclocal.m4 b/aclocal.m4
-index 4678774..7f947f0 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -212,7 +212,7 @@ fi
- changequote([, ])dnl
- ])
- FP_COMPARE_VERSIONS([$fptools_cv_greencard_version],[-lt],[$1],
-- [AC_MSG_ERROR([greencard version $1 or later is required (found '$fptools_cv_greencard_version')])])[]dnl
-+ [AC_MSG_ERROR([greencard version $1 or later is required (found '$fptools_cv_greencard_version')])])[]
- GreenCardVersion=$fptools_cv_greencard_version
- AC_SUBST(GreenCardVersion)
- ])
-@@ -247,7 +247,7 @@ changequote([, ])dnl
- if test ! -f compiler/parser/Parser.hs || test ! -f compiler/main/ParsePkgConf.hs || test ! -f compiler/cmm/CmmParse.hs || test ! -f compiler/parser/ParserCore.hs
- then
- FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.15],
-- [AC_MSG_ERROR([Happy version 1.15 or later is required to compile GHC.])])[]dnl
-+ [AC_MSG_ERROR([Happy version 1.15 or later is required to compile GHC.])])[]
- fi
- HappyVersion=$fptools_cv_happy_version;
- AC_SUBST(HappyVersion)
-@@ -282,7 +282,7 @@ changequote([, ])dnl
- if test ! -f compiler/cmm/CmmLex.hs || test ! -f compiler/parser/Lexer.hs
- then
- FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[2.1.0],
-- [AC_MSG_ERROR([Alex version 2.1.0 or later is required to compile GHC.])])[]dnl
-+ [AC_MSG_ERROR([Alex version 2.1.0 or later is required to compile GHC.])])[]
- fi
- AlexVersion=$fptools_cv_alex_version;
- AC_SUBST(AlexVersion)
-diff --git a/configure.ac b/configure.ac
-index 4d39e74..e3573c9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -795,7 +795,7 @@ if test "$BootingFromHc" = "NO" -a -d "$srcdir/compiler"; then
- AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
- fi
- FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.4],
-- [AC_MSG_ERROR([GHC version 6.4 or later is required to compile GHC.])])dnl
-+ [AC_MSG_ERROR([GHC version 6.4 or later is required to compile GHC.])])
- fi;
-
- # This uses GHC, so put it after the "GHC is required" check above:
diff --git a/dev-lang/ghc/files/ghc-6.10.4-disable-strip.patch b/dev-lang/ghc/files/ghc-6.10.4-disable-strip.patch
deleted file mode 100644
index 1b67a3cb0f00..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-disable-strip.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Unconditionally disable stripping of binaries.
-Address https://bugs.gentoo.org/show_bug.cgi?id=299492
-diff --git a/utils/installPackage/installPackage.hs b/utils/installPackage/installPackage.hs
-index 9ec7282..0174652 100644
---- a/utils/installPackage/installPackage.hs
-+++ b/utils/installPackage/installPackage.hs
-@@ -38,7 +38,7 @@ parseArgs :: [String]
- FilePath, -- dist prefix
- Bool, -- enable shell wrappers?
- Bool) -- strip exe?
--parseArgs = f normal defaultDistPref False True
-+parseArgs = f normal defaultDistPref False False
- where f _ dp esw strip (('-':'v':val):args)
- = f (readEOrFail flagToVerbosity val) dp esw strip args
- f v _ esw strip ("--distpref":dp:args) = f v dp esw strip args
diff --git a/dev-lang/ghc/files/ghc-6.10.4-ia64-fixed-relax.patch b/dev-lang/ghc/files/ghc-6.10.4-ia64-fixed-relax.patch
deleted file mode 100644
index b9fa2925bb69..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-ia64-fixed-relax.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit dcdb5df8bc0e973b856e88a7b78f88f947453feb
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Tue Jul 6 11:38:47 2010 +0300
-
- Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
-
- /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
- dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
- /usr/bin/ld: unrecognized option '-Wl,--relax'
-
- If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
-
- Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
- Removing ia64 specific path.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/compiler/Makefile b/compiler/Makefile
-index 0e7457b..17deab2 100644
---- a/compiler/Makefile
-+++ b/compiler/Makefile
-@@ -130,13 +130,6 @@ ifeq "$(TargetOS_CPP)" "openbsd"
- COMMON_CONFIGURE_FLAGS += --ld-options=-E
- endif
-
--ifeq "$(GhcUnregisterised)" "NO"
--ifeq "$(HOSTPLATFORM)" "ia64-unknown-linux"
--# needed for generating proper relocation in large binaries: trac #856
--COMMON_CONFIGURE_FLAGS += --ld-option=-Wl,--relax
--endif
--endif
--
- # We need to turn on profiling either if we have been asked to
- # (GhcLibProfiled = YES) or if we want GHC itself to be compiled with
- # profiling enabled (GhcProfiled = YES).
diff --git a/dev-lang/ghc/files/ghc-6.10.4-ia64-storage-manager-fix.patch b/dev-lang/ghc/files/ghc-6.10.4-ia64-storage-manager-fix.patch
deleted file mode 100644
index 37daea5d55ca..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-ia64-storage-manager-fix.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
-
-the issue: durin ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
-got the failure on stage2 phase:
- "inplace/bin/ghc-stage2" -H32m -O -H64m -O0 -w ...
- ghc-stage2: internal error: evacuate: strange closure type 15
- (GHC version 6.12.3 for ia64_unknown_linux)
- Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
- make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
-
-I attached gdb and got backtrace:
-
-Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
-(gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
-Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/
-ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
-[Thread debugging using libthread_db enabled]
-
-Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
-39 va_start(ap,s);
-(gdb) bt
-#0 barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
-#1 0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
-#2 0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
-...
-
-> 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
-> is returning true for a FUN_STATIC closure
-> 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
-> 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
-> 17:19:12 < slyfox> $1 = 0
-> 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
-> 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
-> bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
-> mblock_cache.
-...
-> 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
-> 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
-And it helped!
-
-diff --git a/rts/sm/MBlock.h b/rts/sm/MBlock.h
-index 516fb7f..725d32f 100644
---- a/rts/sm/MBlock.h
-+++ b/rts/sm/MBlock.h
-@@ -117,7 +117,17 @@ extern StgWord8 mblock_map[];
-
- #define MBC_LINE_BITS 0
- #define MBC_TAG_BITS 15
--typedef StgWord32 MbcCacheLine; // could use 16, but 32 was faster
-+
-+#if x86_64_HOST_ARCH
-+// 32bits are enough for 'entry' as modern amd64 boxes have
-+// only 48bit sized virtual addres.
-+typedef StgWord32 MbcCacheLine;
-+#else
-+// 32bits is not enough here as some arches (like ia64) use
-+// upper address bits to distinct memory areas.
-+typedef StgWord64 MbcCacheLine;
-+#endif
-+
- typedef StgWord8 MBlockMapLine;
-
- #define MBLOCK_MAP_LINE(p) (((StgWord)p & 0xffffffff) >> (MBLOCK_SHIFT + MBC_LINE_BITS))
diff --git a/dev-lang/ghc/files/ghc-6.10.4-libm-detection.patch b/dev-lang/ghc/files/ghc-6.10.4-libm-detection.patch
deleted file mode 100644
index 0e90deb507f1..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-libm-detection.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Fri Dec 4 23:40:12 EET 2009 Sergei Trofimovich <slyfox@inbox.ru>
- * configure.ac: fix libm checks (Trac #3730)
-
- libbfd pulled libm as dependency and broke LIBM= detection.
-
- Patch moves libm in library tests as early as possible.
- Thanks to asuffield for suggesting such a simple fix.
- Thanks to Roie Kerstein and Renato Gallo for finding
- and tracking down the issue.
-
-http://bugs.gentoo.org/show_bug.cgi?id=293208
-http://hackage.haskell.org/trac/ghc/ticket/3730
-diff -rN -u old-ghc/configure.ac new-ghc/configure.ac
---- old-ghc/configure.ac 2009-12-04 23:51:06.135605014 +0200
-+++ new-ghc/configure.ac 2009-12-04 23:51:06.344604339 +0200
-@@ -713,18 +713,22 @@
- AC_DEFINE([HAVE_MINGWEX], [1], [Define to 1 if you have the mingwex library.])
- fi
-
--dnl ** check whether this machine has BFD and liberty installed (used for debugging)
--dnl the order of these tests matters: bfd needs liberty
--AC_CHECK_LIB(iberty, xmalloc)
--AC_CHECK_LIB(bfd, bfd_init)
--
- dnl ** check for math library
-+dnl Keep that check as early as possible.
-+dnl as we need to know whether we need libm
-+dnl for math functions or not
-+dnl (see http://hackage.haskell.org/trac/ghc/ticket/3730)
- AC_CHECK_FUNC(atan,[fp_libm_not_needed=yes;LIBM=],[fp_libm_not_needed=dunno])
- if test x"$fp_libm_not_needed" = xdunno; then
- AC_CHECK_LIB([m], [atan], [LIBS="-lm $LIBS"; LIBM="-lm"],[LIBM=])
- fi
- AC_SUBST([LIBM])
-
-+dnl ** check whether this machine has BFD and liberty installed (used for debugging)
-+dnl the order of these tests matters: bfd needs liberty
-+AC_CHECK_LIB(iberty, xmalloc)
-+AC_CHECK_LIB(bfd, bfd_init)
-+
- dnl ################################################################
- dnl Check for libraries
- dnl ################################################################
diff --git a/dev-lang/ghc/files/ghc-6.10.4-ppc64-always-minimal-toc.patch b/dev-lang/ghc/files/ghc-6.10.4-ppc64-always-minimal-toc.patch
deleted file mode 100644
index 8aaf594ee0f9..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-ppc64-always-minimal-toc.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git a/ghc/ghc.wrapper b/ghc/ghc.wrapper
-index 71eae84..b02421d 100644
---- a/ghc/ghc.wrapper
-+++ b/ghc/ghc.wrapper
-@@ -1,3 +1,3 @@
- #!/bin/sh
-
--exec $executablename -B$datadir -dynload wrapped ${1+"$@"}
-+exec $executablename -B$datadir -optc-mminimal-toc -dynload wrapped ${1+"$@"}
diff --git a/dev-lang/ghc/files/ghc-6.10.4-propagate-hc-options-to-all-libraries.patch b/dev-lang/ghc/files/ghc-6.10.4-propagate-hc-options-to-all-libraries.patch
deleted file mode 100644
index 396c07974d1f..000000000000
--- a/dev-lang/ghc/files/ghc-6.10.4-propagate-hc-options-to-all-libraries.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/libraries/Makefile b/libraries/Makefile
-index bf59e9a..c85df45 100644
---- a/libraries/Makefile
-+++ b/libraries/Makefile
-@@ -128,7 +128,7 @@ ifeq "$(ghc_ge_605)" "NO"
- CABAL_GHC_FLAGS += -cpp
- endif
-
--BOOTSTRAPPING_FLAGS = $(CABAL_GHC_FLAGS) -DCABAL_VERSION=$(CABAL_VERSION) -odir $(HERE_ABS)/bootstrapping -hidir $(HERE_ABS)/bootstrapping -i$(HERE_ABS)/Cabal -i$(HERE_ABS)/filepath -i$(HERE_ABS)/hpc
-+BOOTSTRAPPING_FLAGS = $(SRC_HC_OPTS) $(CABAL_GHC_FLAGS) -DCABAL_VERSION=$(CABAL_VERSION) -odir $(HERE_ABS)/bootstrapping -hidir $(HERE_ABS)/bootstrapping -i$(HERE_ABS)/Cabal -i$(HERE_ABS)/filepath -i$(HERE_ABS)/hpc
-
- .PHONY: boot
-
-@@ -141,19 +141,19 @@ cabal-bin: cabal-bin.hs
- 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) --ghc-options="$(BOOTSTRAPPING_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) --ghc-options="$(BOOTSTRAPPING_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) --ghc-options="$(BOOTSTRAPPING_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) --ghc-options="$(BOOTSTRAPPING_FLAGS)" --with-hc-pkg=$(GHC_PKG) --package-db=$(HERE_ABS)/$@.tmp
- cd hpc && $(CABAL) build --distpref=dist-bootstrapping
- cd hpc && $(CABAL) install --distpref=dist-bootstrapping --inplace
- mv $@.tmp $@
diff --git a/dev-lang/ghc/files/ghc-6.12.1-configure-CHOST.patch b/dev-lang/ghc/files/ghc-6.12.1-configure-CHOST.patch
deleted file mode 100644
index 3369d703889d..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.1-configure-CHOST.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- old-ghc-6.12.0.20091010/configure.ac 2009-11-07 14:11:31.747192438 +0100
-+++ new-ghc-6.12.0.20091010/configure.ac 2009-11-07 14:11:31.752194402 +0100
-@@ -219,6 +219,8 @@
- exit 1
- fi
- fi
-+build=`echo "$build" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/'`
-+[build=`echo "$build" | sed -e 's/i[4-6]86/i386/'`] # escaping square bracket
-
- if test "$host" = ""
- then
-@@ -231,6 +233,8 @@
- exit 1
- fi
- fi
-+host=`echo "$host" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/'`
-+[host=`echo "$host" | sed -e 's/i[4-6]86/i386/'`] # escaping square bracket
-
- if test "$target" = ""
- then
-@@ -243,6 +247,8 @@
- exit 1
- fi
- fi
-+target=`echo "$target" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/'`
-+[target=`echo "$target" | sed -e 's/i[4-6]86/i386/'`] # escaping square bracket
-
- exeext=''
- soext='.so'
diff --git a/dev-lang/ghc/files/ghc-6.12.2-configure-CHOST-part2.patch b/dev-lang/ghc/files/ghc-6.12.2-configure-CHOST-part2.patch
deleted file mode 100644
index e444ccfb94e6..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.2-configure-CHOST-part2.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From b1b23479f676259230cc31e40cc94b60df90487e Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@inbox.ru>
-Date: Thu, 22 Apr 2010 22:44:56 +0300
-Subject: [PATCH] aclocal.m4: mangle 'pc' to 'unknown', mangle i[3-6]86 to i386
-
-Signed-off-by: Sergei Trofimovich <slyfox@community.haskell.org>
----
- aclocal.m4 | 11 +++++++++--
- 1 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 031145d..f401860 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1279,7 +1279,7 @@ case "$1" in
- hppa*)
- $2="hppa"
- ;;
-- i386)
-+[ i[3-6]86) ] #m4 bracket escape
- $2="i386"
- ;;
- ia64)
-@@ -1332,7 +1332,14 @@ case "$1" in
- # --------------------------------
- # converts vendor from gnu to ghc naming, and assigns the result to $target_var
- AC_DEFUN([GHC_CONVERT_VENDOR],[
--$2="$1"
-+case "$1" in
-+ pc)
-+ $2="unknown"
-+ ;;
-+ *)
-+ $2="$1"
-+ ;;
-+ esac
- ])
-
- # GHC_CONVERT_OS(os, target_var)
---
-1.6.4.4
-
diff --git a/dev-lang/ghc/files/ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch b/dev-lang/ghc/files/ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch
deleted file mode 100644
index 4df29fdaee61..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/compiler/typecheck/TcForeign.lhs b/compiler/typecheck/TcForeign.lhs
-index 073ca25..75e42ef 100644
---- a/compiler/typecheck/TcForeign.lhs
-+++ b/compiler/typecheck/TcForeign.lhs
-@@ -30,10 +30,6 @@ import TcEnv
- import ForeignCall
- import ErrUtils
- import Id
--#if alpha_TARGET_ARCH
--import Type
--import SMRep
--#endif
- import Name
- import TcType
- import DynFlags
-@@ -113,7 +109,6 @@ tcCheckFIType sig_ty arg_tys res_ty idecl@(CImport cconv safety _ CWrapper) = do
- [arg1_ty] -> do checkForeignArgs isFFIExternalTy arg1_tys
- checkForeignRes nonIOok isFFIExportResultTy res1_ty
- checkForeignRes mustBeIO isFFIDynResultTy res_ty
-- checkFEDArgs arg1_tys
- where
- (arg1_tys, res1_ty) = tcSplitFunTys arg1_ty
- _ -> addErrTc (illegalForeignTyErr empty sig_ty)
-@@ -175,31 +170,6 @@ checkMissingAmpersand dflags arg_tys res_ty
- = return ()
- \end{code}
-
--On an Alpha, with foreign export dynamic, due to a giant hack when
--building adjustor thunks, we only allow 4 integer arguments with
--foreign export dynamic (i.e., 32 bytes of arguments after padding each
--argument to a quadword, excluding floating-point arguments).
--
--The check is needed for both via-C and native-code routes
--
--\begin{code}
--#include "nativeGen/NCG.h"
--
--checkFEDArgs :: [Type] -> TcM ()
--#if alpha_TARGET_ARCH
--checkFEDArgs arg_tys
-- = check (integral_args <= 32) err
-- where
-- integral_args = sum [ (widthInBytes . argMachRep . primRepToCgRep) prim_rep
-- | prim_rep <- map typePrimRep arg_tys,
-- primRepHint prim_rep /= FloatHint ]
-- err = ptext (sLit "On Alpha, I can only handle 32 bytes of non-floating-point arguments to foreign export dynamic")
--#else
--checkFEDArgs _ = return ()
--#endif
--\end{code}
--
--
- %************************************************************************
- %* *
- \subsection{Exports}
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 7399de0..a9e875c 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -176,7 +176,7 @@ endif
- # Whether to use libffi for adjustors (foreign import "wrapper") or
- # not. If we have built-in support (rts/Adjustor.c) then we use that,
- # otherwise we fall back on libffi, which is slightly slower.
--ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 alpha powerpc ia64,),YES,NO))
-+ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 powerpc ia64,),YES,NO))
- ifeq "$(ArchHasAdjustorSupport)" "YES"
- UseLibFFIForAdjustors=NO
- else
diff --git a/dev-lang/ghc/files/ghc-6.12.3-autoconf-2.66-4252.patch b/dev-lang/ghc/files/ghc-6.12.3-autoconf-2.66-4252.patch
deleted file mode 100644
index 7341ca35c97a..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-autoconf-2.66-4252.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=337025
-http://hackage.haskell.org/trac/ghc/ticket/4252
-Mon Aug 16 17:24:42 EEST 2010 Ross Paterson <ross@soi.city.ac.uk>
- * fix FP_CHECK_ALIGNMENT for autoconf 2.66 (fixes #4252)
-
- Recent versions of AS_LITERAL_IF don't like *'s. Fix from
-
- http://blog.gmane.org/gmane.comp.sysutils.autoconf.general/month=20100701
-diff -rN -u old-ghc/aclocal.m4 new-ghc/aclocal.m4
---- old-ghc/aclocal.m4 2010-09-13 21:00:36.288338228 +0300
-+++ new-ghc/aclocal.m4 2010-09-13 21:00:37.209338228 +0300
-@@ -141,7 +141,7 @@
- # A variation of AC_CHECK_SIZEOF for computing the alignment restrictions of a
- # given type. Defines ALIGNMENT_TYPE.
- AC_DEFUN([FP_CHECK_ALIGNMENT],
--[AS_LITERAL_IF([$1], [],
-+[AS_LITERAL_IF(m4_translit([[$1]], [*], [p]), [],
- [AC_FATAL([$0: requires literal arguments])])[]dnl
- AC_CHECK_TYPE([$1], [], [], [$3])[]dnl
- m4_pushdef([fp_Cache], [AS_TR_SH([fp_cv_alignment_$1])])[]dnl
diff --git a/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-freebsd.patch b/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-freebsd.patch
deleted file mode 100644
index 3600a5833de4..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-freebsd.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-gcc on FreeBSD/Gentoo/x86 has 'i686-gentoo-freebsd7.2' triplet, but ghc likes 'i386-unknown-freebsd'
-Mangle -gentoo- to -unknown-, mangle '-freebsd7.2' (and other numerics) to '-freebsd'
-Thanks to naota for the report and testing.
-diff --git a/aclocal.m4 b/aclocal.m4
-index f401860..7f93ebf 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1333,7 +1333,7 @@ case "$1" in
- # converts vendor from gnu to ghc naming, and assigns the result to $target_var
- AC_DEFUN([GHC_CONVERT_VENDOR],[
- case "$1" in
-- pc)
-+ pc|gentoo)
- $2="unknown"
- ;;
- *)
-@@ -1354,6 +1354,10 @@ case "$1" in
- freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
- $2="$1"
- ;;
-+ # for things like freebsd7.2
-+ freebsd*)
-+ $2="freebsd"
-+ ;;
- *)
- echo "Unknown OS $1"
- exit 1
-diff --git a/configure.ac b/configure.ac
-index 0360fa5..0a1ce25 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -225,7 +225,7 @@ then
- echo "Bootstrapping GHC is a cross compiler. This probably isn't going to work"
- fi
- fi
--build=`echo "$build" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/'`
-+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
-
- # We have to run these unconditionally, but we may discard their
-@@ -260,7 +260,7 @@ else
- GHC_CONVERT_VENDOR([$build_vendor], [BuildVendor])
- GHC_CONVERT_OS([$build_os], [BuildOS])
- fi
--host=`echo "$host" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/'`
-+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
-
- if test "$host_alias" = ""
-@@ -282,7 +282,7 @@ else
- GHC_CONVERT_VENDOR([$host_vendor], [HostVendor])
- GHC_CONVERT_OS([$host_os], [HostOS])
- fi
--target=`echo "$target" | sed -e 's/linux-gnu/linux/' -e 's/-pc-/-unknown-/'`
-+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
-
- if test "$target_alias" = ""
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
deleted file mode 100644
index 926237ba8064..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-configure-CHOST-prefix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-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
deleted file mode 100644
index c971eb25eed6..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-darwin8.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-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-ghciless-haddock-3558.patch b/dev-lang/ghc/files/ghc-6.12.3-ghciless-haddock-3558.patch
deleted file mode 100644
index 0a25d72b5ad0..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-ghciless-haddock-3558.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-commit c7d5e1322f54b5387767c15788d8372705b8981b
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sun Oct 3 22:32:12 2010 +0300
-
- Sat Jul 31 14:55:06 EEST 2010 Ian Lynagh <igloo@earth.li>
- * Expose the functions haddock needs even when haddock is disabled; #3558
----
- compiler/main/GHC.hs | 13 +++++++++++--
- compiler/main/InteractiveEval.hs | 9 ---------
- compiler/typecheck/TcRnDriver.lhs | 24 +++++++++++++++---------
- 3 files changed, 26 insertions(+), 20 deletions(-)
-
-diff --git a/compiler/main/GHC.hs b/compiler/main/GHC.hs
-index be7d574..2f25cbe 100644
---- a/compiler/main/GHC.hs
-+++ b/compiler/main/GHC.hs
-@@ -111,13 +111,13 @@ module GHC (
- showModule,
- isModuleInterpreted,
- InteractiveEval.compileExpr, HValue, dynCompileExpr,
-- lookupName,
- GHC.obtainTermFromId, GHC.obtainTermFromVal, reconstructType,
- modInfoModBreaks,
- ModBreaks(..), BreakIndex,
- BreakInfo(breakInfo_number, breakInfo_module),
- BreakArray, setBreakOn, setBreakOff, getBreak,
- #endif
-+ lookupName,
-
- -- * Abstract syntax elements
-
-@@ -243,9 +243,9 @@ import Linker ( HValue )
- import ByteCodeInstr
- import BreakArray
- import InteractiveEval
--import TcRnDriver
- #endif
-
-+import TcRnDriver
- import TcIface
- import TcRnTypes hiding (LIE)
- import TcRnMonad ( initIfaceCheck )
-@@ -2711,3 +2711,12 @@ obtainTermFromId bound force id =
- liftIO $ InteractiveEval.obtainTermFromId hsc_env bound force id
-
- #endif
-+
-+-- | Returns the 'TyThing' for a 'Name'. The 'Name' may refer to any
-+-- entity known to GHC, including 'Name's defined using 'runStmt'.
-+lookupName :: GhcMonad m => Name -> m (Maybe TyThing)
-+lookupName name = withSession $ \hsc_env -> do
-+ mb_tything <- ioMsg $ tcRnLookupName hsc_env name
-+ return mb_tything
-+ -- XXX: calls panic in some circumstances; is that ok?
-+
-diff --git a/compiler/main/InteractiveEval.hs b/compiler/main/InteractiveEval.hs
-index 352fbf0..3339313 100644
---- a/compiler/main/InteractiveEval.hs
-+++ b/compiler/main/InteractiveEval.hs
-@@ -29,7 +29,6 @@ module InteractiveEval (
- showModule,
- isModuleInterpreted,
- compileExpr, dynCompileExpr,
-- lookupName,
- Term(..), obtainTermFromId, obtainTermFromVal, reconstructType,
- skolemiseSubst, skolemiseTy
- #endif
-@@ -922,14 +921,6 @@ parseName str = withSession $ \hsc_env -> do
- (L _ rdr_name) <- hscParseIdentifier (hsc_dflags hsc_env) str
- ioMsgMaybe $ tcRnLookupRdrName hsc_env rdr_name
-
---- | Returns the 'TyThing' for a 'Name'. The 'Name' may refer to any
---- entity known to GHC, including 'Name's defined using 'runStmt'.
--lookupName :: GhcMonad m => Name -> m (Maybe TyThing)
--lookupName name = withSession $ \hsc_env -> do
-- mb_tything <- ioMsg $ tcRnLookupName hsc_env name
-- return mb_tything
-- -- XXX: calls panic in some circumstances; is that ok?
--
- -- -----------------------------------------------------------------------------
- -- Getting the type of an expression
-
-diff --git a/compiler/typecheck/TcRnDriver.lhs b/compiler/typecheck/TcRnDriver.lhs
-index 323a167..342763d 100644
---- a/compiler/typecheck/TcRnDriver.lhs
-+++ b/compiler/typecheck/TcRnDriver.lhs
-@@ -9,10 +9,10 @@ module TcRnDriver (
- #ifdef GHCI
- tcRnStmt, tcRnExpr, tcRnType,
- tcRnLookupRdrName,
-- tcRnLookupName,
-- tcRnGetInfo,
- getModuleExports,
- #endif
-+ tcRnLookupName,
-+ tcRnGetInfo,
- tcRnModule,
- tcTopSrcDecls,
- tcRnExtCore
-@@ -71,6 +71,7 @@ import Outputable
- import DataCon
- import Type
- import Class
-+import TcType
- import Data.List ( sortBy )
-
- #ifdef GHCI
-@@ -83,7 +84,6 @@ import IfaceEnv
- import MkId
- import BasicTypes
- import TidyPgm ( globaliseAndTidyId )
--import TcType ( isUnitTy, isTauTy, tyClsNamesOfDFunHead )
- import TysWiredIn ( unitTy, mkListTy )
- #endif
-
-@@ -1015,7 +1015,6 @@ get two defns for 'main' in the interface file!
- %*********************************************************
-
- \begin{code}
--#ifdef GHCI
- setInteractiveContext :: HscEnv -> InteractiveContext -> TcRn a -> TcRn a
- setInteractiveContext hsc_env icxt thing_inside
- = let -- Initialise the tcg_inst_env with instances from all home modules.
-@@ -1046,6 +1045,7 @@ setInteractiveContext hsc_env icxt thing_inside
-
-
- \begin{code}
-+#ifdef GHCI
- tcRnStmt :: HscEnv
- -> InteractiveContext
- -> LStmt RdrName
-@@ -1401,6 +1401,7 @@ lookup_rdr_name rdr_name = do {
-
- return good_names
- }
-+#endif
-
- tcRnLookupName :: HscEnv -> Name -> IO (Messages, Maybe TyThing)
- tcRnLookupName hsc_env name
-@@ -1421,8 +1422,8 @@ tcRnLookupName' name = do
- _ -> panic "tcRnLookupName'"
-
- tcRnGetInfo :: HscEnv
-- -> Name
-- -> IO (Messages, Maybe (TyThing, Fixity, [Instance]))
-+ -> Name
-+ -> IO (Messages, Maybe (TyThing, Fixity, [Instance]))
-
- -- Used to implement :info in GHCi
- --
-@@ -1432,8 +1433,14 @@ tcRnGetInfo :: HscEnv
- -- *and* as a type or class constructor;
- -- hence the call to dataTcOccs, and we return up to two results
- tcRnGetInfo hsc_env name
-- = initTcPrintErrors hsc_env iNTERACTIVE $
-- let ictxt = hsc_IC hsc_env in
-+ = initTcPrintErrors hsc_env iNTERACTIVE $
-+ tcRnGetInfo' hsc_env name
-+
-+tcRnGetInfo' :: HscEnv
-+ -> Name
-+ -> TcRn (TyThing, Fixity, [Instance])
-+tcRnGetInfo' hsc_env name
-+ = let ictxt = hsc_IC hsc_env in
- setInteractiveContext hsc_env ictxt $ do
-
- -- Load the interface for all unqualified types and classes
-@@ -1482,7 +1489,6 @@ loadUnqualIfaces ictxt
- isTcOcc (nameOccName name), -- Types and classes only
- unQualOK gre ] -- In scope unqualified
- doc = ptext (sLit "Need interface for module whose export(s) are in scope unqualified")
--#endif /* GHCI */
- \end{code}
-
- %************************************************************************
-
-commit 83d056a7e15e3253c446d896707d0b012f9cf8b3
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sun Oct 3 22:30:53 2010 +0300
-
- Sat Jul 31 02:50:01 EEST 2010 Ian Lynagh <igloo@earth.li>
-
- * Always haddock by default
- Revert this patch:
- Matthias Kilian <kili@outback.escape.de>**20090920181319
- Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS
- if GhcWithInterpreter = NO
- Haddock uses TcRnDriver.tcRnGetInfo, which is only available if
- GHCI is built. Set HADDOC_DOCS to NO if GhcWithInterpreter is NO,
- and disable the haddock build if HADDOC_DOCS = NO.
----
- ghc.mk | 2 --
- mk/config.mk.in | 2 +-
- 2 files changed, 1 insertions(+), 3 deletions(-)
-
-diff --git a/ghc.mk b/ghc.mk
-index 9193f46..1b5d1f9 100644
---- a/ghc.mk
-+++ b/ghc.mk
-@@ -529,11 +529,9 @@ BUILD_DIRS += \
- $(GHC_GENAPPLY_DIR)
- endif
-
--ifneq "$(HADDOCK_DOCS)" "NO"
- BUILD_DIRS += \
- utils/haddock \
- utils/haddock/doc
--endif
-
- ifneq "$(CLEANING)" "YES"
- BUILD_DIRS += \
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 7399de0..55a9f19 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -736,7 +736,7 @@ SRC_ALEX_OPTS = -g
- HSTAGS = @HstagsCmd@
-
- # Should we build haddock docs?
--HADDOCK_DOCS = $(GhcWithInterpreter)
-+HADDOCK_DOCS = YES
- # And HsColour the sources?
- ifeq "$(HSCOLOUR)" ""
- HSCOLOUR_SRCS = NO
diff --git a/dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch b/dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch
deleted file mode 100644
index 37bfab110fd0..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit 7b45030b81fb0588b858400c051f9f7c10ef2760
-Author: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Tue Jul 6 11:39:18 2010 +0300
-
- Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
-
- /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
- dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
- /usr/bin/ld: unrecognized option '-Wl,--relax'
-
- If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
-
- Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
- Removing ia64 specific path.
-
- Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-
-diff --git a/compiler/ghc.mk b/compiler/ghc.mk
-index 6b25efa..29d3ade 100644
---- a/compiler/ghc.mk
-+++ b/compiler/ghc.mk
-@@ -337,13 +337,6 @@ ifeq "$(TargetOS_CPP)" "openbsd"
- compiler_CONFIGURE_OPTS += --ld-options=-E
- endif
-
--ifeq "$(GhcUnregisterised)" "NO"
--ifeq "$(HOSTPLATFORM)" "ia64-unknown-linux"
--# needed for generating proper relocation in large binaries: trac #856
--compiler_CONFIGURE_OPTS += --ld-option=-Wl,--relax
--endif
--endif
--
- # We need to turn on profiling either if we have been asked to
- # (GhcLibProfiled = YES) or if we want GHC itself to be compiled with
- # profiling enabled (GhcProfiled = YES).
diff --git a/dev-lang/ghc/files/ghc-6.12.3-ia64-storage-manager-fix.patch b/dev-lang/ghc/files/ghc-6.12.3-ia64-storage-manager-fix.patch
deleted file mode 100644
index 1458dcc7d8b6..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-ia64-storage-manager-fix.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
-
-the issue: durin ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
-got the failure on stage2 phase:
- "inplace/bin/ghc-stage2" -H32m -O -H64m -O0 -w ...
- ghc-stage2: internal error: evacuate: strange closure type 15
- (GHC version 6.12.3 for ia64_unknown_linux)
- Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
- make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
-
-I attached gdb and got backtrace:
-
-Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
-(gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
-Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
-[Thread debugging using libthread_db enabled]
-
-Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
-39 va_start(ap,s);
-(gdb) bt
-#0 barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
-#1 0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
-#2 0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
-...
-
-> 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
-> is returning true for a FUN_STATIC closure
-> 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
-> 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
-> 17:19:12 < slyfox> $1 = 0
-> 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
-> 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
-> bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
-> mblock_cache.
-...
-> 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
-> 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
-And it helped!
-
-diff --git a/includes/rts/storage/MBlock.h b/includes/rts/storage/MBlock.h
-index 0943d4c..a113498 100644
---- a/includes/rts/storage/MBlock.h
-+++ b/includes/rts/storage/MBlock.h
-@@ -126,7 +126,17 @@ extern StgWord8 mblock_map[];
-
- #define MBC_LINE_BITS 0
- #define MBC_TAG_BITS 15
--typedef StgWord32 MbcCacheLine; // could use 16, but 32 was faster
-+
-+#if x86_64_HOST_ARCH
-+// 32bits are enough for 'entry' as modern amd64 boxes have
-+// only 48bit sized virtual addres.
-+typedef StgWord32 MbcCacheLine;
-+#else
-+// 32bits is not enough here as some arches (like ia64) use
-+// upper address bits to distinct memory areas.
-+typedef StgWord64 MbcCacheLine;
-+#endif
-+
- typedef StgWord8 MBlockMapLine;
-
- #define MBLOCK_MAP_LINE(p) (((StgWord)p & 0xffffffff) >> (MBLOCK_SHIFT + MBC_LINE_BITS))
diff --git a/dev-lang/ghc/files/ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch b/dev-lang/ghc/files/ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch
deleted file mode 100644
index 5eb68348b07b..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rN -u old-ghc/mk/config.mk.in new-ghc/mk/config.mk.in
---- old-ghc/mk/config.mk.in 2010-07-10 00:22:07.583742895 +0300
-+++ new-ghc/mk/config.mk.in 2010-07-10 00:22:08.049743314 +0300
-@@ -177,7 +177,7 @@
- # Whether to use libffi for adjustors (foreign import "wrapper") or
- # not. If we have built-in support (rts/Adjustor.c) then we use that,
- # otherwise we fall back on libffi, which is slightly slower.
--ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 powerpc ia64,),YES,NO))
-+ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 powerpc,),YES,NO))
- ifeq "$(ArchHasAdjustorSupport)" "YES"
- UseLibFFIForAdjustors=NO
- else
diff --git a/dev-lang/ghc/files/ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch b/dev-lang/ghc/files/ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch
deleted file mode 100644
index 9d839fc7b3e3..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-libffi-incorrect-detection-of-selinux.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 6d011f0865dc99d9306b5768ccd1eaa0355d994e Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sat, 5 Feb 2011 11:53:33 +0200
-Subject: [PATCH] libffi: backport incorrect detection of selinux
-
-This patch unbreaks ghci on GRSEC kernels hardened with
-TPE (Trusted Path Execution) protection.
-
-TPE forbids mmap('rwx') files opened for writes:
- fd = open (a_file_in_tmp, O_RDWR);
- mmap (..., PROT_READ | PROT_WRITE | PROT_EXEC, fd);
-
-while allows anonymous RWX mappings:
- mmap (...MAP_ANONYMOUS , PROT_READ | PROT_WRITE | PROT_EXEC, -1);
-
-Thanks to klondike for finding it out.
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- libffi/ghc.mk | 2 ++
- libffi/libffi.selinux-detection-3.0.8.patch | 15 +++++++++++++++
- 2 files changed, 17 insertions(+), 0 deletions(-)
- create mode 100644 libffi/libffi.selinux-detection-3.0.8.patch
-
-diff --git a/libffi/ghc.mk b/libffi/ghc.mk
-index 1b1b118..a40f23c 100644
---- a/libffi/ghc.mk
-+++ b/libffi/ghc.mk
-@@ -117,6 +117,8 @@ $(libffi_STAMP_CONFIGURE):
- # This patch is just the resulting delta from running
- # automake && autoreconf && libtoolize --force --copy
- cd libffi/build && "$(PATCH)" -p1 < ../libffi.autotools-update-3.0.8.patch
-+ # don't report nonselinux systems as selinux
-+ cd libffi/build && "$(PATCH)" -p0 < ../libffi.selinux-detection-3.0.8.patch
-
- # Because -Werror may be in SRC_CC_OPTS/SRC_LD_OPTS, we need to turn
- # warnings off or the compilation of libffi might fail due to warnings
-diff --git a/libffi/libffi.selinux-detection-3.0.8.patch b/libffi/libffi.selinux-detection-3.0.8.patch
-new file mode 100644
-index 0000000..a919f28
---- /dev/null
-+++ b/libffi/libffi.selinux-detection-3.0.8.patch
-@@ -0,0 +1,15 @@
-+src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
-+
-+http://github.com/atgreen/libffi/commit/eaf444eabc4c78703c0f98ac0197b1619c1b1bef
-+
-+--- src/closures.c
-++++ src/closures.c
-+@@ -146,7 +146,7 @@
-+ p = strchr (p + 1, ' ');
-+ if (p == NULL)
-+ break;
-+- if (strncmp (p + 1, "selinuxfs ", 10) != 0)
-++ if (strncmp (p + 1, "selinuxfs ", 10) == 0)
-+ {
-+ free (buf);
-+ fclose (f);
---
-1.7.3.4
-
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
deleted file mode 100644
index 93752ea76f7e..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-mach-o-relocation-limit.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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
deleted file mode 100644
index e71109920820..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-pic-powerpc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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
deleted file mode 100644
index a438c0d57b90..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-powerpc-darwin-no-mmap.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-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-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch b/dev-lang/ghc/files/ghc-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch
deleted file mode 100644
index bd712e3b5563..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/mk/config.mk.in b/mk/config.mk.in
-index 3fcc0f0..496a6f7 100644
---- a/mk/config.mk.in
-+++ b/mk/config.mk.in
-@@ -176,7 +176,7 @@ endif
- # Whether to use libffi for adjustors (foreign import "wrapper") or
- # not. If we have built-in support (rts/Adjustor.c) then we use that,
- # otherwise we fall back on libffi, which is slightly slower.
--ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 powerpc,),YES,NO))
-+ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64,),YES,NO))
- ifeq "$(ArchHasAdjustorSupport)" "YES"
- UseLibFFIForAdjustors=NO
- else
diff --git a/dev-lang/ghc/files/ghc-6.12.3-ticket-2615-linker-script.patch b/dev-lang/ghc/files/ghc-6.12.3-ticket-2615-linker-script.patch
deleted file mode 100644
index 96fdcb6a8091..000000000000
--- a/dev-lang/ghc/files/ghc-6.12.3-ticket-2615-linker-script.patch
+++ /dev/null
@@ -1,278 +0,0 @@
-Wed Dec 16 19:51:55 CET 2009 howard_b_golden@yahoo.com
- * FIX #2615 (linker scripts in .so files)
- This patch does not apply to Windows. It only applies to systems with
- ELF binaries.
-
- This is a patch to rts/Linker.c to recognize linker scripts in .so
- files and find the real target .so shared library for loading.
-diff -rN -u old-ghc/rts/Linker.c new-ghc/rts/Linker.c
---- old-ghc/rts/Linker.c 2010-07-28 22:59:33.532759118 +0200
-+++ new-ghc/rts/Linker.c 2010-07-28 22:59:34.853759052 +0200
-@@ -39,6 +39,8 @@
-
- #include <stdlib.h>
- #include <string.h>
-+#include <stdio.h>
-+#include <assert.h>
-
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
-@@ -79,6 +81,8 @@
-
- #if defined(linux_HOST_OS) || defined(solaris2_HOST_OS) || defined(freebsd_HOST_OS) || defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS) || defined(openbsd_HOST_OS)
- # define OBJFORMAT_ELF
-+# include <regex.h> // regex is already used by dlopen() so this is OK
-+ // to use here without requiring an additional lib
- #elif defined(cygwin32_HOST_OS) || defined (mingw32_HOST_OS)
- # define OBJFORMAT_PEi386
- # include <windows.h>
-@@ -1095,12 +1099,19 @@
-
- #if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
- static void *dl_prog_handle;
-+static regex_t re_invalid;
-+static regex_t re_realso;
-+static void initLinkerCleanup( void );
-+#ifdef THREADED_RTS
-+static Mutex dl_mutex; // mutex to protect dlopen/dlerror critical section
-+#endif
- #endif
-
- void
- initLinker( void )
- {
- RtsSymbolVal *sym;
-+ int compileResult;
-
- /* Make initLinker idempotent, so we can call it
- before evey relevant operation; that means we
-@@ -1109,6 +1120,9 @@
- linker_init_done = 1;
- }
-
-+#ifdef THREADED_RTS
-+ initMutex(&dl_mutex);
-+#endif
- stablehash = allocStrHashTable();
- symhash = allocStrHashTable();
-
-@@ -1127,6 +1141,15 @@
- # else
- dl_prog_handle = dlopen(NULL, RTLD_LAZY);
- # endif /* RTLD_DEFAULT */
-+
-+ compileResult = regcomp(&re_invalid,
-+ "(([^ \t()])+\\.so([^ \t:()])*):([ \t])*invalid ELF header",
-+ REG_EXTENDED);
-+ ASSERT( compileResult == 0 );
-+ compileResult = regcomp(&re_realso,
-+ "GROUP *\\( *(([^ )])+)",
-+ REG_EXTENDED);
-+ ASSERT( compileResult == 0 );
- # endif
-
- #if defined(x86_64_HOST_ARCH)
-@@ -1147,6 +1170,19 @@
- #endif
- }
-
-+void
-+exitLinker( void ) {
-+#if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
-+ if (linker_init_done == 1) {
-+ regfree(&re_invalid);
-+ regfree(&re_realso);
-+#ifdef THREADED_RTS
-+ closeMutex(&dl_mutex);
-+#endif
-+ }
-+#endif
-+}
-+
- /* -----------------------------------------------------------------------------
- * Loading DLL or .so dynamic libraries
- * -----------------------------------------------------------------------------
-@@ -1182,29 +1218,112 @@
- static OpenedDLL* opened_dlls = NULL;
- #endif
-
--const char *
--addDLL( char *dll_name )
--{
- # if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
-- /* ------------------- ELF DLL loader ------------------- */
-- void *hdl;
-- const char *errmsg;
-
-- initLinker();
-+static char *
-+internal_dlopen(const char *dll_name)
-+{
-+ void *hdl;
-+ char *errmsg, *errmsg_copy;
-
- // omitted: RTLD_NOW
- // see http://www.haskell.org/pipermail/cvs-ghc/2007-September/038570.html
-- hdl= dlopen(dll_name, RTLD_LAZY | RTLD_GLOBAL);
-+ IF_DEBUG(linker,
-+ debugBelch("internal_dlopen: dll_name = '%s'\n", dll_name));
-
-+ //-------------- Begin critical section ------------------
-+ // This critical section is necessary because dlerror() is not
-+ // required to be reentrant (see POSIX -- IEEE Std 1003.1-2008)
-+ // Also, the error message returned must be copied to preserve it
-+ // (see POSIX also)
-+
-+ ACQUIRE_LOCK(&dl_mutex);
-+ hdl = dlopen(dll_name, RTLD_LAZY | RTLD_GLOBAL);
-+
-+ errmsg = NULL;
- if (hdl == NULL) {
- /* dlopen failed; return a ptr to the error msg. */
- errmsg = dlerror();
- if (errmsg == NULL) errmsg = "addDLL: unknown error";
-- return errmsg;
-- } else {
-+ errmsg_copy = stgMallocBytes(strlen(errmsg)+1, "addDLL");
-+ strcpy(errmsg_copy, errmsg);
-+ errmsg = errmsg_copy;
-+ }
-+ RELEASE_LOCK(&dl_mutex);
-+ //--------------- End critical section -------------------
-+
-+ return errmsg;
-+}
-+# endif
-+
-+const char *
-+addDLL( char *dll_name )
-+{
-+# if defined(OBJFORMAT_ELF) || defined(OBJFORMAT_MACHO)
-+ /* ------------------- ELF DLL loader ------------------- */
-+
-+#define NMATCH 5
-+ regmatch_t match[NMATCH];
-+ char *errmsg;
-+ FILE* fp;
-+ size_t match_length;
-+#define MAXLINE 1000
-+ char line[MAXLINE];
-+ int result;
-+
-+ initLinker();
-+
-+ IF_DEBUG(linker, debugBelch("addDLL: dll_name = '%s'\n", dll_name));
-+ errmsg = internal_dlopen(dll_name);
-+
-+ if (errmsg == NULL) {
- return NULL;
- }
-- /*NOTREACHED*/
-+
-+ // GHC Trac ticket #2615
-+ // On some systems (e.g., Gentoo Linux) dynamic files (e.g. libc.so)
-+ // contain linker scripts rather than ELF-format object code. This
-+ // code handles the situation by recognizing the real object code
-+ // file name given in the linker script.
-+ //
-+ // If an "invalid ELF header" error occurs, it is assumed that the
-+ // .so file contains a linker script instead of ELF object code.
-+ // In this case, the code looks for the GROUP ( ... ) linker
-+ // directive. If one is found, the first file name inside the
-+ // parentheses is treated as the name of a dynamic library and the
-+ // code attempts to dlopen that file. If this is also unsuccessful,
-+ // an error message is returned.
-+
-+ // see if the error message is due to an invalid ELF header
-+ IF_DEBUG(linker, debugBelch("errmsg = '%s'\n", errmsg));
-+ result = regexec(&re_invalid, errmsg, (size_t) NMATCH, match, 0);
-+ IF_DEBUG(linker, debugBelch("result = %i\n", result));
-+ if (result == 0) {
-+ // success -- try to read the named file as a linker script
-+ match_length = (size_t) stg_min((match[1].rm_eo - match[1].rm_so),
-+ MAXLINE-1);
-+ strncpy(line, (errmsg+(match[1].rm_so)),match_length);
-+ line[match_length] = '\0'; // make sure string is null-terminated
-+ IF_DEBUG(linker, debugBelch ("file name = '%s'\n", line));
-+ if ((fp = fopen(line, "r")) == NULL) {
-+ return errmsg; // return original error if open fails
-+ }
-+ // try to find a GROUP ( ... ) command
-+ while (fgets(line, MAXLINE, fp) != NULL) {
-+ IF_DEBUG(linker, debugBelch("input line = %s", line));
-+ if (regexec(&re_realso, line, (size_t) NMATCH, match, 0) == 0) {
-+ // success -- try to dlopen the first named file
-+ IF_DEBUG(linker, debugBelch("match%s\n",""));
-+ line[match[1].rm_eo] = '\0';
-+ errmsg = internal_dlopen(line+match[1].rm_so);
-+ break;
-+ }
-+ // if control reaches here, no GROUP ( ... ) directive was found
-+ // and the original error message is returned to the caller
-+ }
-+ fclose(fp);
-+ }
-+ return errmsg;
-
- # elif defined(OBJFORMAT_PEi386)
- /* ------------------- Win32 DLL loader ------------------- */
-@@ -4195,7 +4314,7 @@
- i++;
- }
- #endif
-- else
-+ else
- {
- barf ("Don't know how to handle this Mach-O "
- "scattered relocation entry: "
-@@ -4204,7 +4323,7 @@
- oc->fileName, scat->r_type, scat->r_address);
- return 0;
- }
--
-+
- #ifdef powerpc_HOST_ARCH
- if(scat->r_type == GENERIC_RELOC_VANILLA
- || scat->r_type == PPC_RELOC_SECTDIFF)
-@@ -4250,8 +4369,8 @@
- "object file %s; entry type %ld; address %#lx\n",
- oc->fileName, scat->r_type, scat->r_address);
- return 0;
-- }
--
-+ }
-+
- }
- else /* !(relocs[i].r_address & R_SCATTERED) */
- {
-diff -rN -u old-ghc/rts/LinkerInternals.h new-ghc/rts/LinkerInternals.h
---- old-ghc/rts/LinkerInternals.h 2010-07-28 22:59:33.532759118 +0200
-+++ new-ghc/rts/LinkerInternals.h 2010-07-28 22:59:34.854758341 +0200
-@@ -109,4 +109,6 @@
-
- extern ObjectCode *objects;
-
-+void exitLinker( void );
-+
- #endif /* LINKERINTERNALS_H */
-diff -rN -u old-ghc/rts/RtsStartup.c new-ghc/rts/RtsStartup.c
---- old-ghc/rts/RtsStartup.c 2010-07-28 22:59:33.537758009 +0200
-+++ new-ghc/rts/RtsStartup.c 2010-07-28 22:59:34.859758558 +0200
-@@ -34,6 +34,7 @@
- #include "Profiling.h"
- #include "Timer.h"
- #include "Globals.h"
-+void exitLinker( void ); // there is no Linker.h file to include
-
- #if defined(RTS_GTK_FRONTPANEL)
- #include "FrontPanel.h"
-@@ -388,6 +389,9 @@
- /* free shared Typeable store */
- exitGlobalStore();
-
-+ /* free linker data */
-+ exitLinker();
-+
- /* free file locking tables, if necessary */
- #if !defined(mingw32_HOST_OS)
- freeFileLocking();
diff --git a/dev-lang/ghc/files/ghc-7.0.2-CHOST.patch b/dev-lang/ghc/files/ghc-7.0.2-CHOST.patch
deleted file mode 100644
index 7479149a9efa..000000000000
--- a/dev-lang/ghc/files/ghc-7.0.2-CHOST.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-Tue Mar 1 08:41:08 EET 2011 Sergei Trofimovich <slyfox@community.haskell.org>
- * configure: triplet: accept i486 CPU (and more), more vendors and OSes
-
- Gentoo has interesting ports:
-
- - freebsd with following triplet:
- ./configure --build=i686-gentoo-freebsd8 --host=i686-gentoo-freebsd8 --host=i686-gentoo-freebsd8
- should be recognized as 'i386-unknown-freebsd'
- - 'pc' vendor along with non-'i386' is very common:
- ./configure --build=i486-pc-linux-gnu --i486-pc-linux-gnu --host=i486-pc-linux-gnu
- ./configure --build=i686-pc-linux-gnu --i686-pc-linux-gnu --host=i686-pc-linux-gnu
- should be recognized as 'i386-unknown-linux'
-
- Patch adds:
-
- - 'pc' vendor (maps to 'unknown')
- - 'gentoo' vendor (maps to 'unknown')
- - 'i486', 'i586', 'i686' CPUs (maps to 'i386')
- - 'freebsd8' OS (maps to 'freebsd')
-diff -rN -u old-ghc/aclocal.m4 new-ghc/aclocal.m4
---- old-ghc/aclocal.m4 2011-03-04 13:26:18.512776569 +0200
-+++ new-ghc/aclocal.m4 2011-03-04 13:26:18.606776569 +0200
-@@ -1458,7 +1458,7 @@
- hppa*)
- $2="hppa"
- ;;
-- i386)
-+ i386|i486|i586|i686)
- $2="i386"
- ;;
- ia64)
-@@ -1511,7 +1511,15 @@
- # --------------------------------
- # converts vendor from gnu to ghc naming, and assigns the result to $target_var
- AC_DEFUN([GHC_CONVERT_VENDOR],[
--$2="$1"
-+ case "$1" in
-+ pc|gentoo) # like i686-pc-linux-gnu and i686-gentoo-freebsd8
-+ $2="unknown"
-+ ;;
-+ *)
-+ #pass thru by default
-+ $2="$1"
-+ ;;
-+ esac
- ])
-
- # GHC_CONVERT_OS(os, target_var)
-@@ -1526,6 +1534,9 @@
- freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
- $2="$1"
- ;;
-+ freebsd8) # like i686-gentoo-freebsd8
-+ $2="freebsd"
-+ ;;
- *)
- echo "Unknown OS $1"
- exit 1
-Tue Mar 1 21:40:18 EET 2011 Sergei Trofimovich <slyfox@community.haskell.org>
- * configure: amend sanity check
-
- As we perform some mangling of original --build/--host/--target
- params we should check the result of mangling against desired triplet,
- not originally passed by user.
-
- Patch also adds mangled triplets to the output.
-diff -rN -u old-ghc/configure.ac new-ghc/configure.ac
---- old-ghc/configure.ac 2011-03-04 13:26:20.005776569 +0200
-+++ new-ghc/configure.ac 2011-03-04 13:26:20.319776569 +0200
-@@ -288,7 +288,7 @@
-
- # Verify that the installed (bootstrap) GHC is capable of generating
- # code for the requested build platform.
--if test "$build" != "$bootstrap_target"
-+if test "$BuildPlatform" != "$bootstrap_target"
- then
- echo "This GHC (${WithGhc}) does not generate code for the build platform"
- echo " GHC target platform : $bootstrap_target"
-@@ -296,6 +296,10 @@
- exit 1
- fi
-
-+echo "GHC build : $BuildPlatform"
-+echo "GHC host : $HostPlatform"
-+echo "GHC target : $TargetPlatform"
-+
- AC_SUBST(BuildPlatform)
- AC_SUBST(HostPlatform)
- AC_SUBST(TargetPlatform)
diff --git a/dev-lang/ghc/files/ghc-7.0.4-CHOST-softfloat.patch b/dev-lang/ghc/files/ghc-7.0.4-CHOST-softfloat.patch
deleted file mode 100644
index 7b726d2f2116..000000000000
--- a/dev-lang/ghc/files/ghc-7.0.4-CHOST-softfloat.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/aclocal.m4 b/aclocal.m4
-index b10eeec..13988fe 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1487,6 +1487,9 @@ AC_DEFUN([GHC_CONVERT_VENDOR],[
- pc|gentoo) # like i686-pc-linux-gnu and i686-gentoo-freebsd8
- $2="unknown"
- ;;
-+ softfloat) # like armv5tel-softfloat-linux-gnueabi
-+ $2="unknown"
-+ ;;
- *)
- #pass thru by default
- $2="$1"
diff --git a/dev-lang/ghc/files/ghc-7.0.4-fix-ppc-linker.patch b/dev-lang/ghc/files/ghc-7.0.4-fix-ppc-linker.patch
deleted file mode 100644
index 42caa7f7db88..000000000000
--- a/dev-lang/ghc/files/ghc-7.0.4-fix-ppc-linker.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-commit 243c304273a1254418aeacf4d81cadb2d59945ad
-Author: Erik de Castro Lopo <erikd@mega-nerd.com>
-Date: Mon Apr 4 22:40:15 2011 +1000
-
- Fix compiling on linux-powerpc.
-
-diff --git a/rts/Linker.c b/rts/Linker.c
-index 5285ec6..c840857 100644
---- a/rts/Linker.c
-+++ b/rts/Linker.c
-@@ -2572,7 +2572,11 @@ static void
- ocFlushInstructionCache( ObjectCode *oc )
- {
- /* The main object code */
-- ocFlushInstructionCacheFrom(oc->image + oc->misalignment, oc->fileSize);
-+ ocFlushInstructionCacheFrom(oc->image
-+#ifdef darwin_HOST_OS
-+ + oc->misalignment
-+#endif
-+ , oc->fileSize);
-
- /* Jump Islands */
- ocFlushInstructionCacheFrom(oc->symbol_extras, sizeof(SymbolExtra) * oc->n_symbol_extras);
diff --git a/dev-lang/ghc/files/ghc-7.0.4-nxstack.patch b/dev-lang/ghc/files/ghc-7.0.4-nxstack.patch
deleted file mode 100644
index 791e8defb90a..000000000000
--- a/dev-lang/ghc/files/ghc-7.0.4-nxstack.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 25bf3687361501e711d50a8038f0f8de4a2d2aa3 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Wed, 10 Aug 2011 11:01:26 +0300
-Subject: [PATCH] Mark stack of 'rts/AdjustorAsm.S' as nonexecutable on linux
-
-Gentoo's scanelf program found executable stack in many resulting binaries:
-* RWX --- --- home/prefix/gentoo/usr/lib/ghc-7.2.1/ghc
-* !WX --- --- home/prefix/gentoo/usr/lib/ghc-7.2.1/libHSrts.a:AdjustorAsm.o
-
-More info can be found here: http://www.gentoo.org/proj/en/hardened/gnu-stack.xml
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- rts/AdjustorAsm.S | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/rts/AdjustorAsm.S b/rts/AdjustorAsm.S
-index 75b83f6..8045bfe 100644
---- a/rts/AdjustorAsm.S
-+++ b/rts/AdjustorAsm.S
-@@ -192,3 +192,7 @@ adjustorCode:
- ret
- #endif
-
-+/* mark stack as nonexecutable */
-+#if defined(__linux__) && defined(__ELF__)
-+.section .note.GNU-stack,"",@progbits
-+#endif
---
-1.7.3.4
-
diff --git a/dev-lang/ghc/files/ghc-apply-gmp-hack b/dev-lang/ghc/files/ghc-apply-gmp-hack
deleted file mode 100644
index 32a3a8f1f7cf..000000000000
--- a/dev-lang/ghc/files/ghc-apply-gmp-hack
+++ /dev/null
@@ -1,60 +0,0 @@
-# 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,
-# > except for applications that use the semi-documented mpn_bdivmod function.
-#
-# > The solib numbers now reflect the removal of the documented but preliminary
-# > mpn_bdivmod function; we correctly flag incompatibility with GMP 4.3.
-# > GMP 5.0.0 has this wrong, and should perhaps be uninstalled to avoid confusion.
-#
-# taken from http://gmplib.org/gmp5.0.html
-#
-# Luckily, ghc does not use the 'mpn_bdivmod' function, so we can easily use
-# libgmp.so.10 for binaries which require libgmp.so.3
-#
-# So, this script checks whether this system has libgmp.so.10 and if has
-# shows it to bootstrapper-compiler via populating LD_LIBRARY_PATH
-# (it actually exports function doing this)
-#
-# After bootstrapping resulting compiler will not depend on old libgmp
-# Newer ghc binaries must be built against newer gmp
-#
-# Blames should be directed to Sergei Trofimovich <slyfox@gentoo.org>
-
-# should be used as:
-# > inherit multilib
-# > ...
-# > # somewhere in src_unpack() { # as early as possible, right after unpacking source/binary
-# > source "${FILESDIR}/ghc-apply-gmp-hack" "$(get_libdir)"
-
-local libdir_name=$1
-# let's see if we are in affected system
-if has_version '>=dev-libs/gmp-5.0.1'; then
- 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
- if use binary; then
- eerror "You have requested precompiled binary installation, which is"
- eerror "built against 'libgmp.so.3'. You can create compatibility symlink"
- eerror "if you have '$libgmpso10' and wish to use installed binary:"
- eerror " # ln -s libgmp.so.10 '$libgmpso3'"
- die "libgmp.so.3 not found"
- else
- if [[ -e "$libgmpso10" ]]; then
- local fake_solib_dir=${S}/fake_solibs
- mkdir "$fake_solib_dir" || die "failed to make fake lib dir"
- elog "Enabling libgmp hack:"
- elog "| Making symlink: '$fake_solib_dir/libgmp.so.3' -> '$libgmpso10'"
- ln -s "$libgmpso10" "$fake_solib_dir/libgmp.so.3" || die "failed to make fake symlink"
- export LD_LIBRARY_PATH=$fake_solib_dir${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
- elog "| setting new LD_LIBRARY_PATH='$LD_LIBRARY_PATH'"
- else
- eerror "'$libgmpso3' and '$libgmpso10' are not found. Please, report the breakage."
- fi
- fi
- fi
-fi
diff --git a/dev-lang/ghc/ghc-6.12.3-r2.ebuild b/dev-lang/ghc/ghc-6.12.3-r2.ebuild
deleted file mode 100644
index cf09071523d0..000000000000
--- a/dev-lang/ghc/ghc-6.12.3-r2.ebuild
+++ /dev/null
@@ -1,579 +0,0 @@
-# Copyright 1999-2014 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-r2.ebuild,v 1.11 2014/09/07 06:29:23 slyfox Exp $
-
-# Brief explanation of the bootstrap logic:
-#
-# Previous ghc ebuilds have been split into two: ghc and ghc-bin,
-# where ghc-bin was primarily used for bootstrapping purposes.
-# From now on, these two ebuilds have been combined, with the
-# binary USE flag used to determine whether or not the pre-built
-# binary package should be emerged or whether ghc should be compiled
-# from source. If the latter, then the relevant ghc-bin for the
-# arch in question will be used in the working directory to compile
-# ghc from source.
-#
-# This solution has the advantage of allowing us to retain the one
-# ebuild for both packages, and thus phase out virtual/ghc.
-
-# Note to users of hardened gcc-3.x:
-#
-# If you emerge ghc with hardened gcc it should work fine (because we
-# turn off the hardened features that would otherwise break ghc).
-# However, emerging ghc while using a vanilla gcc and then switching to
-# hardened gcc (using gcc-config) will leave you with a broken ghc. To
-# fix it you would need to either switch back to vanilla gcc or re-emerge
-# ghc (or ghc-bin). Note that also if you are using hardened gcc-3.x and
-# you switch to gcc-4.x that this will also break ghc and you'll need to
-# re-emerge ghc (or ghc-bin). People using vanilla gcc can switch between
-# gcc-3.x and 4.x with no problems.
-
-EAPI="3"
-
-inherit base autotools bash-completion eutils flag-o-matic multilib toolchain-funcs ghc-package versionator pax-utils
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-arch_binaries=""
-
-arch_binaries="$arch_binaries alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-${PV}-alpha-haddock.tbz2 )"
-arch_binaries="$arch_binaries x86? ( mirror://gentoo/ghc-bin-${PV}-x86.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( mirror://gentoo/ghc-bin-${PV}-amd64.tbz2 )"
-arch_binaries="$arch_binaries ia64? ( http://code.haskell.org/~slyfox/ghc-ia64/ghc-bin-${PV}-ia64-haddock.tbz2 )"
-arch_binaries="$arch_binaries sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( mirror://gentoo/ghc-bin-${PV}-ppc64.tbz2 )"
-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 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
-IUSE="binary doc ghcbootstrap"
-
-RDEPEND="
- !dev-lang/ghc-bin
- !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
- sys-libs/ncurses[unicode]"
-# earlier versions than 2.4.2 of haddock only works with older ghc releases
-
-DEPEND="${RDEPEND}
- ghcbootstrap? ( doc? ( ~app-text/docbook-xml-dtd-4.2
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )"
-# In the ghcbootstrap case we rely on the developer having
-# >=ghc-5.04.3 on their $PATH already
-
-PDEPEND="!ghcbootstrap? ( || ( =app-admin/haskell-updater-1.2* =app-admin/haskell-updater-1.1* ) )"
-
-# use undocumented feature STRIP_MASK to fix this issue:
-# http://hackage.haskell.org/trac/ghc/ticket/3580
-STRIP_MASK="*/HSffi.o"
-
-use binary && QA_PREBUILT="*"
-
-append-ghc-cflags() {
- local flag compile assemble link
- for flag in $*; do
- case ${flag} in
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && GHC_CFLAGS="${GHC_CFLAGS} -optc${flag}"
- [[ ${assemble} ]] && GHC_CFLAGS="${GHC_CFLAGS} -opta${flag}"
- [[ ${link} ]] && GHC_CFLAGS="${GHC_CFLAGS} -optl${flag}";;
- esac
- done
-}
-
-ghc_setup_cflags() {
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_CFLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Debugging flags don't help either. You can't debug Haskell code
- # at the C source level and the mangler discards the debug info.
- -g*) ;;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags compile link -nopie
- gcc-specs-ssp && append-ghc-cflags compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # http://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags compile -G0
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it shoult point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- # and insert LD_LIBRARY_PATH entry to EPREFIX dir tree
- # TODO: add the same for darwin's CHOST and it's DYLD_
- local new_ldpath='LD_LIBRARY_PATH="'${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)'${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"\nexport LD_LIBRARY_PATH'
- sed -i -e '2i'"$new_ldpath" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- || die "Adding LD_LIBRARY_PATH for wrappers failed"
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages for"
- ewarn "use with the ghc ebuild's USE=\"binary\" feature."
- use binary && \
- die "USE=\"ghcbootstrap binary\" is not a valid combination."
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # 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() {
- [[ ${CHOST} != *-darwin* ]] && \
- source "${FILESDIR}/ghc-apply-gmp-hack" "$(get_libdir)"
-
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_CFLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_CFLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${P}/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- 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}|" \
- "${S}/ghc/ghc.wrapper"
-
- # Since GHC 6.12.2 the GHC wrappers store which GCC version GHC was
- # compiled with, by saving the path to it. The purpose is to make sure
- # that GHC will use the very same gcc version when it compiles haskell
- # sources, as the extra-gcc-opts files contains extra gcc options which
- # match only this GCC version.
- # However, this is not required in Gentoo, as only modern GCCs are used
- # (>4).
- # Instead, this causes trouble when for example ccache is used during
- # compilation, but we don't want the wrappers to point to ccache.
- # Due to the above, we simply remove GCC from the wrappers, which forces
- # GHC to use GCC from the users path, like previous GHC versions did.
-
- # Remove path to gcc
- sed -i -e '/pgmgcc/d' \
- "${S}/rules/shell-wrapper.mk"
-
- # Remove usage of the path to gcc
- sed -i -e 's/-pgmc "$pgmgcc"//' \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- 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"
-
- # prevent from wiping upper address bits used in cache lookup
- epatch "${FILESDIR}/ghc-6.12.3-ia64-storage-manager-fix.patch"
-
- # fixes build failure of adjustor code
- epatch "${FILESDIR}/ghc-6.12.3-alpha-use-libffi-for-foreign-import-wrapper.patch"
-
- # native adjustor (NA) code is broken: interactive darcs-2.4 coredumps on NA
- epatch "${FILESDIR}/ghc-6.12.3-ia64-use-libffi-for-foreign-import-wrapper.patch"
-
- # same with NA on ppc
- epatch "${FILESDIR}/ghc-6.12.3-ppc-use-libffi-for-foreign-import-wrapper.patch"
-
- # substitute outdated macros
- epatch "${FILESDIR}/ghc-6.12.3-autoconf-2.66-4252.patch"
-
- # ticket 2615, linker scripts
- # 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
- epatch "${FILESDIR}/ghc-6.12.3-ghciless-haddock-3558.patch"
-
- # This patch unbreaks ghci on GRSEC kernels hardened with
- # 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
- fi
-
- # disable bitrot bfd support, bug #522268
- sed -i -e 's/^AC_CHECK_LIB(bfd, bfd_init)$/dnl &/' configure.ac || die
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
-
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_CFLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_CFLAGS}" >> 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
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- sed -e "s|utils/haddock_dist_INSTALL_SHELL_WRAPPER = YES|utils/haddock_dist_INSTALL_SHELL_WRAPPER = NO|" \
- -i utils/haddock/ghc.mk
-
- # circumvent a very strange bug that seems related with ghc producing
- # too much output while being filtered through tee (e.g. due to
- # portage logging) reported as bug #111183
- echo "SRC_HC_OPTS+=-w" >> mk/build.mk
-
- # some arches do not support ELF parsing for ghci module loading
- # PPC64: never worked (should be easy to implement)
- # alpha: never worked
- if use alpha || use ppc64; then
- echo "GhcWithInterpreter=NO" >> mk/build.mk
- fi
-
- # we have to tell it to build unregisterised on some arches
- # ppc64: EvilMangler currently does not understand some TOCs
- # ia64: EvilMangler bitrot
- if use alpha || use ia64 || use ppc64; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- echo "SplitObjs=NO" >> mk/build.mk
- echo "GhcRTSWays := debug" >> mk/build.mk
- echo "GhcNotThreaded=YES" >> mk/build.mk
- fi
-
- # Have "ld -r --relax" problem with split-objs on sparc:
- if use sparc; then
- echo "SplitObjs=NO" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- econf || die "econf failed"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # LC_ALL needs to workaround ghc's ParseCmm failure on some (es) locales
- # bug #202212 / http://hackage.haskell.org/trac/ghc/ticket/4207
- LC_ALL=C emake -j1 all || die "make failed"
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- local insttarget="install"
-
- # We only built docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc; then
- if ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- fi
- fi
-
- emake -j1 ${insttarget} \
- DESTDIR="${D}" \
- || die "make ${insttarget} failed"
-
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- # so mark resulting binary
- pax-mark -m "${ED}/usr/$(get_libdir)/${P}/ghc"
-
- dodoc "${S}/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
-
- dobashcompletion "${FILESDIR}/ghc-bash-completion"
-
- fi
-
- # path to the package.cache
- PKGCACHE="${ED}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-
- bash-completion_pkg_postinst
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
diff --git a/dev-lang/ghc/ghc-7.0.4.ebuild b/dev-lang/ghc/ghc-7.0.4.ebuild
deleted file mode 100644
index 4e61efedd17a..000000000000
--- a/dev-lang/ghc/ghc-7.0.4.ebuild
+++ /dev/null
@@ -1,600 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.0.4.ebuild,v 1.10 2014/09/07 06:29:23 slyfox Exp $
-
-# Brief explanation of the bootstrap logic:
-#
-# Previous ghc ebuilds have been split into two: ghc and ghc-bin,
-# where ghc-bin was primarily used for bootstrapping purposes.
-# From now on, these two ebuilds have been combined, with the
-# binary USE flag used to determine whether or not the pre-built
-# binary package should be emerged or whether ghc should be compiled
-# from source. If the latter, then the relevant ghc-bin for the
-# arch in question will be used in the working directory to compile
-# ghc from source.
-#
-# This solution has the advantage of allowing us to retain the one
-# ebuild for both packages, and thus phase out virtual/ghc.
-
-# Note to users of hardened gcc-3.x:
-#
-# If you emerge ghc with hardened gcc it should work fine (because we
-# turn off the hardened features that would otherwise break ghc).
-# However, emerging ghc while using a vanilla gcc and then switching to
-# hardened gcc (using gcc-config) will leave you with a broken ghc. To
-# fix it you would need to either switch back to vanilla gcc or re-emerge
-# ghc (or ghc-bin). Note that also if you are using hardened gcc-3.x and
-# you switch to gcc-4.x that this will also break ghc and you'll need to
-# re-emerge ghc (or ghc-bin). People using vanilla gcc can switch between
-# gcc-3.x and 4.x with no problems.
-
-EAPI="3"
-
-inherit base autotools bash-completion eutils flag-o-matic multilib toolchain-funcs ghc-package versionator pax-utils
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-${PV}-alpha.tbz2 )"
-arch_binaries="$arch_binaries arm? ( http://code.haskell.org/~slyfox/ghc-arm/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( http://code.haskell.org/~slyfox/ghc-amd64/ghc-bin-${PV}-amd64.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( http://code.haskell.org/~slyfox/ghc-ia64/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-arch_binaries="$arch_binaries ppc? ( mirror://gentoo/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( http://code.haskell.org/~slyfox/ghc-ppc64/ghc-bin-${PV}-ppc64.tbz2 )"
-arch_binaries="$arch_binaries sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( http://code.haskell.org/~slyfox/ghc-x86/ghc-bin-${PV}-x86.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( http://code.haskell.org/~slyfox/ghc-x86-fbsd/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha)
- return 0
- ;;
- arm)
- ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- return 0
- ;;
- amd64)
- return 0
- ;;
- ppc64)
- return 0
- ;;
- sparc)
- return 0
- ;;
- x86)
- return 0
- ;;
- ppc)
- return 0
- ;;
- *)
- return 1
- ;;
- esac
-}
-
-SRC_URI="!binary? ( http://www.haskell.org/ghc/dist/${PV}/${P}-src.tar.bz2 )"
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-LICENSE="BSD"
-SLOT="0"
-# ghc on ia64 needs gcc to support -mcmodel=medium (or some dark hackery) to avoid TOC overflow
-KEYWORDS="~alpha ~amd64 -ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
-IUSE="doc ghcbootstrap llvm"
-IUSE+=" binary" # don't forget about me later!
-
-RDEPEND="
- !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-5
- !<dev-haskell/haddock-2.4.2
- sys-libs/ncurses[unicode]"
-# earlier versions than 2.4.2 of haddock only works with older ghc releases
-
-# force dependency on >=gmp-5, even if >=gmp-4.1 would be enough. this is due to
-# that we want the binaries to use the latest versioun available, and not to be
-# built against gmp-4
-
-DEPEND="${RDEPEND}
- ghcbootstrap? ( doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )"
-# In the ghcbootstrap case we rely on the developer having
-# >=ghc-5.04.3 on their $PATH already
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-PDEPEND="
- ${PDEPEND}
- dev-haskell/syb
- llvm? ( sys-devel/llvm )"
-
-use binary && QA_PREBUILT="*"
-
-append-ghc-cflags() {
- local flag compile assemble link
- for flag in $*; do
- case ${flag} in
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && GHC_FLAGS="${GHC_FLAGS} -optc${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${assemble} ]] && GHC_FLAGS="${GHC_FLAGS} -opta${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${link} ]] && GHC_FLAGS="${GHC_FLAGS} -optl${flag}" FILTERED_LDFLAGS="${FILTERED_LDFLAGS} ${flag}";;
- esac
- done
-}
-
-ghc_setup_cflags() {
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Debugging flags don't help either. You can't debug Haskell code
- # at the C source level and the mangler discards the debug info.
- -g*) ;;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- FILTERED_LDFLAGS=""
- for flag in ${LDFLAGS}; do
- case ${flag} in
- # Pass the canary. we don't quite respect LDFLAGS, but we have an excuse!
- "-Wl,--hash-style="*) append-ghc-cflags link ${flag};;
-
- # Ignore all other flags
- esac
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags compile link -nopie
- gcc-specs-ssp && append-ghc-cflags compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # http://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags compile -G0
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it shoult point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- # and insert LD_LIBRARY_PATH entry to EPREFIX dir tree
- # TODO: add the same for darwin's CHOST and it's DYLD_
- local new_ldpath='LD_LIBRARY_PATH="'${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)'${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"\nexport LD_LIBRARY_PATH'
- sed -i -e '2i'"$new_ldpath" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- || die "Adding LD_LIBRARY_PATH for wrappers failed"
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages for"
- ewarn "use with the ghc ebuild's USE=\"binary\" feature."
- use binary && \
- die "USE=\"ghcbootstrap binary\" is not a valid combination."
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # 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() {
- [[ ${CHOST} != *-darwin* ]] && \
- source "${FILESDIR}/ghc-apply-gmp-hack" "$(get_libdir)"
-
- ghc_setup_cflags
-
- if ! use ghcbootstrap; then
- # Modify the wrapper script from the binary tarball to use GHC_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${P}/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- 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_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}/ghc-7.0.2-CHOST.patch"
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-softfloat.patch"
-
- epatch "${FILESDIR}"/${PN}-7.0.4-darwin8.patch
- epatch "${FILESDIR}"/${PN}-6.12.3-mach-o-relocation-limit.patch
- epatch "${FILESDIR}"/${PN}-7.0.4-nxstack.patch
- epatch "${FILESDIR}/ghc-7.0.4-fix-ppc-linker.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
- fi
-
- # disable bitrot bfd support, bug #522268
- sed -i -e 's/^AC_CHECK_LIB(bfd, bfd_init)$/dnl &/' configure.ac || die
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
-
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${FILTERED_LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- # circumvent a very strange bug that seems related with ghc producing
- # too much output while being filtered through tee (e.g. due to
- # portage logging) reported as bug #111183
- echo "SRC_HC_OPTS+=-w" >> mk/build.mk
-
- # some arches do not support ELF parsing for ghci module loading
- # PPC64: never worked (should be easy to implement)
- # alpha: never worked
- # arm: unimplemented or never worked
- if use alpha || use ppc64 || use arm; then
- echo "GhcWithInterpreter=NO" >> mk/build.mk
- fi
-
- # we have to tell it to build unregisterised on some arches
- # ppc64: EvilMangler currently does not understand some TOCs
- # ia64: EvilMangler bitrot
- if use alpha || use ia64 || use ppc64; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- echo "SplitObjs=NO" >> mk/build.mk
- echo "GhcRTSWays := debug" >> mk/build.mk
- echo "GhcNotThreaded=YES" >> mk/build.mk
- fi
-
- # arm: no EvilMangler support, no NCG support
- if use arm; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- fi
-
- # Have "ld -r --relax" problem with split-objs on sparc:
- if use sparc; then
- echo "SplitObjs=NO" >> mk/build.mk
- fi
-
- if ! use llvm; then
- echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- # Since GHC 6.12.2 the GHC wrappers store which GCC version GHC was
- # compiled with, by saving the path to it. The purpose is to make sure
- # that GHC will use the very same gcc version when it compiles haskell
- # sources, as the extra-gcc-opts files contains extra gcc options which
- # match only this GCC version.
- # However, this is not required in Gentoo, as only modern GCCs are used
- # (>4).
- # Instead, this causes trouble when for example ccache is used during
- # compilation, but we don't want the wrappers to point to ccache.
- # Due to the above, we simply set GCC to be "gcc". When compiling ghc it
- # might point to ccache, once installed it will point to the users
- # regular gcc.
-
- econf --with-gcc=gcc || die "econf failed"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # unfortunately ghc-7.0 still fails under parallel load:
- # bug #326347 (and i think bug #373947)
- emake -j1 all || die "make failed"
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- local insttarget="install"
-
- # We only built docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc; then
- if ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- fi
- fi
-
- emake -j1 ${insttarget} \
- DESTDIR="${D}" \
- || die "make ${insttarget} failed"
-
- # remove wrapper and linker
- rm -f "${ED}"/usr/bin/haddock*
-
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- # so mark resulting binary
- pax-mark -m "${ED}/usr/$(get_libdir)/${P}/ghc"
-
- dodoc "${S}/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
-
- dobashcompletion "${FILESDIR}/ghc-bash-completion"
-
- fi
-
- # path to the package.cache
- PKGCACHE="${ED}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-
- bash-completion_pkg_postinst
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
diff --git a/dev-lang/ghc/ghc-7.4.1-r1.ebuild b/dev-lang/ghc/ghc-7.4.1-r1.ebuild
deleted file mode 100644
index 3c513599377c..000000000000
--- a/dev-lang/ghc/ghc-7.4.1-r1.ebuild
+++ /dev/null
@@ -1,603 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.4.1-r1.ebuild,v 1.5 2014/02/15 08:52:36 slyfox Exp $
-
-# Brief explanation of the bootstrap logic:
-#
-# Previous ghc ebuilds have been split into two: ghc and ghc-bin,
-# where ghc-bin was primarily used for bootstrapping purposes.
-# From now on, these two ebuilds have been combined, with the
-# binary USE flag used to determine whether or not the pre-built
-# binary package should be emerged or whether ghc should be compiled
-# from source. If the latter, then the relevant ghc-bin for the
-# arch in question will be used in the working directory to compile
-# ghc from source.
-#
-# This solution has the advantage of allowing us to retain the one
-# ebuild for both packages, and thus phase out virtual/ghc.
-
-# Note to users of hardened gcc-3.x:
-#
-# If you emerge ghc with hardened gcc it should work fine (because we
-# turn off the hardened features that would otherwise break ghc).
-# However, emerging ghc while using a vanilla gcc and then switching to
-# hardened gcc (using gcc-config) will leave you with a broken ghc. To
-# fix it you would need to either switch back to vanilla gcc or re-emerge
-# ghc (or ghc-bin). Note that also if you are using hardened gcc-3.x and
-# you switch to gcc-4.x that this will also break ghc and you'll need to
-# re-emerge ghc (or ghc-bin). People using vanilla gcc can switch between
-# gcc-3.x and 4.x with no problems.
-
-EAPI="4"
-
-inherit base autotools bash-completion-r1 eutils flag-o-matic multilib toolchain-funcs ghc-package versionator pax-utils
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( http://code.haskell.org/~slyfox/ghc-arm/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( http://code.haskell.org/~slyfox/ghc-amd64/ghc-bin-${PV}-amd64.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( http://code.haskell.org/~slyfox/ghc-ia64/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-arch_binaries="$arch_binaries ppc? ( http://code.haskell.org/~slyfox/ghc-ppc/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( http://code.haskell.org/~slyfox/ghc-ppc64/ghc-bin-${PV}-ppc64.tbz2 )"
-arch_binaries="$arch_binaries sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( http://code.haskell.org/~slyfox/ghc-x86/ghc-bin-${PV}-x86.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/7.4.1/ghc-7.4.1-i386-apple-darwin.tar.bz2 )"
-arch_binaries="$arch_binaries x64-macos? ( http://www.haskell.org/ghc/dist/7.4.1/ghc-7.4.1-x86_64-apple-darwin.tar.bz2 )"
-arch_binaries="$arch_binaries x86-solaris? ( http://www.haskell.org/ghc/dist/7.0.3/maeder/ghc-7.0.3-i386-unknown-solaris2.tar.bz2 )"
-# need 6.12.3 to bootstrap this
-#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 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ppc) return 0 ;;
- ppc64) return 0 ;;
- sparc) return 0 ;;
- x86) return 0 ;;
- x86-macos) return 0 ;;
- x64-macos) return 0 ;;
- x86-solaris) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-SRC_URI="!binary? ( http://www.haskell.org/ghc/dist/${PV}/${P}-src.tar.bz2 )"
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-LICENSE="BSD"
-SLOT="0"
-# ghc on ia64 needs gcc to support -mcmodel=medium (or some dark hackery) to avoid TOC overflow
-KEYWORDS="~alpha ~amd64 -ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
-IUSE="doc ghcbootstrap llvm"
-IUSE+=" binary" # don't forget about me later!
-
-RDEPEND="
- !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-5
- virtual/libffi
- !<dev-haskell/haddock-2.4.2
- sys-libs/ncurses[unicode]"
-# earlier versions than 2.4.2 of haddock only works with older ghc releases
-
-# force dependency on >=gmp-5, even if >=gmp-4.1 would be enough. this is due to
-# that we want the binaries to use the latest versioun available, and not to be
-# built against gmp-4
-
-DEPEND="${RDEPEND}
- ghcbootstrap? ( >=dev-haskell/alex-2.3
- >=dev-haskell/happy-1.18
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )"
-# In the ghcbootstrap case we rely on the developer having
-# >=ghc-5.04.3 on their $PATH already
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-PDEPEND="
- ${PDEPEND}
- llvm? ( sys-devel/llvm )"
-
-use binary && QA_PREBUILT="*"
-
-append-ghc-cflags() {
- local flag compile assemble link
- for flag in $*; do
- case ${flag} in
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && GHC_FLAGS="${GHC_FLAGS} -optc${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${assemble} ]] && GHC_FLAGS="${GHC_FLAGS} -opta${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${link} ]] && GHC_FLAGS="${GHC_FLAGS} -optl${flag}" FILTERED_LDFLAGS="${FILTERED_LDFLAGS} ${flag}";;
- esac
- done
-}
-
-ghc_setup_cflags() {
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Debugging flags don't help either. You can't debug Haskell code
- # at the C source level and the mangler discards the debug info.
- -g*) ;;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- FILTERED_LDFLAGS=""
- for flag in ${LDFLAGS}; do
- case ${flag} in
- # Pass the canary. we don't quite respect LDFLAGS, but we have an excuse!
- "-Wl,--hash-style="*) append-ghc-cflags link ${flag};;
-
- # Ignore all other flags
- esac
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags compile link -nopie
- gcc-specs-ssp && append-ghc-cflags compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # http://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags compile -G0
-
- # Unfortunately driver/split/ghc-split.lprl is dumb
- # enough to preserve stack marking for each split object
- # and it flags stack marking violation:
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__1.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__2.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__3.o
- case $($(tc-getAS) -v 2>&1 </dev/null) in
- *"GNU Binutils"*) # GNU ld
- append-ghc-cflags compile assemble -Wa,--noexecstack
- ;;
- esac
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it shoult point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- # and insert LD_LIBRARY_PATH entry to EPREFIX dir tree
- # TODO: add the same for darwin's CHOST and it's DYLD_
- local new_ldpath='LD_LIBRARY_PATH="'${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)'${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"\nexport LD_LIBRARY_PATH'
- sed -i -e '2i'"$new_ldpath" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- || die "Adding LD_LIBRARY_PATH for wrappers failed"
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages for"
- ewarn "use with the ghc ebuild's USE=\"binary\" feature."
- use binary && \
- die "USE=\"ghcbootstrap binary\" is not a valid combination."
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # 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() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${P}/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- 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-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /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
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.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_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
- epatch "${FILESDIR}"/${PN}-7.4-rc2-macos-prefix-respect-gcc.patch
- epatch "${FILESDIR}"/${PN}-7.4.1-darwin-CHOST.patch
- epatch "${FILESDIR}"/${PN}-7.2.1-freebsd-CHOST.patch
-
- # one mode external depend with unstable ABI be careful to stash it
- epatch "${FILESDIR}"/${PN}-7.4.2-system-libffi.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/]:' utils/haddock/doc/configure.ac || die
- fi
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
-
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${FILTERED_LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- # circumvent a very strange bug that seems related with ghc producing
- # too much output while being filtered through tee (e.g. due to
- # portage logging) reported as bug #111183
- echo "SRC_HC_OPTS+=-w" >> mk/build.mk
-
- # some arches do not support ELF parsing for ghci module loading
- # PPC64: never worked (should be easy to implement)
- # alpha: never worked
- # arm: unimplemented or never worked
- if use alpha || use ppc64 || use arm; then
- echo "GhcWithInterpreter=NO" >> mk/build.mk
- fi
-
- # we have to tell it to build unregisterised on some arches
- # ppc64: EvilMangler currently does not understand some TOCs
- # ia64: EvilMangler bitrot
- if use alpha || use ia64 || use ppc64; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- echo "SplitObjs=NO" >> mk/build.mk
- echo "GhcRTSWays := debug" >> mk/build.mk
- echo "GhcNotThreaded=YES" >> mk/build.mk
- fi
-
- # arm: no EvilMangler support, no NCG support
- if use arm; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- fi
-
- # Have "ld -r --relax" problem with split-objs on sparc:
- if use sparc; then
- echo "SplitObjs=NO" >> mk/build.mk
- fi
-
- if ! use llvm; then
- echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- # Since GHC 6.12.2 the GHC wrappers store which GCC version GHC was
- # compiled with, by saving the path to it. The purpose is to make sure
- # that GHC will use the very same gcc version when it compiles haskell
- # sources, as the extra-gcc-opts files contains extra gcc options which
- # match only this GCC version.
- # However, this is not required in Gentoo, as only modern GCCs are used
- # (>4).
- # Instead, this causes trouble when for example ccache is used during
- # compilation, but we don't want the wrappers to point to ccache.
- # Due to the above, we simply set GCC to be "gcc". When compiling ghc it
- # might point to ccache, once installed it will point to the users
- # regular gcc.
-
- econf --with-gcc=gcc || die "econf failed"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- limit_jobs() {
- if [[ -n ${I_DEMAND_MY_CORES_LOADED} ]]; then
- ewarn "You have requested parallel build which is known to break."
- ewarn "Please report all breakages upstream."
- return
- fi
- echo $@
- }
- # ghc massively parallel make: #409631, #409873
- # but let users screw it by setting 'I_DEMAND_MY_CORES_LOADED'
- emake $(limit_jobs -j1) all
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- local insttarget="install"
-
- # We only built docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc; then
- if ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- fi
- fi
-
- emake -j1 ${insttarget} \
- DESTDIR="${D}" \
- || die "make ${insttarget} failed"
-
- # remove wrapper and linker
- rm -f "${ED}"/usr/bin/haddock*
-
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- # so mark resulting binary
- pax-mark -m "${ED}/usr/$(get_libdir)/${P}/ghc"
-
- dodoc "${S}/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
-
- dobashcomp "${FILESDIR}/ghc-bash-completion"
-
- fi
-
- # path to the package.cache
- PKGCACHE="${ED}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
diff --git a/dev-lang/ghc/ghc-7.4.1.ebuild b/dev-lang/ghc/ghc-7.4.1.ebuild
deleted file mode 100644
index b0ad6ec2a6c6..000000000000
--- a/dev-lang/ghc/ghc-7.4.1.ebuild
+++ /dev/null
@@ -1,590 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.4.1.ebuild,v 1.6 2014/02/15 08:52:36 slyfox Exp $
-
-# Brief explanation of the bootstrap logic:
-#
-# Previous ghc ebuilds have been split into two: ghc and ghc-bin,
-# where ghc-bin was primarily used for bootstrapping purposes.
-# From now on, these two ebuilds have been combined, with the
-# binary USE flag used to determine whether or not the pre-built
-# binary package should be emerged or whether ghc should be compiled
-# from source. If the latter, then the relevant ghc-bin for the
-# arch in question will be used in the working directory to compile
-# ghc from source.
-#
-# This solution has the advantage of allowing us to retain the one
-# ebuild for both packages, and thus phase out virtual/ghc.
-
-# Note to users of hardened gcc-3.x:
-#
-# If you emerge ghc with hardened gcc it should work fine (because we
-# turn off the hardened features that would otherwise break ghc).
-# However, emerging ghc while using a vanilla gcc and then switching to
-# hardened gcc (using gcc-config) will leave you with a broken ghc. To
-# fix it you would need to either switch back to vanilla gcc or re-emerge
-# ghc (or ghc-bin). Note that also if you are using hardened gcc-3.x and
-# you switch to gcc-4.x that this will also break ghc and you'll need to
-# re-emerge ghc (or ghc-bin). People using vanilla gcc can switch between
-# gcc-3.x and 4.x with no problems.
-
-EAPI="4"
-
-inherit base autotools bash-completion-r1 eutils flag-o-matic multilib toolchain-funcs ghc-package versionator pax-utils
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( http://code.haskell.org/~slyfox/ghc-arm/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( http://code.haskell.org/~slyfox/ghc-amd64/ghc-bin-${PV}-amd64.tbz2 )"
-#arch_binaries="$arch_binaries ia64? ( http://code.haskell.org/~slyfox/ghc-ia64/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
-arch_binaries="$arch_binaries ppc? ( http://code.haskell.org/~slyfox/ghc-ppc/ghc-bin-${PV}-ppc.tbz2 )"
-arch_binaries="$arch_binaries ppc64? ( http://code.haskell.org/~slyfox/ghc-ppc64/ghc-bin-${PV}-ppc64.tbz2 )"
-arch_binaries="$arch_binaries sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( http://code.haskell.org/~slyfox/ghc-x86/ghc-bin-${PV}-x86.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( http://code.haskell.org/~slyfox/ghc-x86-fbsd/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ppc) return 0 ;;
- ppc64) return 0 ;;
- sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-SRC_URI="!binary? ( http://www.haskell.org/ghc/dist/${PV}/${P}-src.tar.bz2 )"
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-LICENSE="BSD"
-SLOT="0"
-# ghc on ia64 needs gcc to support -mcmodel=medium (or some dark hackery) to avoid TOC overflow
-KEYWORDS="~alpha ~amd64 -ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
-IUSE="doc ghcbootstrap llvm"
-IUSE+=" binary" # don't forget about me later!
-
-RDEPEND="
- !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-5
- !<dev-haskell/haddock-2.4.2
- sys-libs/ncurses[unicode]"
-# earlier versions than 2.4.2 of haddock only works with older ghc releases
-
-# force dependency on >=gmp-5, even if >=gmp-4.1 would be enough. this is due to
-# that we want the binaries to use the latest versioun available, and not to be
-# built against gmp-4
-
-DEPEND="${RDEPEND}
- ghcbootstrap? ( >=dev-haskell/alex-2.3
- >=dev-haskell/happy-1.18
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )"
-# In the ghcbootstrap case we rely on the developer having
-# >=ghc-5.04.3 on their $PATH already
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-PDEPEND="
- ${PDEPEND}
- llvm? ( sys-devel/llvm )"
-
-use binary && QA_PREBUILT="*"
-
-append-ghc-cflags() {
- local flag compile assemble link
- for flag in $*; do
- case ${flag} in
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && GHC_FLAGS="${GHC_FLAGS} -optc${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${assemble} ]] && GHC_FLAGS="${GHC_FLAGS} -opta${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${link} ]] && GHC_FLAGS="${GHC_FLAGS} -optl${flag}" FILTERED_LDFLAGS="${FILTERED_LDFLAGS} ${flag}";;
- esac
- done
-}
-
-ghc_setup_cflags() {
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Debugging flags don't help either. You can't debug Haskell code
- # at the C source level and the mangler discards the debug info.
- -g*) ;;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- FILTERED_LDFLAGS=""
- for flag in ${LDFLAGS}; do
- case ${flag} in
- # Pass the canary. we don't quite respect LDFLAGS, but we have an excuse!
- "-Wl,--hash-style="*) append-ghc-cflags link ${flag};;
-
- # Ignore all other flags
- esac
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags compile link -nopie
- gcc-specs-ssp && append-ghc-cflags compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # http://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags compile -G0
-
- # Unfortunately driver/split/ghc-split.lprl is dumb
- # enough to preserve stack marking for each split object
- # and it flags stack marking violation:
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__1.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__2.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__3.o
- case $($(tc-getAS) -v 2>&1 </dev/null) in
- *"GNU Binutils"*) # GNU ld
- append-ghc-cflags compile assemble -Wa,--noexecstack
- ;;
- esac
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it shoult point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- # and insert LD_LIBRARY_PATH entry to EPREFIX dir tree
- # TODO: add the same for darwin's CHOST and it's DYLD_
- local new_ldpath='LD_LIBRARY_PATH="'${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)'${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"\nexport LD_LIBRARY_PATH'
- sed -i -e '2i'"$new_ldpath" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- || die "Adding LD_LIBRARY_PATH for wrappers failed"
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages for"
- ewarn "use with the ghc ebuild's USE=\"binary\" feature."
- use binary && \
- die "USE=\"ghcbootstrap binary\" is not a valid combination."
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # 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() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap; then
- # Modify the wrapper script from the binary tarball to use GHC_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${P}/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- 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_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
-
- epatch "${FILESDIR}"/${PN}-7.0.4-darwin8.patch
- # failed to apply. FIXME
- #epatch "${FILESDIR}"/${PN}-6.12.3-mach-o-relocation-limit.patch
-
- epatch "${FILESDIR}"/${PN}-7.4-rc2-macos-prefix-respect-gcc.patch
- epatch "${FILESDIR}"/${PN}-7.2.1-freebsd-CHOST.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/]:' utils/haddock/doc/configure.ac || die
- fi
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- if ! use binary; then
-
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${FILTERED_LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- # circumvent a very strange bug that seems related with ghc producing
- # too much output while being filtered through tee (e.g. due to
- # portage logging) reported as bug #111183
- echo "SRC_HC_OPTS+=-w" >> mk/build.mk
-
- # some arches do not support ELF parsing for ghci module loading
- # PPC64: never worked (should be easy to implement)
- # alpha: never worked
- # arm: unimplemented or never worked
- if use alpha || use ppc64 || use arm; then
- echo "GhcWithInterpreter=NO" >> mk/build.mk
- fi
-
- # we have to tell it to build unregisterised on some arches
- # ppc64: EvilMangler currently does not understand some TOCs
- # ia64: EvilMangler bitrot
- if use alpha || use ia64 || use ppc64; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- echo "SplitObjs=NO" >> mk/build.mk
- echo "GhcRTSWays := debug" >> mk/build.mk
- echo "GhcNotThreaded=YES" >> mk/build.mk
- fi
-
- # arm: no EvilMangler support, no NCG support
- if use arm; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- fi
-
- # Have "ld -r --relax" problem with split-objs on sparc:
- if use sparc; then
- echo "SplitObjs=NO" >> mk/build.mk
- fi
-
- if ! use llvm; then
- echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- # Since GHC 6.12.2 the GHC wrappers store which GCC version GHC was
- # compiled with, by saving the path to it. The purpose is to make sure
- # that GHC will use the very same gcc version when it compiles haskell
- # sources, as the extra-gcc-opts files contains extra gcc options which
- # match only this GCC version.
- # However, this is not required in Gentoo, as only modern GCCs are used
- # (>4).
- # Instead, this causes trouble when for example ccache is used during
- # compilation, but we don't want the wrappers to point to ccache.
- # Due to the above, we simply set GCC to be "gcc". When compiling ghc it
- # might point to ccache, once installed it will point to the users
- # regular gcc.
-
- econf --with-gcc=gcc || die "econf failed"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- # ghc massively parallel make: #409631, #409873
- emake -j1 all || die "make failed"
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- local insttarget="install"
-
- # We only built docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc; then
- if ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- fi
- fi
-
- emake -j1 ${insttarget} \
- DESTDIR="${D}" \
- || die "make ${insttarget} failed"
-
- # remove wrapper and linker
- rm -f "${ED}"/usr/bin/haddock*
-
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- # so mark resulting binary
- pax-mark -m "${ED}/usr/$(get_libdir)/${P}/ghc"
-
- dodoc "${S}/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
-
- dobashcomp "${FILESDIR}/ghc-bash-completion"
-
- fi
-
- # path to the package.cache
- PKGCACHE="${ED}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
diff --git a/dev-lang/ghc/ghc-7.6.2.ebuild b/dev-lang/ghc/ghc-7.6.2.ebuild
deleted file mode 100644
index 2eb594a74dd2..000000000000
--- a/dev-lang/ghc/ghc-7.6.2.ebuild
+++ /dev/null
@@ -1,713 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.6.2.ebuild,v 1.4 2014/02/15 08:52:36 slyfox Exp $
-
-# Brief explanation of the bootstrap logic:
-#
-# Previous ghc ebuilds have been split into two: ghc and ghc-bin,
-# where ghc-bin was primarily used for bootstrapping purposes.
-# From now on, these two ebuilds have been combined, with the
-# binary USE flag used to determine whether or not the pre-built
-# binary package should be emerged or whether ghc should be compiled
-# from source. If the latter, then the relevant ghc-bin for the
-# arch in question will be used in the working directory to compile
-# ghc from source.
-#
-# This solution has the advantage of allowing us to retain the one
-# ebuild for both packages, and thus phase out virtual/ghc.
-
-# Note to users of hardened gcc-3.x:
-#
-# If you emerge ghc with hardened gcc it should work fine (because we
-# turn off the hardened features that would otherwise break ghc).
-# However, emerging ghc while using a vanilla gcc and then switching to
-# hardened gcc (using gcc-config) will leave you with a broken ghc. To
-# fix it you would need to either switch back to vanilla gcc or re-emerge
-# ghc (or ghc-bin). Note that also if you are using hardened gcc-3.x and
-# you switch to gcc-4.x that this will also break ghc and you'll need to
-# re-emerge ghc (or ghc-bin). People using vanilla gcc can switch between
-# gcc-3.x and 4.x with no problems.
-
-EAPI="5"
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-#
-# 'CTARGET' definition and 'is_crosscompile' are taken from 'toolchain.eclass'
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit base autotools bash-completion-r1 eutils flag-o-matic multilib toolchain-funcs ghc-package versionator pax-utils
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-#arch_binaries="$arch_binaries alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( http://code.haskell.org/~slyfox/ghc-arm/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( http://code.haskell.org/~slyfox/ghc-amd64/ghc-bin-${PV}-amd64.tbz2 )"
-arch_binaries="$arch_binaries ia64? ( http://code.haskell.org/~slyfox/ghc-ia64/ghc-bin-${PV}-ia64.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( http://code.haskell.org/~slyfox/ghc-ppc/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( http://code.haskell.org/~slyfox/ghc-ppc64/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( http://code.haskell.org/~slyfox/ghc-x86/ghc-bin-${PV}-x86.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( http://code.haskell.org/~slyfox/ghc-x86-fbsd/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- #alpha) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-SRC_URI="!binary? ( http://www.haskell.org/ghc/dist/${PV}/${P}-src.tar.bz2 )"
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-LICENSE="BSD"
-SLOT="0/${PV}"
-# ghc on ia64 needs gcc to support -mcmodel=medium (or some dark hackery) to avoid TOC overflow
-KEYWORDS="~amd64 ~ia64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp llvm"
-IUSE+=" binary" # don't forget about me later!
-IUSE+=" elibc_glibc" # system stuff
-
-RDEPEND="
- !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-5
- virtual/libffi
- !<dev-haskell/haddock-2.4.2
- sys-libs/ncurses[unicode]"
-# earlier versions than 2.4.2 of haddock only works with older ghc releases
-
-# force dependency on >=gmp-5, even if >=gmp-4.1 would be enough. this is due to
-# that we want the binaries to use the latest versioun available, and not to be
-# built against gmp-4
-
-# similar for glibc. we have bootstrapped binaries against glibc-2.14
-DEPEND="${RDEPEND}
- ghcbootstrap? ( >=dev-haskell/alex-2.3
- >=dev-haskell/happy-1.18
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )
- !ghcbootstrap? ( !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.15 ) ) )"
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-PDEPEND="
- ${PDEPEND}
- llvm? ( sys-devel/llvm )"
-
-# ia64 fails to return from STG GMP primitives (stage2 always SIGSEGVs)
-REQUIRED_USE="ia64? ( !gmp )"
-
-use binary && QA_PREBUILT="*"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-append-ghc-cflags() {
- local flag compile assemble link
- for flag in $*; do
- case ${flag} in
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && GHC_FLAGS="${GHC_FLAGS} -optc${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${assemble} ]] && GHC_FLAGS="${GHC_FLAGS} -opta${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${link} ]] && GHC_FLAGS="${GHC_FLAGS} -optl${flag}" FILTERED_LDFLAGS="${FILTERED_LDFLAGS} ${flag}";;
- esac
- done
-}
-
-ghc_setup_cflags() {
- if is_crosscompile; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- FILTERED_LDFLAGS=""
- for flag in ${LDFLAGS}; do
- case ${flag} in
- # Pass the canary. we don't quite respect LDFLAGS, but we have an excuse!
- "-Wl,--hash-style="*) append-ghc-cflags link ${flag};;
-
- # Ignore all other flags
- esac
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags compile link -nopie
- gcc-specs-ssp && append-ghc-cflags compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # http://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags compile -G0 -Os
-
- # Unfortunately driver/split/ghc-split.lprl is dumb
- # enough to preserve stack marking for each split object
- # and it flags stack marking violation:
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__1.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__2.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__3.o
- case $($(tc-getAS) -v 2>&1 </dev/null) in
- *"GNU Binutils"*) # GNU ld
- append-ghc-cflags compile assemble -Wa,--noexecstack
- ;;
- esac
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it shoult point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- # and insert LD_LIBRARY_PATH entry to EPREFIX dir tree
- # TODO: add the same for darwin's CHOST and it's DYLD_
- local new_ldpath='LD_LIBRARY_PATH="'${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)'${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"\nexport LD_LIBRARY_PATH'
- sed -i -e '2i'"$new_ldpath" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- || die "Adding LD_LIBRARY_PATH for wrappers failed"
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages for"
- ewarn "use with the ghc ebuild's USE=\"binary\" feature."
- use binary && \
- die "USE=\"ghcbootstrap binary\" is not a valid combination."
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # 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() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${P}/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- 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-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /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
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.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_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
-
- # epatch "${FILESDIR}"/${PN}-7.0.4-darwin8.patch
- # failed to apply. FIXME
- #epatch "${FILESDIR}"/${PN}-6.12.3-mach-o-relocation-limit.patch
-
- # epatch "${FILESDIR}"/${PN}-7.4-rc2-macos-prefix-respect-gcc.patch
- # epatch "${FILESDIR}"/${PN}-7.2.1-freebsd-CHOST.patch
-
- we_want_libffi_workaround() {
- use ghcmakebinary && return 1
-
- # pick only registerised arches
- # http://bugs.gentoo.org/463814
- use amd64 && return 0
- use x86 && return 0
- return 1
- }
- # one mode external depend with unstable ABI be careful to stash it
- # avoid external libffi runtime when we build binaries
- we_want_libffi_workaround && epatch "${FILESDIR}"/${PN}-7.5.20120505-system-libffi.patch
-
- epatch "${FILESDIR}"/${PN}-7.4.1-ticket-7339-fix-unaligned-unreg.patch
- epatch "${FILESDIR}"/${PN}-7.6.2-integer-simple-div-mod.patch
-
- if use prefix; then
- # Make configure find docbook-xsl-stylesheets from Prefix
- sed -e '/^FP_DIR_DOCBOOK_XSL/s:\[.*\]:['"${EPREFIX}"'/usr/share/sgml/docbook/xsl-stylesheets/]:' \
- -i utils/haddock/doc/configure.ac || die
- fi
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- GHC_PV=${PV} # overrided in live ebuilds
-
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${FILTERED_LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- if is_crosscompile; then
- # TODO this is a workaround for this build error with the live ebuild with haddock:
- # make[1]: *** No rule to make target `compiler/stage2/build/Module.hi',
- # needed by `utils/haddock/dist/build/Main.o'. Stop.
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- else
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- fi
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- # circumvent a very strange bug that seems related with ghc producing
- # too much output while being filtered through tee (e.g. due to
- # portage logging) reported as bug #111183
- echo "SRC_HC_OPTS+=-w" >> mk/build.mk
-
- # some arches do not support ELF parsing for ghci module loading
- # PPC64: never worked (should be easy to implement)
- # alpha: never worked
- # arm: http://hackage.haskell.org/trac/ghc/changeset/27302c9094909e04eb73f200d52d5e9370c34a8a
- if use alpha || use ppc64; then
- echo "GhcWithInterpreter=NO" >> mk/build.mk
- fi
-
- # we have to tell it to build unregisterised on some arches
- # ppc64: EvilMangler currently does not understand some TOCs
- # ia64: EvilMangler bitrot
- # set GHC_IS_UNREG if you like to build slow unregisterised
- # host compiler. Handy if you plan to user resulting
- # host compiler as a booting compiler for crosscompiler
- # which can work only in unregisterised mode.
- if use alpha || use ia64 || use ppc64 || [[ -n ${GHC_IS_UNREG} ]]; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- echo "SplitObjs=NO" >> mk/build.mk
- echo "GhcRTSWays := debug" >> mk/build.mk
- echo "GhcNotThreaded=YES" >> mk/build.mk
- fi
-
- # arm: no EvilMangler support, no NCG support
- if use arm; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- fi
-
- # Have "ld -r --relax" problem with split-objs on sparc:
- if use sparc; then
- echo "SplitObjs=NO" >> mk/build.mk
- fi
-
- if ! use llvm; then
- echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- if use gmp; then
- echo "INTEGER_LIBRARY=integer-gmp" >> mk/build.mk
- else
- echo "INTEGER_LIBRARY=integer-simple" >> mk/build.mk
- fi
-
- # Since GHC 6.12.2 the GHC wrappers store which GCC version GHC was
- # compiled with, by saving the path to it. The purpose is to make sure
- # that GHC will use the very same gcc version when it compiles haskell
- # sources, as the extra-gcc-opts files contains extra gcc options which
- # match only this GCC version.
- # However, this is not required in Gentoo, as only modern GCCs are used
- # (>4).
- # Instead, this causes trouble when for example ccache is used during
- # compilation, but we don't want the wrappers to point to ccache.
- # Due to the above, we simply set GCC to be "gcc". When compiling ghc it
- # might point to ccache, once installed it will point to the users
- # regular gcc.
-
- local econf_args=()
-
- is_crosscompile || econf_args+=--with-gcc=${CHOST}-gcc
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot \
- || die "econf failed"
-
- [[ ${PV} == *9999* ]] && GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_TPF="$(grep 'S\[\"TargetPlatformFull\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- #limit_jobs() {
- # if [[ -n ${I_DEMAND_MY_CORES_LOADED} ]]; then
- # ewarn "You have requested parallel build which is known to break."
- # ewarn "Please report all breakages upstream."
- # return
- # fi
- # echo $@
- #}
- # ghc massively parallel make: #409631, #409873
- # but let users screw it by setting 'I_DEMAND_MY_CORES_LOADED'
- #emake $(limit_jobs -j1) all
- # ^ above seems to be fixed.
- emake all
-
- if is_crosscompile; then
- # runghc does not work for a stage1 compiler, we can build it anyway
- # so it will print the error message: not built for interactive use
- pushd "${S}/utils/runghc" || die "Could not cd to utils/runghc"
- if [ ! -f Setup.hs ]; then
- echo 'import Distribution.Simple; main = defaultMainWithHooks defaultUserHooks' \
- > Setup.hs || die "failed to create default Setup.hs"
- fi
- ghc -o setup --make Setup.hs || die "setup build failed"
- ./setup configure || die "runghc configure failed"
- sed -e "s@VERSION@\"${GHC_PV}\"@" -i runghc.hs
- ./setup build || die "runghc build failed"
- popd
- fi
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- local insttarget="install"
-
- # We only built docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc && ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- else
- dodoc "${S}/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
- fi
-
- emake -j1 ${insttarget} \
- DESTDIR="${D}" \
- || die "make ${insttarget} failed"
-
- # remove wrapper and linker
- rm -f "${ED}"/usr/bin/haddock*
-
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- # so mark resulting binary
- pax-mark -m "${ED}/usr/$(get_libdir)/${P}/ghc"
-
- if [[ ! -f "${S}/VERSION" ]]; then
- echo "${GHC_PV}" > "${S}/VERSION" \
- || die "Could not create file ${S}/VERSION"
- fi
- dobashcomp "${FILESDIR}/ghc-bash-completion"
-
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/${PN}-${GHC_PV}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
- if is_crosscompile; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "GHC built as a cross compiler. The interpreter, ghci and runghc, do"
- ewarn "not work for a cross compiler."
- ewarn "For the ghci error: \"<command line>: not built for interactive use\" see:"
- ewarn "http://www.haskell.org/haskellwiki/GHC:FAQ#When_I_try_to_start_ghci_.28probably_one_I_compiled_myself.29_it_says_ghc-5.02:_not_built_for_interactive_use"
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
diff --git a/dev-lang/ghc/ghc-7.6.3-r1.ebuild b/dev-lang/ghc/ghc-7.6.3-r1.ebuild
index bb6db572da32..58bdc7a60680 100644
--- a/dev-lang/ghc/ghc-7.6.3-r1.ebuild
+++ b/dev-lang/ghc/ghc-7.6.3-r1.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.6.3-r1.ebuild,v 1.14 2014/08/01 20:33:54 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.6.3-r1.ebuild,v 1.15 2015/01/02 23:50:56 slyfox Exp $
# Brief explanation of the bootstrap logic:
#
@@ -417,7 +417,7 @@ src_prepare() {
cd "${S}" # otherwise epatch will break
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
+ epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
# epatch "${FILESDIR}"/${PN}-7.0.4-darwin8.patch
# failed to apply. FIXME
diff --git a/dev-lang/ghc/ghc-7.6.3.ebuild b/dev-lang/ghc/ghc-7.6.3.ebuild
deleted file mode 100644
index c753567d095e..000000000000
--- a/dev-lang/ghc/ghc-7.6.3.ebuild
+++ /dev/null
@@ -1,737 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.6.3.ebuild,v 1.4 2014/02/15 08:52:36 slyfox Exp $
-
-# Brief explanation of the bootstrap logic:
-#
-# Previous ghc ebuilds have been split into two: ghc and ghc-bin,
-# where ghc-bin was primarily used for bootstrapping purposes.
-# From now on, these two ebuilds have been combined, with the
-# binary USE flag used to determine whether or not the pre-built
-# binary package should be emerged or whether ghc should be compiled
-# from source. If the latter, then the relevant ghc-bin for the
-# arch in question will be used in the working directory to compile
-# ghc from source.
-#
-# This solution has the advantage of allowing us to retain the one
-# ebuild for both packages, and thus phase out virtual/ghc.
-
-# Note to users of hardened gcc-3.x:
-#
-# If you emerge ghc with hardened gcc it should work fine (because we
-# turn off the hardened features that would otherwise break ghc).
-# However, emerging ghc while using a vanilla gcc and then switching to
-# hardened gcc (using gcc-config) will leave you with a broken ghc. To
-# fix it you would need to either switch back to vanilla gcc or re-emerge
-# ghc (or ghc-bin). Note that also if you are using hardened gcc-3.x and
-# you switch to gcc-4.x that this will also break ghc and you'll need to
-# re-emerge ghc (or ghc-bin). People using vanilla gcc can switch between
-# gcc-3.x and 4.x with no problems.
-
-EAPI="5"
-
-# to make make a crosscompiler use crossdev and symlink ghc tree into
-# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
-#
-# 'CTARGET' definition and 'is_crosscompile' are taken from 'toolchain.eclass'
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-inherit base autotools bash-completion-r1 eutils flag-o-matic multilib toolchain-funcs ghc-package versionator pax-utils
-
-DESCRIPTION="The Glasgow Haskell Compiler"
-HOMEPAGE="http://www.haskell.org/ghc/"
-
-# we don't have any binaries yet
-arch_binaries=""
-
-# sorted!
-arch_binaries="$arch_binaries alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-${PV}-alpha.tbz2 )"
-#arch_binaries="$arch_binaries arm? ( http://code.haskell.org/~slyfox/ghc-arm/ghc-bin-${PV}-arm.tbz2 )"
-arch_binaries="$arch_binaries amd64? ( http://code.haskell.org/~slyfox/ghc-amd64/ghc-bin-${PV}-amd64.tbz2 )"
-arch_binaries="$arch_binaries ia64? ( http://code.haskell.org/~slyfox/ghc-ia64/ghc-bin-${PV}-ia64.tbz2 )"
-#arch_binaries="$arch_binaries ppc? ( http://code.haskell.org/~slyfox/ghc-ppc/ghc-bin-${PV}-ppc.tbz2 )"
-#arch_binaries="$arch_binaries ppc64? ( http://code.haskell.org/~slyfox/ghc-ppc64/ghc-bin-${PV}-ppc64.tbz2 )"
-#arch_binaries="$arch_binaries sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-${PV}-sparc.tbz2 )"
-arch_binaries="$arch_binaries x86? ( http://code.haskell.org/~slyfox/ghc-x86/ghc-bin-${PV}-x86.tbz2 )"
-
-# various ports:
-#arch_binaries="$arch_binaries x86-fbsd? ( http://code.haskell.org/~slyfox/ghc-x86-fbsd/ghc-bin-${PV}-x86-fbsd.tbz2 )"
-
-# 0 - yet
-yet_binary() {
- case "${ARCH}" in
- alpha) return 0 ;;
- #arm)
- # ewarn "ARM binary is built on armv5tel-eabi toolchain. Use with caution."
- # return 0
- #;;
- amd64) return 0 ;;
- ia64) return 0 ;;
- #ppc) return 0 ;;
- #ppc64) return 0 ;;
- #sparc) return 0 ;;
- x86) return 0 ;;
- *) return 1 ;;
- esac
-}
-
-SRC_URI="!binary? ( http://www.haskell.org/ghc/dist/${PV}/${P}-src.tar.bz2 )"
-[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
-IUSE="doc ghcbootstrap ghcmakebinary +gmp llvm"
-IUSE+=" binary" # don't forget about me later!
-IUSE+=" elibc_glibc" # system stuff
-
-RDEPEND="
- !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-5
- virtual/libffi
- !<dev-haskell/haddock-2.4.2
- sys-libs/ncurses[unicode]"
-# earlier versions than 2.4.2 of haddock only works with older ghc releases
-
-# force dependency on >=gmp-5, even if >=gmp-4.1 would be enough. this is due to
-# that we want the binaries to use the latest versioun available, and not to be
-# built against gmp-4
-
-# similar for glibc. we have bootstrapped binaries against glibc-2.14
-DEPEND="${RDEPEND}
- ghcbootstrap? ( >=dev-haskell/alex-2.3
- >=dev-haskell/happy-1.18
- doc? ( app-text/docbook-xml-dtd:4.2
- app-text/docbook-xml-dtd:4.5
- app-text/docbook-xsl-stylesheets
- >=dev-libs/libxslt-1.1.2 ) )
- !ghcbootstrap? ( !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.15 ) ) )"
-
-PDEPEND="!ghcbootstrap? ( =app-admin/haskell-updater-1.2* )"
-PDEPEND="
- ${PDEPEND}
- llvm? ( sys-devel/llvm )"
-
-# ia64 fails to return from STG GMP primitives (stage2 always SIGSEGVs)
-REQUIRED_USE="ia64? ( !gmp )"
-
-use binary && QA_PREBUILT="*"
-
-is_crosscompile() {
- [[ ${CHOST} != ${CTARGET} ]]
-}
-
-append-ghc-cflags() {
- local flag compile assemble link
- for flag in $*; do
- case ${flag} in
- compile) compile="yes";;
- assemble) assemble="yes";;
- link) link="yes";;
- *)
- [[ ${compile} ]] && GHC_FLAGS="${GHC_FLAGS} -optc${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${assemble} ]] && GHC_FLAGS="${GHC_FLAGS} -opta${flag}" CFLAGS="${CFLAGS} ${flag}"
- [[ ${link} ]] && GHC_FLAGS="${GHC_FLAGS} -optl${flag}" FILTERED_LDFLAGS="${FILTERED_LDFLAGS} ${flag}";;
- esac
- done
-}
-
-ghc_setup_cflags() {
- if is_crosscompile; then
- export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
- export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
- einfo "Crosscompiling mode:"
- einfo " CHOST: ${CHOST}"
- einfo " CTARGET: ${CTARGET}"
- einfo " CFLAGS: ${CFLAGS}"
- einfo " LDFLAGS: ${LDFLAGS}"
- return
- fi
- # We need to be very careful with the CFLAGS we ask ghc to pass through to
- # gcc. There are plenty of flags which will make gcc produce output that
- # breaks ghc in various ways. The main ones we want to pass through are
- # -mcpu / -march flags. These are important for arches like alpha & sparc.
- # We also use these CFLAGS for building the C parts of ghc, ie the rts.
- strip-flags
- strip-unsupported-flags
-
- # Cmm can't parse line numbers #482086
- replace-flags -ggdb[3-9] -ggdb2
-
- GHC_FLAGS=""
- for flag in ${CFLAGS}; do
- case ${flag} in
-
- # Ignore extra optimisation (ghc passes -O to gcc anyway)
- # -O2 and above break on too many systems
- -O*) ;;
-
- # Arch and ABI flags are what we're really after
- -m*) append-ghc-cflags compile assemble ${flag};;
-
- # Sometimes it's handy to see backtrace of RTS
- # to get an idea what happens there
- -g*) append-ghc-cflags compile ${flag};;
-
- # Ignore all other flags, including all -f* flags
- esac
- done
-
- FILTERED_LDFLAGS=""
- for flag in ${LDFLAGS}; do
- case ${flag} in
- # Pass the canary. we don't quite respect LDFLAGS, but we have an excuse!
- "-Wl,--hash-style="*) append-ghc-cflags link ${flag};;
-
- # Ignore all other flags
- esac
- done
-
- # hardened-gcc needs to be disabled, because the mangler doesn't accept
- # its output.
- gcc-specs-pie && append-ghc-cflags compile link -nopie
- gcc-specs-ssp && append-ghc-cflags compile -fno-stack-protector
-
- # prevent from failind building unregisterised ghc:
- # http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
- use ppc64 && append-ghc-cflags compile -mminimal-toc
- # fix the similar issue as ppc64 TOC on ia64. ia64 has limited size of small data
- # currently ghc fails to build haddock
- # http://osdir.com/ml/gnu.binutils.bugs/2004-10/msg00050.html
- use ia64 && append-ghc-cflags compile -G0 -Os
-
- # Unfortunately driver/split/ghc-split.lprl is dumb
- # enough to preserve stack marking for each split object
- # and it flags stack marking violation:
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__1.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__2.o
- # * !WX --- --- usr/lib64/ghc-7.4.1/base-4.5.0.0/libHSbase-4.5.0.0.a:Fingerprint__3.o
- case $($(tc-getAS) -v 2>&1 </dev/null) in
- *"GNU Binutils"*) # GNU ld
- append-ghc-cflags compile assemble -Wa,--noexecstack
- ;;
- esac
-}
-
-# substitutes string $1 to $2 in files $3 $4 ...
-relocate_path() {
- local from=$1
- local to=$2
- shift 2
- local file=
- for file in "$@"
- do
- sed -i -e "s|$from|$to|g" \
- "$file" || die "path relocation failed for '$file'"
- done
-}
-
-# changes hardcoded ghc paths and updates package index
-# $1 - new absolute root path
-relocate_ghc() {
- local to=$1
-
- # libdir for prebuilt binary and for current system may mismatch
- # It does for prefix installation for example: bug #476998
- local bin_ghc_prefix=${WORKDIR}/usr
- local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
- local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
-
- # backup original script to use it later after relocation
- local gp_back="${T}/ghc-pkg-${PV}-orig"
- cp "${WORKDIR}/usr/bin/ghc-pkg-${PV}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
-
- if [[ ${bin_libdir} != $(get_libdir) ]]; then
- einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
- # moving the dir itself is not strictly needed
- # but then USE=binary would result in installing
- # in '${bin_libdir}'
- mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
-
- relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${PV}" \
- "$gp_back" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
- fi
-
- # Relocate from /usr to ${EPREFIX}/usr
- relocate_path "/usr" "${to}/usr" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${PV}" \
- "${WORKDIR}/usr/$(get_libdir)/${P}/package.conf.d/"*
-
- # this one we will use to regenerate cache
- # so it should point to current tree location
- relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
-
- if use prefix; then
- # and insert LD_LIBRARY_PATH entry to EPREFIX dir tree
- # TODO: add the same for darwin's CHOST and it's DYLD_
- local new_ldpath='LD_LIBRARY_PATH="'${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)'${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"\nexport LD_LIBRARY_PATH'
- sed -i -e '2i'"$new_ldpath" \
- "${WORKDIR}/usr/bin/ghc-${PV}" \
- "${WORKDIR}/usr/bin/ghci-${PV}" \
- "${WORKDIR}/usr/bin/ghc-pkg-${PV}" \
- "${WORKDIR}/usr/bin/hsc2hs" \
- "${WORKDIR}/usr/bin/runghc-${PV}" \
- "$gp_back" \
- || die "Adding LD_LIBRARY_PATH for wrappers failed"
- fi
-
- # regenerate the binary package cache
- "$gp_back" recache || die "failed to update cache after relocation"
- rm "$gp_back"
-}
-
-pkg_setup() {
- if use ghcbootstrap; then
- ewarn "You requested ghc bootstrapping, this is usually only used"
- ewarn "by Gentoo developers to make binary .tbz2 packages for"
- ewarn "use with the ghc ebuild's USE=\"binary\" feature."
- use binary && \
- die "USE=\"ghcbootstrap binary\" is not a valid combination."
- [[ -z $(type -P ghc) ]] && \
- die "Could not find a ghc to bootstrap with."
- else
- if ! yet_binary; then
- eerror "Please try emerging with USE=ghcbootstrap and report build"
- eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
- die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
- fi
- fi
-}
-
-src_unpack() {
- # Create the ${S} dir if we're using the binary version
- use binary && mkdir "${S}"
-
- # 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() {
- ghc_setup_cflags
-
- if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
- # Modify the wrapper script from the binary tarball to use GHC_FLAGS.
- # See bug #313635.
- sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_FLAGS}|" \
- "${WORKDIR}/usr/bin/ghc-${PV}"
-
- # allow hardened users use vanilla binary to bootstrap ghc
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${P}/ghc"
- fi
-
- if use binary; then
- if use prefix; then
- relocate_ghc "${EPREFIX}"
- fi
-
- # Move unpacked files to the expected place
- mv "${WORKDIR}/usr" "${S}"
- else
- if ! use ghcbootstrap; then
- case ${CHOST} in
- *-darwin* | *-solaris*)
- # UPDATE ME for ghc-7
- 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-7.0.3-i386-unknown-solaris2.tar.bz2
- use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
- use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
- popd > /dev/null
-
- pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /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
- local readline_framework=GNUreadline.framework/GNUreadline
- local gmp_framework=/opt/local/lib/libgmp.10.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_FLAGS}|" \
- "${S}/ghc/ghc.wrapper"
-
- cd "${S}" # otherwise epatch will break
-
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
-
- # epatch "${FILESDIR}"/${PN}-7.0.4-darwin8.patch
- # failed to apply. FIXME
- #epatch "${FILESDIR}"/${PN}-6.12.3-mach-o-relocation-limit.patch
-
- # epatch "${FILESDIR}"/${PN}-7.4-rc2-macos-prefix-respect-gcc.patch
- # epatch "${FILESDIR}"/${PN}-7.2.1-freebsd-CHOST.patch
-
- we_want_libffi_workaround() {
- use ghcmakebinary && return 1
-
- # pick only registerised arches
- # http://bugs.gentoo.org/463814
- use amd64 && return 0
- use x86 && return 0
- return 1
- }
- # one mode external depend with unstable ABI be careful to stash it
- # avoid external libffi runtime when we build binaries
- we_want_libffi_workaround && epatch "${FILESDIR}"/${PN}-7.5.20120505-system-libffi.patch
-
- epatch "${FILESDIR}"/${PN}-7.4.1-ticket-7339-fix-unaligned-unreg.patch
- epatch "${FILESDIR}"/${PN}-7.6.2-integer-simple-div-mod.patch
-
- if use prefix; then
- # Make configure find docbook-xsl-stylesheets from Prefix
- sed -e '/^FP_DIR_DOCBOOK_XSL/s:\[.*\]:['"${EPREFIX}"'/usr/share/sgml/docbook/xsl-stylesheets/]:' \
- -i utils/haddock/doc/configure.ac || die
- fi
-
- # as we have changed the build system
- eautoreconf
- fi
-}
-
-src_configure() {
- GHC_PV=${PV} # overrided in live ebuilds
-
- if ! use binary; then
- # initialize build.mk
- echo '# Gentoo changes' > mk/build.mk
-
- # Put docs into the right place, ie /usr/share/doc/ghc-${PV}
- echo "docdir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
- echo "htmldir = ${EPREFIX}/usr/share/doc/${P}" >> mk/build.mk
-
- # We also need to use the GHC_FLAGS flags when building ghc itself
- echo "SRC_HC_OPTS+=${GHC_FLAGS}" >> mk/build.mk
- echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
- echo "SRC_LD_OPTS+=${FILTERED_LDFLAGS}" >> mk/build.mk
-
- # We can't depend on haddock except when bootstrapping when we
- # must build docs and include them into the binary .tbz2 package
- # app-text/dblatex is not in portage, can not build PDF or PS
- if use ghcbootstrap && use doc; then
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = YES" >> mk/build.mk
- if is_crosscompile; then
- # TODO this is a workaround for this build error with the live ebuild with haddock:
- # make[1]: *** No rule to make target `compiler/stage2/build/Module.hi',
- # needed by `utils/haddock/dist/build/Main.o'. Stop.
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- else
- echo "HADDOCK_DOCS = YES" >> mk/build.mk
- fi
- else
- echo "BUILD_DOCBOOK_PDF = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_PS = NO" >> mk/build.mk
- echo "BUILD_DOCBOOK_HTML = NO" >> mk/build.mk
- echo "HADDOCK_DOCS = NO" >> mk/build.mk
- fi
-
- # circumvent a very strange bug that seems related with ghc producing
- # too much output while being filtered through tee (e.g. due to
- # portage logging) reported as bug #111183
- echo "SRC_HC_OPTS+=-w" >> mk/build.mk
-
- # some arches do not support ELF parsing for ghci module loading
- # PPC64: never worked (should be easy to implement)
- # alpha: never worked
- # arm: http://hackage.haskell.org/trac/ghc/changeset/27302c9094909e04eb73f200d52d5e9370c34a8a
- if use alpha || use ppc64; then
- echo "GhcWithInterpreter=NO" >> mk/build.mk
- fi
-
- # we have to tell it to build unregisterised on some arches
- # ppc64: EvilMangler currently does not understand some TOCs
- # ia64: EvilMangler bitrot
- # set GHC_IS_UNREG if you like to build slow unregisterised
- # host compiler. Handy if you plan to user resulting
- # host compiler as a booting compiler for crosscompiler
- # which can work only in unregisterised mode.
- if use alpha || use ia64 || use ppc64 || [[ -n ${GHC_IS_UNREG} ]]; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- echo "SplitObjs=NO" >> mk/build.mk
- echo "GhcRTSWays := debug" >> mk/build.mk
- echo "GhcNotThreaded=YES" >> mk/build.mk
- fi
-
- # arm: no EvilMangler support, no NCG support
- if use arm; then
- echo "GhcUnregisterised=YES" >> mk/build.mk
- echo "GhcWithNativeCodeGen=NO" >> mk/build.mk
- fi
-
- # Have "ld -r --relax" problem with split-objs on sparc:
- if use sparc; then
- echo "SplitObjs=NO" >> mk/build.mk
- fi
-
- if ! use llvm; then
- echo "GhcWithLlvmCodeGen=NO" >> mk/build.mk
- fi
-
- # allows overriding build flavours for libraries:
- # v - vanilla (static libs)
- # p - profiled
- # dyn - shared libraries
- # example: GHC_LIBRARY_WAYS="v dyn"
- if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
- echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
- fi
-
- # Get ghc from the unpacked binary .tbz2
- # except when bootstrapping we just pick ghc up off the path
- if ! use ghcbootstrap; then
- export PATH="${WORKDIR}/usr/bin:${PATH}"
- fi
-
- if use gmp; then
- echo "INTEGER_LIBRARY=integer-gmp" >> mk/build.mk
- else
- echo "INTEGER_LIBRARY=integer-simple" >> mk/build.mk
- fi
-
- # Since GHC 6.12.2 the GHC wrappers store which GCC version GHC was
- # compiled with, by saving the path to it. The purpose is to make sure
- # that GHC will use the very same gcc version when it compiles haskell
- # sources, as the extra-gcc-opts files contains extra gcc options which
- # match only this GCC version.
- # However, this is not required in Gentoo, as only modern GCCs are used
- # (>4).
- # Instead, this causes trouble when for example ccache is used during
- # compilation, but we don't want the wrappers to point to ccache.
- # Due to the above, we simply set GCC to be "gcc". When compiling ghc it
- # might point to ccache, once installed it will point to the users
- # regular gcc.
-
- local econf_args=()
-
- is_crosscompile || econf_args+=--with-gcc=${CHOST}-gcc
-
- econf ${econf_args[@]} --enable-bootstrap-with-devel-snapshot \
- || die "econf failed"
-
- [[ ${PV} == *9999* ]] && GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- GHC_TPF="$(grep 'S\[\"TargetPlatformFull\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
- fi # ! use binary
-}
-
-src_compile() {
- if ! use binary; then
- #limit_jobs() {
- # if [[ -n ${I_DEMAND_MY_CORES_LOADED} ]]; then
- # ewarn "You have requested parallel build which is known to break."
- # ewarn "Please report all breakages upstream."
- # return
- # fi
- # echo $@
- #}
- # ghc massively parallel make: #409631, #409873
- # but let users screw it by setting 'I_DEMAND_MY_CORES_LOADED'
- #emake $(limit_jobs -j1) all
- # ^ above seems to be fixed.
- emake all V=1
-
- if is_crosscompile; then
- # runghc does not work for a stage1 compiler, we can build it anyway
- # so it will print the error message: not built for interactive use
- pushd "${S}/utils/runghc" || die "Could not cd to utils/runghc"
- if [ ! -f Setup.hs ]; then
- echo 'import Distribution.Simple; main = defaultMainWithHooks defaultUserHooks' \
- > Setup.hs || die "failed to create default Setup.hs"
- fi
- ghc -o setup --make Setup.hs || die "setup build failed"
- ./setup configure || die "runghc configure failed"
- sed -e "s@VERSION@\"${GHC_PV}\"@" -i runghc.hs
- ./setup build || die "runghc build failed"
- popd
- fi
- fi # ! use binary
-}
-
-src_install() {
- if use binary; then
- use prefix && mkdir -p "${ED}"
- mv "${S}/usr" "${ED}"
-
- # Remove the docs if not requested
- if ! use doc; then
- rm -rf "${ED}/usr/share/doc/${P}/*/" \
- "${ED}/usr/share/doc/${P}/*.html" \
- || die "could not remove docs (P vs PF revision mismatch?)"
- fi
- else
- local insttarget="install"
-
- # We only built docs if we were bootstrapping, otherwise
- # we copy them out of the unpacked binary .tbz2
- if use doc && ! use ghcbootstrap; then
- mkdir -p "${ED}/usr/share/doc"
- mv "${WORKDIR}/usr/share/doc/${P}" "${ED}/usr/share/doc" \
- || die "failed to copy docs"
- else
- dodoc "${S}/README" "${S}/ANNOUNCE" "${S}/LICENSE" "${S}/VERSION"
- fi
-
- emake -j1 ${insttarget} \
- DESTDIR="${D}" \
- || die "make ${insttarget} failed"
-
- # remove wrapper and linker
- rm -f "${ED}"/usr/bin/haddock*
-
- # ghci uses mmap with rwx protection at it implements dynamic
- # linking on it's own (bug #299709)
- # so mark resulting binary
- pax-mark -m "${ED}/usr/$(get_libdir)/${P}/ghc"
-
- if [[ ! -f "${S}/VERSION" ]]; then
- echo "${GHC_PV}" > "${S}/VERSION" \
- || die "Could not create file ${S}/VERSION"
- fi
- dobashcomp "${FILESDIR}/ghc-bash-completion"
-
- fi
-
- # path to the package.cache
- local package_confdir="${ED}/usr/$(get_libdir)/${PN}-${GHC_PV}/package.conf.d"
- PKGCACHE="${package_confdir}"/package.cache
- # copy the package.conf.d, including timestamp, save it so we can help
- # users that have a broken package.conf.d
- cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
-
- # copy the package.conf, including timestamp, save it so we later can put it
- # back before uninstalling, or when upgrading.
- cp -p "${PKGCACHE}"{,.shipped} \
- || die "failed to copy package.conf.d/package.cache"
-}
-
-pkg_preinst() {
- # have we got an earlier version of ghc installed?
- if has_version "<${CATEGORY}/${PF}"; then
- haskell_updater_warn="1"
- fi
-}
-
-pkg_postinst() {
- ghc-reregister
-
- # path to the package.cache
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
-
- # give the cache a new timestamp, it must be as recent as
- # the package.conf.d directory.
- touch "${PKGCACHE}"
-
- if [[ "${haskell_updater_warn}" == "1" ]]; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "You have just upgraded from an older version of GHC."
- ewarn "You may have to run"
- ewarn " 'haskell-updater --upgrade'"
- ewarn "to rebuild all ghc-based Haskell libraries."
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
- if is_crosscompile; then
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- ewarn "GHC built as a cross compiler. The interpreter, ghci and runghc, do"
- ewarn "not work for a cross compiler."
- ewarn "For the ghci error: \"<command line>: not built for interactive use\" see:"
- ewarn "http://www.haskell.org/haskellwiki/GHC:FAQ#When_I_try_to_start_ghci_.28probably_one_I_compiled_myself.29_it_says_ghc-5.02:_not_built_for_interactive_use"
- ewarn
- ewarn "\e[1;31m************************************************************************\e[0m"
- ewarn
- fi
-}
-
-pkg_prerm() {
- # Be very careful here... Call order when upgrading is (according to PMS):
- # * src_install for new package
- # * pkg_preinst for new package
- # * pkg_postinst for new package
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # so you'll actually be touching the new packages files, not the one you
- # uninstall, due to that or installation directory ${P} will be the same for
- # both packages.
-
- # Call order for reinstalling is (according to PMS):
- # * src_install
- # * pkg_preinst
- # * pkg_prerm for the package being replaced
- # * pkg_postrm for the package being replaced
- # * pkg_postinst
-
- # Overwrite the modified package.cache with a copy of the
- # original one, so that it will be removed during uninstall.
-
- PKGCACHE="${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/package.cache"
- rm -rf "${PKGCACHE}"
-
- cp -p "${PKGCACHE}"{.shipped,}
-}
diff --git a/dev-lang/ghc/ghc-7.8.3.ebuild b/dev-lang/ghc/ghc-7.8.3.ebuild
index 4166a885ffef..11fb5b94efd8 100644
--- a/dev-lang/ghc/ghc-7.8.3.ebuild
+++ b/dev-lang/ghc/ghc-7.8.3.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.8.3.ebuild,v 1.10 2014/09/05 10:40:45 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.8.3.ebuild,v 1.11 2015/01/02 23:50:56 slyfox Exp $
EAPI=5
@@ -390,7 +390,7 @@ src_prepare() {
cd "${S}" # otherwise epatch will break
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
+ epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
epatch "${FILESDIR}"/${PN}-7.8.1_rc1-libbfd.patch
diff --git a/dev-lang/ghc/ghc-7.8.4.ebuild b/dev-lang/ghc/ghc-7.8.4.ebuild
index b681da74a2ff..181762b617e6 100644
--- a/dev-lang/ghc/ghc-7.8.4.ebuild
+++ b/dev-lang/ghc/ghc-7.8.4.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.8.4.ebuild,v 1.3 2014/12/26 23:35:44 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-7.8.4.ebuild,v 1.4 2015/01/02 23:50:56 slyfox Exp $
EAPI=5
@@ -390,7 +390,7 @@ src_prepare() {
cd "${S}" # otherwise epatch will break
- epatch "${FILESDIR}/ghc-7.0.4-CHOST-prefix.patch"
+ epatch "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
epatch "${FILESDIR}"/${PN}-7.8.1_rc1-libbfd.patch