gnu: ghc: Fix build with binutils ≥ 2.39.

ld warns about exec stack now, making some tests fail.  Fix them (and also
remove an unwarranted exec stack from libHSrts along with it).

* gnu/packages/patches/ghc-9-StgCRunAsm-only-when-needed.patch
* gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch: New patches.
* gnu/local.mk (dist_patch_DATA): Register them.
* gnu/packages/haskell.scm (ghc-8.6, ghc-8.8, ghc-8.10, ghc-9.0, ghc-9.2,
ghc-9.4): Use them.

Change-Id: I8e5fc71d7394527d44ff37b1f9bd59d4971ec010
This commit is contained in:
Josselin Poiret 2024-01-15 23:05:37 +01:00 committed by Ludovic Courtès
parent 4840707013
commit 13b5b5d10f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
4 changed files with 63 additions and 9 deletions

View file

@ -1174,7 +1174,8 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/" name "-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(sha256
(base32
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))
@ -1256,7 +1257,8 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(sha256
(base32
"0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))
@ -1315,7 +1317,8 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
"ghc-testsuite-grep-compat.patch"))
"ghc-testsuite-grep-compat.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(sha256
(base32
"1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))
@ -1398,7 +1401,8 @@ interactive environment for the functional language Haskell.")
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
"15wii8can2r3dcl6jjmd50h2jvn7rlmn05zb74d2scj6cfwl43hl"))))
"15wii8can2r3dcl6jjmd50h2jvn7rlmn05zb74d2scj6cfwl43hl"))
(patches (search-patches "ghc-9-StgCRunAsm-only-when-needed.patch"))))
(native-inputs
`(;; GHC 9.0.2 must be built with GHC >= 8.8
("ghc-bootstrap" ,ghc-8.10)
@ -1411,7 +1415,8 @@ interactive environment for the functional language Haskell.")
(sha256
(base32
"1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"
"ghc-testsuite-recomp015-execstack.patch"))
(modules '((guix build utils)))
(snippet
;; collections.Iterable was moved to collections.abc in Python 3.10.
@ -1444,7 +1449,8 @@ interactive environment for the functional language Haskell.")
(sha256
(base32
"18b7ln4gx2vy62jpv3z5slv3zfxmxnmkgajznks15zglddwd24sz"))
(patches (search-patches "ghc-9.2-cabal-support-package-path.patch"))))
(patches (search-patches "ghc-9.2-cabal-support-package-path.patch"
"ghc-9-StgCRunAsm-only-when-needed.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
@ -1475,7 +1481,8 @@ interactive environment for the functional language Haskell.")
(sha256
(base32
"0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225"))
(patches (search-patches "ghc-9.2-grep-warnings.patch"))))
(patches (search-patches "ghc-9.2-grep-warnings.patch"
"ghc-testsuite-recomp015-execstack.patch"))))
,@(filter (match-lambda
(("ghc-bootstrap" . _) #f)
(("ghc-testsuite" . _) #f)
@ -1565,7 +1572,8 @@ interactive environment for the functional language Haskell.")
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
"1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))))
"1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))
(patches (search-patches "ghc-9-StgCRunAsm-only-when-needed.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
@ -1583,7 +1591,8 @@ interactive environment for the functional language Haskell.")
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))))
"04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))
(patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda