gnu: ghc: Really disable test that fails with glibc 2.30 and later.
This follows up commit 2e9c43aa9a
, which was
incomplete. Fixes <https://bugs.gnu.org/39358>.
* gnu/packages/patches/ghc-testsuite-dlopen-pie.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly. Also use tabs instead
of spaces on surrounding patches.
* gnu/packages/haskell.scm (ghc-8.6)[native-inputs]: Add patch for
"ghc-testsuite".
[arguments]: Remove incomplete workaround for the same issue.
This commit is contained in:
parent
53de3e74fa
commit
c75db69371
|
@ -930,9 +930,10 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
||||||
%D%/packages/patches/gd-freetype-test-failure.patch \
|
%D%/packages/patches/gd-freetype-test-failure.patch \
|
||||||
%D%/packages/patches/geoclue-config.patch \
|
%D%/packages/patches/geoclue-config.patch \
|
||||||
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
||||||
%D%/packages/patches/ghc-diff-swap-cover-args.patch \
|
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
|
||||||
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
|
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
|
||||||
|
%D%/packages/patches/ghc-diff-swap-cover-args.patch \
|
||||||
%D%/packages/patches/ghc-haddock-api-fix-haddock.patch \
|
%D%/packages/patches/ghc-haddock-api-fix-haddock.patch \
|
||||||
%D%/packages/patches/ghc-hpack-fix-tests.patch \
|
%D%/packages/patches/ghc-hpack-fix-tests.patch \
|
||||||
%D%/packages/patches/ghc-microlens-aeson-fix-tests.patch \
|
%D%/packages/patches/ghc-microlens-aeson-fix-tests.patch \
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
|
;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
|
||||||
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
|
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
|
||||||
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
|
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
|
||||||
;;; Copyright © Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -568,6 +568,7 @@ (define-public ghc-8.6
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"https://www.haskell.org/ghc/dist/"
|
"https://www.haskell.org/ghc/dist/"
|
||||||
version "/" name "-" version "-testsuite.tar.xz"))
|
version "/" name "-" version "-testsuite.tar.xz"))
|
||||||
|
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))))
|
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))))
|
||||||
|
@ -591,12 +592,6 @@ (define-public ghc-8.6
|
||||||
(("^test\\('T8108'") "# guix skipped: test('T8108'"))
|
(("^test\\('T8108'") "# guix skipped: test('T8108'"))
|
||||||
(substitute* "libraries/unix/tests/libposix/all.T"
|
(substitute* "libraries/unix/tests/libposix/all.T"
|
||||||
(("^test\\('posix010'") "# guix skipped: test('posix010'"))
|
(("^test\\('posix010'") "# guix skipped: test('posix010'"))
|
||||||
;; This test attempts to dlopen() a position-independent
|
|
||||||
;; executable(!), which is disallowed since glibc 2.30. See
|
|
||||||
;; https://sourceware.org/bugzilla/show_bug.cgi?id=24323
|
|
||||||
(substitute* "testsuite/tests/dynlibs/Makefile"
|
|
||||||
(("\\./T13702a")
|
|
||||||
"# ./T13702a"))
|
|
||||||
#t))))))
|
#t))))))
|
||||||
(native-search-paths (list (search-path-specification
|
(native-search-paths (list (search-path-specification
|
||||||
(variable "GHC_PACKAGE_PATH")
|
(variable "GHC_PACKAGE_PATH")
|
||||||
|
|
54
gnu/packages/patches/ghc-testsuite-dlopen-pie.patch
Normal file
54
gnu/packages/patches/ghc-testsuite-dlopen-pie.patch
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
Do not attempt to dlopen PIE objects, which was disallowed with glibc 2.30.
|
||||||
|
|
||||||
|
https://gitlab.haskell.org/ghc/ghc/issues/17952
|
||||||
|
https://sourceware.org/bugzilla/show_bug.cgi?id=24323
|
||||||
|
|
||||||
|
Patch submitted upstream:
|
||||||
|
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/2947
|
||||||
|
|
||||||
|
diff --git a/testsuite/tests/dynlibs/Makefile b/testsuite/tests/dynlibs/Makefile
|
||||||
|
--- a/testsuite/tests/dynlibs/Makefile
|
||||||
|
+++ b/testsuite/tests/dynlibs/Makefile
|
||||||
|
@@ -60,6 +60,4 @@ T5373:
|
||||||
|
.PHONY: T13702
|
||||||
|
T13702:
|
||||||
|
'$(TEST_HC)' -v0 -dynamic -rdynamic -fPIC -pie T13702.hs
|
||||||
|
- '$(TEST_HC)' -v0 -dynamic T13702a.hs
|
||||||
|
- ./T13702 # first make sure executable itself works
|
||||||
|
- ./T13702a # then try dynamically loading it as library
|
||||||
|
+ ./T13702
|
||||||
|
diff --git a/testsuite/tests/dynlibs/T13702.hs b/testsuite/tests/dynlibs/T13702.hs
|
||||||
|
--- a/testsuite/tests/dynlibs/T13702.hs
|
||||||
|
+++ b/testsuite/tests/dynlibs/T13702.hs
|
||||||
|
@@ -2,8 +2,3 @@
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = putStrLn "hello world"
|
||||||
|
-
|
||||||
|
-foreign export ccall "hello" hello :: IO ()
|
||||||
|
-
|
||||||
|
-hello :: IO ()
|
||||||
|
-hello = putStrLn "hello world again"
|
||||||
|
diff --git a/testsuite/tests/dynlibs/T13702.stdout b/testsuite/tests/dynlibs/T13702.stdout
|
||||||
|
--- a/testsuite/tests/dynlibs/T13702.stdout
|
||||||
|
+++ b/testsuite/tests/dynlibs/T13702.stdout
|
||||||
|
@@ -1,2 +1 @@
|
||||||
|
hello world
|
||||||
|
-hello world again
|
||||||
|
diff --git a/testsuite/tests/dynlibs/T13702a.hs b/testsuite/tests/dynlibs/T13702a.hs
|
||||||
|
deleted file mode 100644
|
||||||
|
--- a/testsuite/tests/dynlibs/T13702a.hs
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,12 +0,0 @@
|
||||||
|
-{-# LANGUAGE ForeignFunctionInterface #-}
|
||||||
|
-
|
||||||
|
-import Foreign
|
||||||
|
-import System.Posix.DynamicLinker
|
||||||
|
-
|
||||||
|
-main :: IO ()
|
||||||
|
-main = do
|
||||||
|
- dl <- dlopen "./T13702" [RTLD_NOW]
|
||||||
|
- funptr <- dlsym dl "hello" :: IO (FunPtr (IO ()))
|
||||||
|
- mkAction funptr
|
||||||
|
-
|
||||||
|
-foreign import ccall "dynamic" mkAction :: FunPtr (IO ()) -> IO ()
|
Loading…
Reference in a new issue