Hello community, here is the log from the commit of package ghc for openSUSE:Factory checked in at 2017-02-28 23:50:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc (Old) and /work/SRC/openSUSE:Factory/.ghc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc" Tue Feb 28 23:50:46 2017 rev:53 rq:459981 version:8.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc/ghc.changes 2017-01-23 11:41:04.214558709 +0100 +++ /work/SRC/openSUSE:Factory/.ghc.new/ghc.changes 2017-02-28 23:50:47.955327720 +0100 @@ -1,0 +2,25 @@ +Sun Jan 22 11:31:49 UTC 2017 - peter.trommler@ohm-hochschule.de + +- comment for patch 100 +- refresh ghc-no-madv-free.patch with upstream patch +* upstream fix for Haskell Trac #12865 +* Haskell Trac #12495 is a duplicate + +------------------------------------------------------------------- +Sat Jan 21 21:50:56 UTC 2017 - mimi.vx@gmail.com + +- update to 8.0.2 +- drop patches merged by upstream: +* D2495.patch +- refreshed patches: +* 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch +* 0001-StgCmmPrim-Add-missing-write-barrier.patch +* ghc-no-madv-free.patch +- added ghc-8.0.2-Cabal-dynlibdir.patch by Jens Petersen simplifing + haskell packaging ++ Interface files produced by GHC should now be deterministic ( boo#998972 ) ++ A bug has been fixed that caused standalone derived Ix instances + to fail for GADTs with exactly one constructor ++ Compatibility fixes recent Linux distributions. + +------------------------------------------------------------------- Old: ---- D2495.patch ghc-8.0.1-src.tar.xz New: ---- ghc-8.0.2-Cabal-dynlibdir.patch ghc-8.0.2-src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc.spec ++++++ --- /var/tmp/diff_new_pack.TvxYWL/_old 2017-02-28 23:50:49.123162887 +0100 +++ /var/tmp/diff_new_pack.TvxYWL/_new 2017-02-28 23:50:49.127162323 +0100 @@ -23,7 +23,7 @@ %global unregisterised_archs aarch64 s390 s390x Name: ghc -Version: 8.0.1 +Version: 8.0.2 Release: 0 Url: http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-src.tar.xz Summary: The Glorious Glasgow Haskell Compiler @@ -67,15 +67,14 @@ Requires: ghc-libraries = %{version}-%{release} Source: http://haskell.org/ghc/dist/%{version}/%{name}-%{version}-src.tar.xz Source1: ghc-rpmlintrc -# PATCH-FIX-UPSTREAM D2495.patch peter.trommler@ohm-hochschule.de -- Add missing memory barrier on mutable variables. See https://ghc.haskell.org/trac/ghc/ticket/12469 for details. Backport of upstream fix for ghc 8.0.2. -Patch27: D2495.patch # PATCH-FIX_UPSTREAM 0001-StgCmmPrim-Add-missing-write-barrier.patch peter.trommler@ohm-hochschule.de -- Add missing write barrier on mutable arrays. Patch28: 0001-StgCmmPrim-Add-missing-write-barrier.patch -# PATCH-FIX_UPSTREAM ghc-no-madv-free.patch psimons@suse.com -- Fix "unable to decommit memory: Invalid argument" errors. See https://ghc.haskell.org/trac/ghc/ticket/12495 for details. +# PATCH-FIX_UPSTREAM ghc-no-madv-free.patch peter.trommler@ohn-hochschule.de -- Fix "unable to decommit memory: Invalid argument" errors. See Haskell Trac #12865 for details. Patch29: ghc-no-madv-free.patch # PATCH-FIX-UPSTREAM 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch peter.trommler@ohm-hochschule.de -- Fix PPC codegen: Fixes ghc-zeromq4-haskell build on 64-bit PowerPCs Patch30: 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch - +# PATCH-FIX-OPENSUSE ghc-8.0.2-Cabal-dynlibdir.patch -- Fix shared library directory location. +Patch100: ghc-8.0.2-Cabal-dynlibdir.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -117,29 +116,29 @@ %global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release} %if %{defined ghclibdir} -%ghc_lib_subpackage Cabal-1.24.0.0 +%ghc_lib_subpackage Cabal-1.24.2.0 %ghc_lib_subpackage array-0.5.1.1 -%ghc_lib_subpackage -c gmp-devel,libffi-devel,libdw-devel,libelf-devel base-4.9.0.0 +%ghc_lib_subpackage -c gmp-devel,libffi-devel,libdw-devel,libelf-devel base-4.9.1.0 %ghc_lib_subpackage binary-0.8.3.0 %ghc_lib_subpackage bytestring-0.10.8.1 %ghc_lib_subpackage containers-0.5.7.1 %ghc_lib_subpackage deepseq-1.4.2.0 -%ghc_lib_subpackage directory-1.2.6.2 -%ghc_lib_subpackage filepath-1.4.1.0 +%ghc_lib_subpackage directory-1.3.0.0 +%ghc_lib_subpackage filepath-1.4.1.1 %ghc_lib_subpackage -x ghc-%{ghc_version_override} %ghc_lib_subpackage ghc-boot-%{ghc_version_override} %ghc_lib_subpackage ghc-boot-th-%{ghc_version_override} %ghc_lib_subpackage -x ghci-%{ghc_version_override} -%ghc_lib_subpackage haskeline-0.7.2.3 +%ghc_lib_subpackage haskeline-0.7.3.0 %ghc_lib_subpackage hoopl-3.10.2.1 %ghc_lib_subpackage hpc-0.6.0.3 %ghc_lib_subpackage pretty-1.1.3.3 -%ghc_lib_subpackage process-1.4.2.0 -%ghc_lib_subpackage template-haskell-2.11.0.0 +%ghc_lib_subpackage process-1.4.3.0 +%ghc_lib_subpackage template-haskell-2.11.1.0 %ghc_lib_subpackage -c ncurses-devel terminfo-0.4.0.2 %ghc_lib_subpackage time-1.6.0.1 %ghc_lib_subpackage transformers-0.5.2.0 -%ghc_lib_subpackage unix-2.7.2.0 +%ghc_lib_subpackage unix-2.7.2.1 %ghc_lib_subpackage xhtml-3000.2.1 %endif @@ -161,10 +160,10 @@ %prep %setup -q -%patch27 -p1 %patch28 -p1 %patch29 -p1 %patch30 -p1 +%patch100 -p1 %build # Check if bootstrap is required, i.e. version is different from ghc's version @@ -416,7 +415,6 @@ %{ghcdocbasedir}/haddock %{ghcdocbasedir}/users_guide %endif -%{ghcdocbasedir}/libraries/frames.html %{ghcdocbasedir}/libraries/gen_contents_index %{ghcdocbasedir}/libraries/hslogo-16.png %{ghcdocbasedir}/libraries/ocean.css ++++++ 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch ++++++ --- /var/tmp/diff_new_pack.TvxYWL/_old 2017-02-28 23:50:49.147159500 +0100 +++ /var/tmp/diff_new_pack.TvxYWL/_new 2017-02-28 23:50:49.147159500 +0100 @@ -7,16 +7,16 @@ compiler/nativeGen/PPC/CodeGen.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: ghc-8.0.1/compiler/nativeGen/PPC/CodeGen.hs +Index: ghc-8.0.2/compiler/nativeGen/PPC/CodeGen.hs =================================================================== ---- ghc-8.0.1.orig/compiler/nativeGen/PPC/CodeGen.hs -+++ ghc-8.0.1/compiler/nativeGen/PPC/CodeGen.hs -@@ -471,7 +471,7 @@ getRegister' _ (CmmMachOp (MO_UU_Conv W3 - return (Any II64 (\dst -> addr_code `snocOL` LD II32 dst addr)) +--- ghc-8.0.2.orig/compiler/nativeGen/PPC/CodeGen.hs ++++ ghc-8.0.2/compiler/nativeGen/PPC/CodeGen.hs +@@ -466,7 +466,7 @@ getRegister' _ (CmmMachOp (MO_SS_Conv W1 + return (Any II64 (\dst -> addr_code `snocOL` LA II16 dst addr)) - getRegister' _ (CmmMachOp (MO_SS_Conv W32 W64) [CmmLoad mem _]) = do + getRegister' _ (CmmMachOp (MO_UU_Conv W32 W64) [CmmLoad mem _]) = do - Amode addr addr_code <- getAmode D mem + Amode addr addr_code <- getAmode DS mem -- lwa is DS-form - return (Any II64 (\dst -> addr_code `snocOL` LA II32 dst addr)) + return (Any II64 (\dst -> addr_code `snocOL` LD II32 dst addr)) - getRegister' dflags (CmmMachOp mop [x]) -- unary MachOps + getRegister' _ (CmmMachOp (MO_SS_Conv W32 W64) [CmmLoad mem _]) = do ++++++ 0001-StgCmmPrim-Add-missing-write-barrier.patch ++++++ --- /var/tmp/diff_new_pack.TvxYWL/_old 2017-02-28 23:50:49.155158371 +0100 +++ /var/tmp/diff_new_pack.TvxYWL/_new 2017-02-28 23:50:49.159157807 +0100 @@ -7,11 +7,11 @@ compiler/codeGen/StgCmmPrim.hs | 1 + 1 file changed, 1 insertion(+) -Index: ghc-8.0.1/compiler/codeGen/StgCmmPrim.hs +Index: ghc-8.0.2/compiler/codeGen/StgCmmPrim.hs =================================================================== ---- ghc-8.0.1.orig/compiler/codeGen/StgCmmPrim.hs -+++ ghc-8.0.1/compiler/codeGen/StgCmmPrim.hs -@@ -1353,6 +1353,7 @@ doWritePtrArrayOp addr idx val +--- ghc-8.0.2.orig/compiler/codeGen/StgCmmPrim.hs ++++ ghc-8.0.2/compiler/codeGen/StgCmmPrim.hs +@@ -1357,6 +1357,7 @@ doWritePtrArrayOp addr idx val emit (setInfo addr (CmmLit (CmmLabel mkMAP_DIRTY_infoLabel))) -- the write barrier. We must write a byte into the mark table: -- bits8[a + header_size + StgMutArrPtrs_size(a) + x >> N] ++++++ ghc-8.0.2-Cabal-dynlibdir.patch ++++++ --- ghc-8.0.1.20161117/libraries/Cabal/Cabal/Distribution/Simple/InstallDirs.hs~ 2016-11-18 07:08:46.000000000 +0900 +++ ghc-8.0.1.20161117/libraries/Cabal/Cabal/Distribution/Simple/InstallDirs.hs 2016-12-07 18:19:02.670468156 +0900 @@ -186,7 +186,7 @@ JHC -> "$compiler" LHC -> "$compiler" UHC -> "$pkgid" - _other -> "$abi", + _other -> "$compiler/$pkgkey", libexecdir = case buildOS of Windows -> "$prefix" </> "$libname" _other -> "$prefix" </> "libexec", ++++++ ghc-8.0.1-src.tar.xz -> ghc-8.0.2-src.tar.xz ++++++ /work/SRC/openSUSE:Factory/ghc/ghc-8.0.1-src.tar.xz /work/SRC/openSUSE:Factory/.ghc.new/ghc-8.0.2-src.tar.xz differ: char 26, line 1 ++++++ ghc-no-madv-free.patch ++++++ --- /var/tmp/diff_new_pack.TvxYWL/_old 2017-02-28 23:50:49.199152162 +0100 +++ /var/tmp/diff_new_pack.TvxYWL/_new 2017-02-28 23:50:49.203151597 +0100 @@ -1,18 +1,59 @@ -Index: ghc-8.0.1/rts/posix/OSMem.c +From: Ben Gamari <bgamari.foss@gmail.com> +Date: Thu, 1 Dec 2016 17:55:23 +0000 (-0500) +Subject: rts: Ensure we always give MADV_DONTNEED a chance in osDecommitMemory +X-Git-Url: https://git.haskell.org/ghc.git/commitdiff_plain/6576bf83cdf4eac05eb88a24aa9... + +rts: Ensure we always give MADV_DONTNEED a chance in osDecommitMemory + +As described in #12865, newer Linux kernels support both MADV_FREE and +MADV_DONTNEED. Previously a runtime would fail to try MADV_DONTNEED if +MADV_FREE failed (e.g. since the kernel which the image is running on +doesn't support the latter). Now we try MADV_DONTNEED if MADV_FREE +failed to ensure that binaries compiled on a kernel supporting MADV_FREE +don't fail on decommit. + +Test Plan: Validate + +Reviewers: austin, erikd, simonmar + +Reviewed By: simonmar + +Subscribers: thomie + +Differential Revision: https://phabricator.haskell.org/D2780 + +GHC Trac Issues: #12865 +--- + +Index: ghc-8.0.1.20161117/rts/posix/OSMem.c =================================================================== ---- ghc-8.0.1.orig/rts/posix/OSMem.c -+++ ghc-8.0.1/rts/posix/OSMem.c -@@ -504,13 +504,7 @@ void osDecommitMemory(void *at, W_ size) - sysErrorBelch("unable to make released memory unaccessible"); - #endif +--- ghc-8.0.1.20161117.orig/rts/posix/OSMem.c ++++ ghc-8.0.1.20161117/rts/posix/OSMem.c +@@ -522,11 +522,24 @@ void osDecommitMemory(void *at, W_ size) --#ifdef MADV_FREE -- // Try MADV_FREE first, FreeBSD has both and MADV_DONTNEED + #ifdef MADV_FREE + // Try MADV_FREE first, FreeBSD has both and MADV_DONTNEED - // just swaps memory out -- r = madvise(at, size, MADV_FREE); ++ // just swaps memory out. Linux >= 4.5 has both DONTNEED and FREE; either ++ // will work as they both allow the system to free anonymous pages. ++ // It is important that we try both methods as the kernel which we were ++ // built on may differ from the kernel we are now running on. + r = madvise(at, size, MADV_FREE); -#else - r = madvise(at, size, MADV_DONTNEED); --#endif +- r = madvise(at, size, MADV_DONTNEED); ++ if(r < 0) { ++ if (errno == EINVAL) { ++ // Perhaps the system doesn't support MADV_FREE; fall-through and ++ // try MADV_DONTNEED. ++ } else { ++ sysErrorBelch("unable to decommit memory"); ++ } ++ } else { ++ return; ++ } + #endif ++ ++ r = madvise(at, size, MADV_DONTNEED); if(r < 0) sysErrorBelch("unable to decommit memory"); }