Accepting request 205176 from devel:languages:haskell

Fix threaded runtime on 64 bit big endian. Haskell trac #8134. (forwarded request 205174 from ptrommler)

OBS-URL: https://build.opensuse.org/request/show/205176
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ghc?expand=0&rev=13
This commit is contained in:
Stephan Kulow 2013-10-31 08:01:13 +00:00 committed by Git OBS Bridge
commit 6ecd2c1f94
3 changed files with 39 additions and 14 deletions

View File

@ -0,0 +1,25 @@
From 0a2e25ea54ab549ce0966ffe0ad40c80a2849032 Mon Sep 17 00:00:00 2001
From: Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
Date: Mon, 28 Oct 2013 13:04:12 +0000
Subject: Fix infinite loop on 64 bits big endian platforms (Trac #8134)
---
rts/STM.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rts/STM.c b/rts/STM.c
index 6bcb7ba..c4dcb9f 100644
--- a/rts/STM.c
+++ b/rts/STM.c
@@ -927,7 +927,7 @@ void stmPreGCHook (Capability *cap) {
static volatile StgInt64 max_commits = 0;
#if defined(THREADED_RTS)
-static volatile StgBool token_locked = FALSE;
+static volatile StgWord token_locked = FALSE;
static void getTokenBatch(Capability *cap) {
while (cas((void *)&token_locked, FALSE, TRUE) == TRUE) { /* nothing */ }
--
1.8.3.1

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Mon Oct 28 18:24:46 UTC 2013 - peter.trommler@ohm-hochschule.de
- Add ghc-fix-infinite-loop-big-endian.patch: Fix Haskell trac
#8134 on ppc64.
- Enable threaded runtime on ppc64
-------------------------------------------------------------------
Tue Sep 24 20:56:45 UTC 2013 - peter.trommler@ohm-hochschule.de

View File

@ -100,6 +100,8 @@ Patch4: ghc-avoid-empty-llvm-used-definitions.patch
Patch5: 0001-Fix-detection-of-library-for-shm-on-openSUSE.patch
# PATCH-FIX-UPSTREAM 0001-Delete-spurious-comma-in-configure.ac.patch peter.trommler@ohm-hochschule.de - Fix test for setitimer. Backported patch sent upstream 2013-09-24, Haskell trac #8352
Patch6: 0001-Delete-spurious-comma-in-configure.ac.patch
# PATCH-FIX-UPSTREAM peter.trommler@ohm-hochschule.de - Fix Haskell trac #8134.
Patch7: ghc-fix-infinite-loop-big-endian.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -200,6 +202,7 @@ rm -r ghc-tarballs/libffi
%patch4 -p1 -b .llvm-empty
%patch5 -p1 -b .shm
%patch6 -p1 -b .comma
%patch7 -p1
%build
# required for patch and patch1
@ -217,13 +220,6 @@ GhcLibWays = v
%ifarch %{unregisterised_archs}
GhcUnregisterised=YES
%endif
%ifarch ppc64
GhcWithNativeCodeGen=NO
SplitObjs=NO
GhcRTSWays := debug
GhcNotThreaded=YES
GhcWithInterpreter=NO
%endif
HADDOCK_DOCS = NO
BUILD_DOCBOOK_HTML = NO
HSCOLOUR_SRCS = NO
@ -245,13 +241,6 @@ GhcLibWays = v %{!?ghc_without_shared:dyn} %{!?without_prof:p}
%ifarch %{unregisterised_archs}
GhcUnregisterised=YES
%endif
%ifarch ppc64
GhcWithNativeCodeGen=NO
SplitObjs=NO
GhcRTSWays := debug
GhcNotThreaded=YES
GhcWithInterpreter=NO
%endif
%if %{defined without_haddock}
HADDOCK_DOCS = NO
%endif
@ -432,6 +421,10 @@ fi
%ghost %{ghcdocbasedir}/libraries/minus.gif
%ghost %{ghcdocbasedir}/libraries/plus.gif
%endif
%if %{suse_version} >= 1230
%ghost %{_sysconfdir}/alternatives/hsc2hs
%ghost %{_sysconfdir}/alternatives/runhaskell
%endif
%files libraries
%defattr(-,root,root,-)