diff --git a/296f25fa5f0fce033b529547e0658076e26f4cda.patch b/296f25fa5f0fce033b529547e0658076e26f4cda.patch new file mode 100644 index 0000000..813c500 --- /dev/null +++ b/296f25fa5f0fce033b529547e0658076e26f4cda.patch @@ -0,0 +1,39 @@ +From 296f25fa5f0fce033b529547e0658076e26f4cda Mon Sep 17 00:00:00 2001 +From: Adam Sandberg Ericsson +Date: Wed, 28 Apr 2021 20:11:52 +0100 +Subject: [PATCH] rts: export allocateWrite, freeWrite and markExec #19763 + +(cherry picked from commit 2d2985a79eec3d6ae9aee96b264c97c2b158f196) +--- + rts/RtsSymbols.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c +index 9ca696c27c4..d5b8cc5fece 100644 +--- a/rts/RtsSymbols.c ++++ b/rts/RtsSymbols.c +@@ -539,11 +539,21 @@ + #define RTS_PROF_SYMBOLS /* empty */ + #endif + ++#if RTS_LINKER_USE_MMAP ++#define RTS_LINKER_USE_MMAP_SYMBOLS \ ++ SymI_HasProto(allocateWrite) \ ++ SymI_HasProto(freeWrite) \ ++ SymI_HasProto(markExec) ++#else ++#define RTS_LINKER_USE_MMAP_SYMBOLS /* empty */ ++#endif ++ + #define RTS_SYMBOLS \ + Maybe_Stable_Names \ + RTS_TICKY_SYMBOLS \ + RTS_PROF_SYMBOLS \ + RTS_LIBDW_SYMBOLS \ ++ RTS_LINKER_USE_MMAP_SYMBOLS \ + SymI_HasProto(StgReturn) \ + SymI_HasProto(stg_gc_noregs) \ + SymI_HasProto(stg_ret_v_info) \ +-- +GitLab + diff --git a/ghc-8.10-llvm10.patch b/ghc-8.10-llvm10.patch deleted file mode 100644 index 6996779..0000000 --- a/ghc-8.10-llvm10.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ghc-8.10.2/configure.ac~ 2020-08-04 05:51:52.000000000 +0800 -+++ ghc-8.10.2/configure.ac 2020-08-11 18:57:45.074836178 +0800 -@@ -673,7 +673,7 @@ - # tools we are looking for. In the past, GHC supported a number of - # versions of LLVM simultaneously, but that stopped working around - # 3.5/3.6 release of LLVM. --LlvmVersion=9 -+LlvmVersion=10 - AC_SUBST([LlvmVersion]) - sUPPORTED_LLVM_VERSION=$(echo \($LlvmVersion\) | sed 's/\./,/') - AC_DEFINE_UNQUOTED([sUPPORTED_LLVM_VERSION], ${sUPPORTED_LLVM_VERSION}, [The supported LLVM version number]) diff --git a/ghc.spec b/ghc.spec index 67e7ed6..041ec66 100644 --- a/ghc.spec +++ b/ghc.spec @@ -8,7 +8,7 @@ # to handle RCs %global ghc_release %{version} -%global base_ver 4.14.1.0 +%global base_ver 4.14.2.0 # build profiling libraries # build haddock @@ -19,6 +19,7 @@ %bcond_with perf_build %undefine _enable_debug_packages %else +%bcond_without ghc_prof %bcond_without haddock %bcond_without perf_build %endif @@ -37,19 +38,19 @@ # no longer build testsuite (takes time and not really being used) %bcond_with testsuite -# 8.10 recommends llvm-9 but 10 or even 11 should work -%global llvm_major 10 +# 8.10.5 can use llvm 9-12 +%global llvm_major 11 %global ghc_llvm_archs armv7hl aarch64 -%global ghc_unregisterized_arches s390 %{mips} riscv64 s390x +%global ghc_unregisterized_arches s390 s390x %{mips} riscv64 Name: ghc -Version: 8.10.4 +Version: 8.10.5 # Since library subpackages are versioned: # - release can only be reset if *all* library versions get bumped simultaneously # (sometimes after a major release) # - minor release numbers for a branch should be incremented monotonically -Release: 114%{?dist} +Release: 115%{?dist} Summary: Glasgow Haskell Compiler License: BSD and HaskellReport @@ -68,13 +69,15 @@ Patch2: ghc-Cabal-install-PATH-warning.patch Patch3: ghc-gen_contents_index-nodocs.patch # https://phabricator.haskell.org/rGHC4eebc8016f68719e1ccdf460754a97d1f4d6ef05 Patch6: ghc-8.6.3-sphinx-1.8.patch +# https://gitlab.haskell.org/ghc/ghc/-/issues/19763 +# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5915 +Patch7: https://gitlab.haskell.org/ghc/ghc/-/commit/296f25fa5f0fce033b529547e0658076e26f4cda.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1977317 Patch8: ghc-userguide-sphinx4.patch # Arch dependent patches # arm Patch12: ghc-armv7-VFPv3D16--NEON.patch -Patch13: ghc-8.10-llvm10.patch # for unregisterized # https://ghc.haskell.org/trac/ghc/ticket/15689 @@ -131,8 +134,8 @@ BuildRequires: llvm%{llvm_major} %if %{with dwarf} BuildRequires: elfutils-devel %endif -%ifarch armv7hl %{ghc_llvm_archs} -# patch12, patch13 +%ifarch armv7hl +# patch12 BuildRequires: autoconf, automake %endif %if %{without quickbuild} @@ -243,7 +246,7 @@ This package provides the User Guide and Haddock manual. %ghc_lib_subpackage -d -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base-%{base_ver} %ghc_lib_subpackage -d -l BSD binary-0.8.8.0 %ghc_lib_subpackage -d -l BSD bytestring-0.10.12.0 -%ghc_lib_subpackage -d -l %BSDHaskellReport containers-0.6.2.1 +%ghc_lib_subpackage -d -l %BSDHaskellReport containers-0.6.4.1 %ghc_lib_subpackage -d -l %BSDHaskellReport deepseq-1.4.4.0 %ghc_lib_subpackage -d -l %BSDHaskellReport directory-1.3.6.0 %ghc_lib_subpackage -d -l %BSDHaskellReport exceptions-0.10.4 @@ -264,7 +267,7 @@ This package provides the User Guide and Haddock manual. %ghc_lib_subpackage -d -l BSD parsec-3.1.14.0 %ghc_lib_subpackage -d -l BSD pretty-1.1.3.6 %ghc_lib_subpackage -d -l %BSDHaskellReport process-1.6.9.0 -%ghc_lib_subpackage -d -l BSD stm-2.5.0.0 +%ghc_lib_subpackage -d -l BSD stm-2.5.0.1 %ghc_lib_subpackage -d -l BSD template-haskell-2.16.0.0 %ghc_lib_subpackage -d -l BSD -c ncurses-devel%{?_isa} terminfo-0.4.1.4 %ghc_lib_subpackage -d -l BSD text-1.2.4.1 @@ -314,6 +317,7 @@ packages to be automatically installed too. %patch2 -p1 -b .orig %patch6 -p1 -b .orig +%patch7 -p1 -b .orig %patch8 -p1 -b .orig rm -r libffi-tarballs @@ -322,10 +326,6 @@ rm -r libffi-tarballs %patch12 -p1 -b .orig %endif -%ifarch %{ghc_llvm_archs} -%patch13 -p1 -b .orig13 -%endif - # remove s390x after switching to llvm %ifarch %{ghc_unregisterized_arches} s390x %patch15 -p1 -b .orig @@ -385,8 +385,8 @@ BUILD_SPHINX_PDF = NO EOF %build -# for patch12 and patch13 -%ifarch armv7hl %{ghc_llvm_archs} +# for patch12 +%ifarch armv7hl autoreconf %endif @@ -488,6 +488,11 @@ install -p -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/ghc-pkg.1 install -p -m 0644 %{SOURCE6} %{buildroot}%{_mandir}/man1/haddock.1 install -p -m 0644 %{SOURCE7} %{buildroot}%{_mandir}/man1/runghc.1 +%ifarch armv7hl +export RPM_BUILD_NCPUS=1 +%endif + + %check export LANG=en_US.utf8 # stolen from ghc6/debian/rules: @@ -659,6 +664,11 @@ env -C %{ghc_html_libraries_dir} ./gen_contents_index %changelog +* Thu Jul 22 2021 Jens Petersen - 8.10.5-115 +- update to 8.10.5 with patch for missing rts symbols +- use llvm 11 for ARM +- https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/8.10.5-notes.html + * Thu Jul 15 2021 Jens Petersen - 8.10.4-114 - perf build diff --git a/sources b/sources index 88bc235..b5e2cf4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ghc-8.10.4-src.tar.xz) = 9bb078cb72535a352243b83b671c871392564efd09e478549f27ae58fc6f46e337a0782f5500d26d5704ad96eace22e77bb36031a1fe9b7e175f265b0b9c028b -SHA512 (ghc-8.10.4-src.tar.xz.sig) = af7dea2adfe120fb35aba203381062c0d6bb0fd76e675ed016019014954a82a58e1a8509b523ffc826ab4ca717a4e00d30280ac9bc1b2e120af6aecbb314897b +SHA512 (ghc-8.10.5-src.tar.xz.sig) = c9d1abf8f4065c1935be877b4978638130307afbfef988ac16d7c972e502b71056a5e5acc1b54b903d8f939a0f2e3ec4ad953cdc7a9ce21024f398ce84cfb2da +SHA512 (ghc-8.10.5-src.tar.xz) = b5f39be0accd5c1cecf1cc326ba3142f561d2ac93e9abf366fe46307d7c0712aac244836e659e1a4d9d0fb98299ea96edc8e8a06f3a81b528b14914b94057ffe