diff options
author | matoro <matoro@users.noreply.github.com> | 2022-08-24 13:11:45 -0400 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-08-31 22:26:10 +0100 |
commit | 4f2b75c28da601e734f44f93381b88b59f0233ca (patch) | |
tree | 6cfdaaa5ce77129318db77ca1e5870e882711769 /dev-lang/ghc | |
parent | app-admin/haskell-updater: keyword 1.3.2-r1 for ~arm64 (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | dev-lang/ghc/files/ghc-9.0.2-llvm-13.patch | 26 | ||||
-rw-r--r-- | dev-lang/ghc/ghc-9.0.2.ebuild | 40 | ||||
-rw-r--r-- | dev-lang/ghc/metadata.xml | 1 |
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> |