bootstrap build to fix hangs on 64bit bigendian
- rts hang patch from Gustavo Luiz Duarte (#989593) - generate and ship library doc index for ghc bundled libraries - build with utf8 encoding (needed for verbose ghc output and makes better sense anyway) - change ghc-cabal to make library html docdirs unversioned
This commit is contained in:
parent
ddf9e36cdc
commit
bf23eb900b
11
ghc-64bit-bigendian-rts-hang-989593.patch
Normal file
11
ghc-64bit-bigendian-rts-hang-989593.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- 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 */ }
|
13
ghc-cabal-unversion-docdir.patch
Normal file
13
ghc-cabal-unversion-docdir.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
--- ghc-7.6.3/utils/ghc-cabal/Main.hs~ 2013-04-19 06:22:47.000000000 +0900
|
||||||
|
+++ ghc-7.6.3/utils/ghc-cabal/Main.hs 2013-10-29 12:35:18.916340631 +0900
|
||||||
|
@@ -180,8 +180,8 @@
|
||||||
|
libsubdir = toPathTemplate "$pkgid",
|
||||||
|
docdir = toPathTemplate $
|
||||||
|
if relocatableBuild
|
||||||
|
- then "$topdir/../doc/html/libraries/$pkgid"
|
||||||
|
- else (myDocdir </> "$pkgid"),
|
||||||
|
+ then "$topdir/../doc/html/libraries/$pkg"
|
||||||
|
+ else (myDocdir </> "$pkg"),
|
||||||
|
htmldir = toPathTemplate "$docdir"
|
||||||
|
}
|
||||||
|
progs = withPrograms lbi
|
53
ghc.spec
53
ghc.spec
@ -2,10 +2,11 @@
|
|||||||
# (disabled for other archs in ghc-rpm-macros)
|
# (disabled for other archs in ghc-rpm-macros)
|
||||||
|
|
||||||
# To bootstrap build a new version of ghc, uncomment the following:
|
# To bootstrap build a new version of ghc, uncomment the following:
|
||||||
#%%global ghc_bootstrapping 1
|
%global ghc_bootstrapping 1
|
||||||
#%%{?ghc_bootstrap}
|
%{?ghc_bootstrap}
|
||||||
#%%global without_testsuite 1
|
%global without_testsuite 1
|
||||||
#%%global without_haddock 1
|
# uncomment to generate haddocks
|
||||||
|
#%%undefine without_haddock
|
||||||
|
|
||||||
# To do a test build instead with shared libs, uncomment the following:
|
# To do a test build instead with shared libs, uncomment the following:
|
||||||
#%%global ghc_bootstrapping 1
|
#%%global ghc_bootstrapping 1
|
||||||
@ -29,7 +30,7 @@ Version: 7.6.3
|
|||||||
# - release can only be reset if *all* library versions get bumped simultaneously
|
# - release can only be reset if *all* library versions get bumped simultaneously
|
||||||
# (sometimes after a major release)
|
# (sometimes after a major release)
|
||||||
# - minor release numbers for a branch should be incremented monotonically
|
# - minor release numbers for a branch should be incremented monotonically
|
||||||
Release: 18%{?dist}
|
Release: 19%{?dist}
|
||||||
Summary: Glasgow Haskell Compiler
|
Summary: Glasgow Haskell Compiler
|
||||||
|
|
||||||
License: %BSDHaskellReport
|
License: %BSDHaskellReport
|
||||||
@ -54,6 +55,10 @@ Patch12: ghc-7.4.2-Cabal-disable-ghci-libs.patch
|
|||||||
Patch13: ghc-llvmCodeGen-empty-array.patch
|
Patch13: ghc-llvmCodeGen-empty-array.patch
|
||||||
# stop warnings about unsupported version of llvm
|
# stop warnings about unsupported version of llvm
|
||||||
Patch14: ghc-7.6.3-LlvmCodeGen-no-3.3-warning.patch
|
Patch14: ghc-7.6.3-LlvmCodeGen-no-3.3-warning.patch
|
||||||
|
# fix hang on ppc64 and s390x
|
||||||
|
Patch15: ghc-64bit-bigendian-rts-hang-989593.patch
|
||||||
|
# unversion library html docdirs
|
||||||
|
Patch16: ghc-cabal-unversion-docdir.patch
|
||||||
|
|
||||||
# fedora ghc has been bootstrapped on
|
# fedora ghc has been bootstrapped on
|
||||||
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
|
# %{ix86} x86_64 ppc alpha sparcv9 ppc64 armv7hl armv5tel s390 s390x
|
||||||
@ -133,8 +138,9 @@ Requires: llvm >= 3.0
|
|||||||
%description compiler
|
%description compiler
|
||||||
The package contains the GHC compiler, tools and utilities.
|
The package contains the GHC compiler, tools and utilities.
|
||||||
|
|
||||||
The ghc libraries are provided by ghc-devel.
|
The ghc libraries are provided by ghc-libraries.
|
||||||
To install all of ghc, install the ghc base package.
|
To install all of ghc (including the ghc library),
|
||||||
|
install the main ghc package.
|
||||||
|
|
||||||
%if %{undefined without_haddock}
|
%if %{undefined without_haddock}
|
||||||
%package doc-index
|
%package doc-index
|
||||||
@ -234,6 +240,21 @@ ln -s $(pkg-config --variable=includedir libffi)/*.h rts/dist/build
|
|||||||
%patch14 -p1 -b .orig
|
%patch14 -p1 -b .orig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# #FIXME: apply to all archs from next version bootstrap
|
||||||
|
%ifarch ppc64 s390x
|
||||||
|
%patch15 -p1 -b .orig
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%patch16 -p1 -b .orig
|
||||||
|
|
||||||
|
%global gen_contents_index gen_contents_index.orig
|
||||||
|
%if %{undefined without_haddock}
|
||||||
|
if [ ! -f "libraries/%{gen_contents_index}" ]; then
|
||||||
|
echo "Missing libraries/%{gen_contents_index}, needed at end of %%install!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
|
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
|
||||||
@ -253,6 +274,8 @@ HADDOCK_DOCS = NO
|
|||||||
%if %{defined without_manual}
|
%if %{defined without_manual}
|
||||||
BUILD_DOCBOOK_HTML = NO
|
BUILD_DOCBOOK_HTML = NO
|
||||||
%endif
|
%endif
|
||||||
|
# for verbose build output
|
||||||
|
#GhcStage1HcOpts=-v4
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
export CFLAGS="${CFLAGS:-%optflags}"
|
export CFLAGS="${CFLAGS:-%optflags}"
|
||||||
@ -264,7 +287,8 @@ export CFLAGS="${CFLAGS:-%optflags}"
|
|||||||
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
||||||
--with-gcc=%{_bindir}/gcc
|
--with-gcc=%{_bindir}/gcc
|
||||||
|
|
||||||
make %{?_smp_mflags}
|
# utf8 is needed when building with verbose output
|
||||||
|
LANG=en_US.utf8 make %{?_smp_mflags}
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -320,6 +344,11 @@ mkdir -p %{buildroot}%{_sysconfdir}/cron.hourly
|
|||||||
install -p --mode=0755 %SOURCE3 %{buildroot}%{_sysconfdir}/cron.hourly/ghc-doc-index
|
install -p --mode=0755 %SOURCE3 %{buildroot}%{_sysconfdir}/cron.hourly/ghc-doc-index
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/ghc
|
mkdir -p %{buildroot}%{_localstatedir}/lib/ghc
|
||||||
install -p --mode=0755 %SOURCE4 %{buildroot}%{_bindir}/ghc-doc-index
|
install -p --mode=0755 %SOURCE4 %{buildroot}%{_bindir}/ghc-doc-index
|
||||||
|
|
||||||
|
# generate initial lib doc index
|
||||||
|
cd libraries
|
||||||
|
sh %{gen_contents_index} --intree --verbose
|
||||||
|
cd ..
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
@ -446,6 +475,14 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Oct 29 2013 Jens Petersen <petersen@redhat.com> - 7.6.3-19
|
||||||
|
- fix rts hang on 64bit bigendian archs (patch by Gustavo Luiz Duarte, #989593)
|
||||||
|
- generate and ship library doc index for ghc bundled libraries
|
||||||
|
- build with utf8 encoding (needed for verbose ghc output
|
||||||
|
and makes better sense anyway)
|
||||||
|
- change ghc-cabal to make library html docdirs unversioned
|
||||||
|
- bootstrap build
|
||||||
|
|
||||||
* Sat Jul 27 2013 Jóhann B. Guðmundsson <johannbg@fedoraproject.org> - 7.6.3-18
|
* Sat Jul 27 2013 Jóhann B. Guðmundsson <johannbg@fedoraproject.org> - 7.6.3-18
|
||||||
- ghc-doc-index requires crontabs and mark cron file config noreplace
|
- ghc-doc-index requires crontabs and mark cron file config noreplace
|
||||||
(http://fedoraproject.org/wiki/Packaging:CronFiles)
|
(http://fedoraproject.org/wiki/Packaging:CronFiles)
|
||||||
|
Loading…
Reference in New Issue
Block a user