From 65eec31b6972a4523c3d8c8d237b3e85f9df8028 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Wed, 17 Oct 2018 12:07:29 +0900 Subject: [PATCH] backport build configs from 8.4 module; extend quickbuild to perf_build - backport quickbuild config from 8.4 module - disable -Wall on s390x like in 8.4 module to silence warning flood and simplify setting of CFLAGS - setup build.mk in setup section, taken from copr and module - enable buildpath-abi-stability.patch (from Debian) --- ghc-Debian-buildpath-abi-stability.patch | 14 +++--- ghc.spec | 63 +++++++++++++++--------- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/ghc-Debian-buildpath-abi-stability.patch b/ghc-Debian-buildpath-abi-stability.patch index b6f46b6..1d45c72 100644 --- a/ghc-Debian-buildpath-abi-stability.patch +++ b/ghc-Debian-buildpath-abi-stability.patch @@ -1,10 +1,8 @@ Forwarded to https://ghc.haskell.org/trac/ghc/ticket/10424 -Index: ghc-7.10.1/compiler/iface/MkIface.hs -=================================================================== ---- ghc-7.10.1.orig/compiler/iface/MkIface.hs 2015-05-17 20:34:02.808643844 +0200 -+++ ghc-7.10.1/compiler/iface/MkIface.hs 2015-05-17 20:34:02.804643799 +0200 -@@ -611,7 +611,7 @@ +--- a/compiler/iface/MkIface.hs ++++ b/compiler/iface/MkIface.hs +@@ -681,7 +681,7 @@ addFingerprints hsc_env mb_old_fingerpri iface_hash <- computeFingerprint putNameLiterally (mod_hash, ann_fn (mkVarOcc "module"), -- See mkIfaceAnnCache @@ -13,7 +11,7 @@ Index: ghc-7.10.1/compiler/iface/MkIface.hs sorted_deps, mi_hpc iface0) -@@ -644,6 +644,9 @@ +@@ -714,6 +714,9 @@ addFingerprints hsc_env mb_old_fingerpri (non_orph_fis, orph_fis) = mkOrphMap ifFamInstOrph (mi_fam_insts iface0) fix_fn = mi_fix_fn iface0 ann_fn = mkIfaceAnnCache (mi_anns iface0) @@ -21,5 +19,5 @@ Index: ghc-7.10.1/compiler/iface/MkIface.hs + usages = [ case u of UsageFile _ fp -> UsageFile "" fp; _ -> u | u <- mi_usages iface0 ] + - getOrphanHashes :: HscEnv -> [Module] -> IO [Fingerprint] - getOrphanHashes hsc_env mods = do + -- | Retrieve the orphan hashes 'mi_orphan_hash' for a list of modules + -- (in particular, the orphan modules which are transitively imported by the diff --git a/ghc.spec b/ghc.spec index 52dab2c..b1236e6 100644 --- a/ghc.spec +++ b/ghc.spec @@ -1,5 +1,6 @@ -# perf production build (disable for quick build) -%bcond_without perf_build +# disable prof, docs, perf build +# NB This SHOULD be disabled 'bcond_with' for all koji production builds +%bcond_with quickbuild # to handle RCs %global ghc_release %{version} @@ -9,12 +10,22 @@ # skip testsuite (takes time and not really being used) %bcond_with testsuite + # build profiling libraries -%bcond_without prof # build docs (haddock and manuals) -# combined since disabling haddock seems to cause no manuals built -# +# - combined since disabling haddock seems to cause no manuals built +# - +# perf production build (disable for quick build) +%if %{with quickbuild} +%bcond_with prof +%bcond_with docs +%bcond_with perf_build +%else +%bcond_without prof %bcond_without docs +%bcond_without perf_build +%endif + # 8.2 needs llvm-3.9 %global llvm_major 3.9 @@ -53,9 +64,12 @@ Patch5: ghc-configure-fix-sphinx-version-check.patch Patch12: ghc-armv7-VFPv3D16--NEON.patch +# for s390x +# https://ghc.haskell.org/trac/ghc/ticket/15689 +Patch15: ghc-warnings.mk-CC-Wall.patch + # Debian patches: -# doesn't apply to 8.2 -#Patch24: ghc-Debian-buildpath-abi-stability.patch +Patch24: ghc-Debian-buildpath-abi-stability.patch Patch26: ghc-Debian-no-missing-haddock-file-warning.patch Patch27: ghc-Debian-reproducible-tmp-names.patch Patch28: ghc-Debian-x32-use-native-x86_64-insn.patch @@ -270,7 +284,11 @@ rm -r libffi-tarballs %patch12 -p1 -b .orig %endif -#%%patch24 -p1 -b .orig +%ifarch s390x +%patch15 -p1 -b .orig +%endif + +%patch24 -p1 -b .orig %patch26 -p1 -b .orig %patch27 -p1 -b .orig %patch28 -p1 -b .orig @@ -283,8 +301,6 @@ if [ ! -f "libraries/%{gen_contents_index}" ]; then fi %endif - -%build # http://hackage.haskell.org/trac/ghc/wiki/Platforms # cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc cat > mk/build.mk << EOF @@ -318,6 +334,7 @@ EOF ## (http://ghc.haskell.org/trac/ghc/wiki/Debugging/RuntimeSystem) #EXTRA_HC_OPTS=-debug +%build # for patch12 %ifarch armv7hl autoreconf @@ -326,19 +343,10 @@ autoreconf autoconf %endif -%if 0%{?fedora} > 28 -%ghc_set_cflags -%else -# -Wunused-label is extremely noisy -%ifarch aarch64 s390x -CFLAGS="${CFLAGS:-$(echo %optflags | sed -e 's/-Wall //' -e 's/-Werror=format-security //')}" -%else -CFLAGS="${CFLAGS:-%optflags}" -%endif -export CFLAGS -%endif +# replace later with ghc_set_gcc_flags +export CFLAGS="${CFLAGS:-%optflags}" export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}" -# for ghc-8.2 +# for ghc >= 8.2 export CC=%{_bindir}/gcc # * %%configure induces cross-build due to different target/host/build platform names ./configure --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} \ @@ -624,14 +632,23 @@ fi %files manual ## needs pandoc #%%{ghc_html_dir}/Cabal +%if %{with docs} %{ghc_html_dir}/haddock +%endif %{ghc_html_dir}/index.html %{ghc_html_dir}/users_guide %endif %changelog -* Tue Oct 16 2018 Peter Robinson 8.2.2-70 +* Wed Oct 17 2018 Jens Petersen - 8.2.2-70 +- backport quickbuild config from 8.4 module and extend to perf_build +- disable -Wall on s390x like in 8.4 module to silence warning flood + and simplify setting of CFLAGS +- enable buildpath-abi-stability.patch (from Debian) +- setup build.mk in setup section, taken from copr and module + +* Tue Oct 16 2018 Peter Robinson - Update alternatives dependencies * Fri Jul 13 2018 Fedora Release Engineering - 8.2.2-69