summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatoro <matoro@users.noreply.github.com>2022-08-24 13:11:45 -0400
committerSam James <sam@gentoo.org>2022-08-31 22:26:10 +0100
commit4f2b75c28da601e734f44f93381b88b59f0233ca (patch)
tree6cfdaaa5ce77129318db77ca1e5870e882711769 /dev-lang/ghc
parentapp-admin/haskell-updater: keyword 1.3.2-r1 for ~arm64 (diff)
downloadgentoo-4f2b75c28da601e734f44f93381b88b59f0233ca.tar.gz
gentoo-4f2b75c28da601e734f44f93381b88b59f0233ca.tar.bz2
gentoo-4f2b75c28da601e734f44f93381b88b59f0233ca.zip
dev-lang/ghc: keyword 9.0.2 for ~arm64
Thanks-to: Marcus Comstedt <marcus@mc.pp.se> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-lang/ghc')
-rw-r--r--dev-lang/ghc/Manifest1
-rw-r--r--dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch26
-rw-r--r--dev-lang/ghc/ghc-9.0.2.ebuild40
-rw-r--r--dev-lang/ghc/metadata.xml1
4 files changed, 62 insertions, 6 deletions
diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest
index 370504e5c02c..51c0e4466214 100644
--- a/dev-lang/ghc/Manifest
+++ b/dev-lang/ghc/Manifest
@@ -4,6 +4,7 @@ DIST ghc-9.0.2-src.tar.xz 27270396 BLAKE2B 0a73d910d3ef11161f895849025fe37ce2319
DIST ghc-9.0.2-testsuite.tar.xz 2403564 BLAKE2B 0e7f6fefb9c972f94073aca8b15147913ffa8d3cd3ff7fc63ef7e20b4efd8b443cf21f12e1ab0f5044790f6d8af6cf7788bda85a21b2f356ddface86eb896670 SHA512 b2375500ae837d74af8085d099899b5a7a589c59bdcc033ca0bd6e00f33c4f8d90b481e0c7c3de113e607fcfafdfe8edde4713e6d242b2d4ee87df2eb960c9c7
DIST ghc-bin-8.10.6-i686-pc-linux-gnu.tbz2 124324289 BLAKE2B afb34984872b35fdedbdedeb8756cc7c33e5b943dba57dd86910b076d483bb643265d0ab0027784dec5dc489eabd65b5ab17474f25fb2ce657925aa0efaa9033 SHA512 4be13e6dba298d12a4d49ae4633eec83cfaaaf22b5f8cfca5f5952aa294ae52fb3601490beed3bda5a7f7b6a5bd81e0ecc9fc39e8df836cc8fd377a0d0b783a0
DIST ghc-bin-8.10.6-x86_64-pc-linux-gnu.tbz2 122871118 BLAKE2B 527b36abf60390c91f91bc650ee25484d39d377739da87b5b6fd1a752705c1f3bc0ce0c68644657c9a7c1fc9a3b858b9dd7d84b25eab1a89125fccb6eb1f6250 SHA512 42b7fae339e82a6078fae8920efea8d0992e4774ea66b100e22dd9df168be57d8bce52558b8501c3c567c40776389d94bde3f17d26d63535140ce26ac16c27e1
+DIST ghc-bin-9.0.2-aarch64-unknown-linux-gnu.tar.gz 304621314 BLAKE2B d38b8571d41b5703da6b29f43664293761865166a7e3ab6b9c4b039f1af15faa4aa2013a32eb00059d6e595984895762eadff7b62141157d2dea6eb9b035138d SHA512 94e0e00329a18b494b509b3f8190cf6fed2399a2ac2d2d96fdfd90bf5dbeb8db68b6759f719ad85f8873961b0e983ff0006ce0bf109e96462169cbd9fa7b6784
DIST ghc-bin-9.0.2-i686-pc-linux-gnu.tbz2 123509908 BLAKE2B 45614984803a7bfa266f99d4adb4b5f2ab7b9e5e89c6ecd501296fc99a1d96e798ccb9c832f8dcb15fff9725beb918a7b63e62ff13f59b6506a2ef17930c45d2 SHA512 e0b7f4474c16f0763a2f787027fbdfeb3125b48c987fa1196bc189fefad9f0bfa2806da62af46d61ca911f5275b578076e2b326acf39e0894a8daa9deda0843a
DIST ghc-bin-9.0.2-powerpc64-unknown-linux-gnu.tar.gz 235636284 BLAKE2B 878ac300cca5d2cbc5cb21dbb347da755b4027cbf63ec77464740854fa8010569de5e03acef67cd877da13665c906b2fd04e24e226e9eb39b57ba979093c732b SHA512 28f096e965abdac9cc370c882639f10285b9073ba5332f7af215eccff948e41c01c3d6bb3bc8e3b4e809e12867a95b49f82dd76e0090b974088f75ab9d1bc199
DIST ghc-bin-9.0.2-powerpc64le-unknown-linux-gnu.tar.gz 275226316 BLAKE2B 10ade2359432b0ede7431ee543f0ff47f4b203465d81719da579ad63ca467359eb9fcf7336a12feb6ff75a480f349576ff8ea1b4ebe1094fff228ae4fd00d6e0 SHA512 64b4c84d149358b8d3a6cb29a6d3a75af11e7b14e6d910c9789c9949262e4ed2a17f8a0d1e5dd297121957061fe2395d6f43acae6b4ab28851e3cd414cd9c89c
diff --git a/dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch b/dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch
new file mode 100644
index 000000000000..835eb0374847
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch
@@ -0,0 +1,26 @@
+https://salsa.debian.org/haskell-team/DHG_packages/-/commit/b16997ae9270c8f88b7f8548e5cb6fdf93a07c43
+
+From 78db231ffdf8385662812781c1d09c630cfad313 Mon Sep 17 00:00:00 2001
+From: Cheng Shao <astrohavoc@gmail.com>
+Date: Thu, 27 Jan 2022 12:12:14 +0000
+Subject: [PATCH] configure: bump LlvmMaxVersion to 14
+
+LLVM 13.0.0 is released in Oct 2021, and latest head validates against
+LLVM 13 just fine if LlvmMaxVersion is bumped.
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e8a95726a35..71879adeb04 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -681,7 +681,7 @@ AC_SUBST(InstallNameToolCmd)
+ # versions of LLVM simultaneously, but that stopped working around
+ # 3.5/3.6 release of LLVM.
+ LlvmMinVersion=9 # inclusive
+-LlvmMaxVersion=13 # not inclusive
++LlvmMaxVersion=14 # not inclusive
+ AC_SUBST([LlvmMinVersion])
+ AC_SUBST([LlvmMaxVersion])
+ sUPPORTED_LLVM_VERSION_MIN=$(echo \($LlvmMinVersion\) | sed 's/\./,/')
diff --git a/dev-lang/ghc/ghc-9.0.2.ebuild b/dev-lang/ghc/ghc-9.0.2.ebuild
index e0cd53611f2c..d3bdecd30539 100644
--- a/dev-lang/ghc/ghc-9.0.2.ebuild
+++ b/dev-lang/ghc/ghc-9.0.2.ebuild
@@ -17,7 +17,7 @@ PYTHON_COMPAT=( python3_{8..10} )
inherit python-any-r1
inherit autotools bash-completion-r1 flag-o-matic ghc-package
inherit multiprocessing pax-utils toolchain-funcs prefix
-inherit check-reqs
+inherit check-reqs llvm
DESCRIPTION="The Glasgow Haskell Compiler"
HOMEPAGE="https://www.haskell.org/ghc/"
@@ -28,7 +28,7 @@ BIN_PV=${PV}
# sorted!
#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
-#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
+arch_binaries="$arch_binaries arm64? ( https://github.com/matoro/ghc/releases/download/${PV}/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tar.gz )"
arch_binaries="$arch_binaries amd64? ( https://eidetic.codes/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
@@ -46,7 +46,7 @@ arch_binaries="$arch_binaries x86? ( https://eidetic.codes/ghc-bin-${PV}-i686-pc
yet_binary() {
case "${ARCH}" in
#alpha) return 0 ;;
- #arm64) return 0 ;;
+ arm64) return 0 ;;
#arm) return 0 ;;
amd64) return 0 ;;
#ia64) return 0 ;;
@@ -76,11 +76,12 @@ BUMP_LIBRARIES=(
LICENSE="BSD"
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-IUSE="big-endian +doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="big-endian +doc elfutils ghcbootstrap ghcmakebinary +gmp llvm numa profile test"
IUSE+=" binary"
RESTRICT="!test? ( test )"
+LLVM_MAX_SLOT="13"
RDEPEND="
>=dev-lang/perl-5.6.1
dev-libs/gmp:0=
@@ -88,6 +89,16 @@ RDEPEND="
elfutils? ( dev-libs/elfutils )
!ghcmakebinary? ( dev-libs/libffi:= )
numa? ( sys-process/numactl )
+ llvm? (
+ <sys-devel/llvm-$(("${LLVM_MAX_SLOT}" + 1)):=
+ || (
+ sys-devel/llvm:9
+ sys-devel/llvm:10
+ sys-devel/llvm:11
+ sys-devel/llvm:12
+ sys-devel/llvm:13
+ )
+ )
"
# This set of dependencies is needed to run
@@ -356,6 +367,15 @@ ghc-check-reqs() {
"$@"
}
+llvmize() {
+ [[ -z "${1}" ]] && return
+ ( find "${1}" -type f \
+ | file -if- \
+ | grep "text/x-shellscript" \
+ | awk -F: '{print $1}' \
+ | xargs sed -i "s#^exec #PATH=\"$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin:\${PATH}\" exec #") || die
+}
+
pkg_pretend() {
ghc-check-reqs check-reqs_pkg_pretend
}
@@ -385,6 +405,8 @@ pkg_setup() {
if needs_python; then
python-any-r1_pkg_setup
fi
+
+ llvm_pkg_setup
}
src_unpack() {
@@ -420,6 +442,8 @@ src_prepare() {
pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
fi
+ use llvm && llvmize "${WORKDIR}/usr/bin"
+
# binpkg may have been built with FEATURES=splitdebug
if [[ -d "${WORKDIR}/usr/lib/debug" ]] ; then
rm -rf "${WORKDIR}/usr/lib/debug" || die
@@ -514,6 +538,7 @@ src_prepare() {
use test && eapply "${FILESDIR}/${PN}-9.0.2-fix-tests-python310.patch"
eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
eapply "${FILESDIR}"/${PN}-9.0.2-disable-unboxed-arrays.patch
+ eapply "${FILESDIR}"/${PN}-9.0.2-llvm-13.patch
# mingw32 target
pushd "${S}/libraries/Win32"
@@ -661,7 +686,8 @@ src_configure() {
econf ${econf_args[@]} \
--enable-bootstrap-with-devel-snapshot \
$(use_enable elfutils dwarf-unwind) \
- $(use_enable numa)
+ $(use_enable numa) \
+ --disable-unregisterised # all targets are registerised for now
if [[ ${PV} == *9999* ]]; then
GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
@@ -718,6 +744,8 @@ src_install() {
# '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
emake -j1 install DESTDIR="${D}"
+ use llvm && llvmize "${ED}/usr/bin"
+
# Skip for cross-targets as they all share target location:
# /usr/share/doc/ghc-9999/
if ! is_crosscompile; then
diff --git a/dev-lang/ghc/metadata.xml b/dev-lang/ghc/metadata.xml
index eaaa78bf4cf7..8e188c0a7af4 100644
--- a/dev-lang/ghc/metadata.xml
+++ b/dev-lang/ghc/metadata.xml
@@ -11,6 +11,7 @@
<flag name="ghcbootstrap">Internal: Bootstrap GHC from an existing GHC installation.</flag>
<flag name="ghcmakebinary">Internal: Build binary friendly for redistribution.</flag>
<flag name="gmp">Use <pkg>dev-libs/gmp</pkg> for integer operations (works faster, but an external depend).</flag>
+ <flag name="llvm">Pull in dependencies for the <pkg>sys-devel/llvm</pkg> codegen backend.</flag>
<flag name="numa">Enable NUMA thread balancing policy using <pkg>sys-process/numactl</pkg>.</flag>
</use>
<upstream>