diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/haskell.scm | 3 | ||||
-rw-r--r-- | gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch | 35 |
3 files changed, 1 insertions, 38 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 2f66d628da..3ed6baeead 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1355,7 +1355,6 @@ dist_patch_DATA = \ %D%/packages/patches/gettext-libunicode-update.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-9.2-cabal-support-package-path.patch \ - %D%/packages/patches/ghc-9.2-glibc-2.33-link-order.patch \ %D%/packages/patches/ghc-9.2-grep-warnings.patch \ %D%/packages/patches/ghc-testsuite-dlopen-pie.patch \ %D%/packages/patches/ghc-testsuite-grep-compat.patch \ diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 57696aeead..3f807dae36 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1444,8 +1444,7 @@ interactive environment for the functional language Haskell.") (sha256 (base32 "18b7ln4gx2vy62jpv3z5slv3zfxmxnmkgajznks15zglddwd24sz")) - (patches (search-patches "ghc-9.2-glibc-2.33-link-order.patch" - "ghc-9.2-cabal-support-package-path.patch")))) + (patches (search-patches "ghc-9.2-cabal-support-package-path.patch")))) (arguments (substitute-keyword-arguments (package-arguments base) ((#:phases phases '%standard-phases) diff --git a/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch b/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch deleted file mode 100644 index 5d4afa28c1..0000000000 --- a/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch +++ /dev/null @@ -1,35 +0,0 @@ -Slightly modified version of -https://gitlab.haskell.org/ghc/ghc/-/issues/19029#note_447989, required -for older, buggy glibc versions < 2.34. - -diff -Naur ghc-9.2.5/compiler/GHC/Linker/Unit.hs ghc-9.2.5.patched/compiler/GHC/Linker/Unit.hs ---- ghc-9.2.5/compiler/GHC/Linker/Unit.hs 2022-11-06 20:40:29.000000000 +0100 -+++ ghc-9.2.5.patched/compiler/GHC/Linker/Unit.hs 2023-01-15 14:52:57.511275338 +0100 -@@ -31,11 +31,26 @@ - ps <- mayThrowUnitErr $ preloadUnitsInfo' unit_env pkgs - return (collectLinkOpts dflags ps) - -+fixOrderLinkOpts :: [String] -> [String] -+fixOrderLinkOpts opts -+ | have_bad_glibc_version -- glibc version strictly less than 2.34 -+ , let (before, rest) = break (== libc) opts -+ , not (pthread `elem` before) -+ , pthread `elem` rest -- optional if we know pthread is definitely present -+ = before ++ pthread_and_deps ++ rest -+ | otherwise -+ = opts -+ where -+ pthread = "-lpthread" -+ libc = "-lc" -+ pthread_and_deps = [ "-lrt", pthread ] -- should depend on the environment -+ have_bad_glibc_version = True -+ - collectLinkOpts :: DynFlags -> [UnitInfo] -> ([String], [String], [String]) - collectLinkOpts dflags ps = - ( - concatMap (map ("-l" ++) . unitHsLibs (ghcNameVersion dflags) (ways dflags)) ps, -- concatMap (map ("-l" ++) . map ST.unpack . unitExtDepLibsSys) ps, -+ fixOrderLinkOpts $ concatMap (map ("-l" ++) . map ST.unpack . unitExtDepLibsSys) ps, - concatMap (map ST.unpack . unitLinkerOptions) ps - ) - |