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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 [email protected] -- 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 
[email protected] -- Add missing write barrier on mutable arrays.
 Patch28:        0001-StgCmmPrim-Add-missing-write-barrier.patch
-# PATCH-FIX_UPSTREAM ghc-no-madv-free.patch [email protected] -- 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 [email protected] 
-- 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 
[email protected] -- 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 <[email protected]>
+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/6576bf83cdf4eac05eb88a24aa934a736c91e3da
+
+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");
  }


Reply via email to