update to ghc-8.0.2
This commit is contained in:
parent
9eb04c2900
commit
6bf3b9f3c5
2
.gitignore
vendored
2
.gitignore
vendored
@ -20,3 +20,5 @@ testsuite-6.12.3.tar.bz2
|
|||||||
/ghc-7.10.3/
|
/ghc-7.10.3/
|
||||||
/ghc-7.10.3b-src.tar.xz
|
/ghc-7.10.3b-src.tar.xz
|
||||||
/ghc-7.10.3b-testsuite.tar.xz
|
/ghc-7.10.3b-testsuite.tar.xz
|
||||||
|
/ghc-8.0.2-testsuite.tar.xz
|
||||||
|
/ghc-8.0.2-src.tar.xz
|
||||||
|
11
ghc-8.0.2-Cabal-dynlibdir.patch
Normal file
11
ghc-8.0.2-Cabal-dynlibdir.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- 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",
|
@ -3,12 +3,12 @@ Description: Do not emit a warning if the .haddock file is missing
|
|||||||
without the -doc package.
|
without the -doc package.
|
||||||
Author: Joachim Breitner <nomeata@debian.org>
|
Author: Joachim Breitner <nomeata@debian.org>
|
||||||
|
|
||||||
Index: ghc-7.10/utils/ghc-pkg/Main.hs
|
Index: ghc-8.0.2/utils/ghc-pkg/Main.hs
|
||||||
===================================================================
|
===================================================================
|
||||||
--- ghc-7.10.orig/utils/ghc-pkg/Main.hs 2015-07-22 11:17:04.787751658 +0200
|
--- ghc-8.0.2.orig/utils/ghc-pkg/Main.hs
|
||||||
+++ ghc-7.10/utils/ghc-pkg/Main.hs 2015-07-22 11:17:04.787751658 +0200
|
+++ ghc-8.0.2/utils/ghc-pkg/Main.hs
|
||||||
@@ -1533,8 +1533,10 @@
|
@@ -1588,8 +1588,10 @@
|
||||||
mapM_ (checkDir True "library-dirs") (libraryDirs pkg)
|
mapM_ (checkDir True "dynamic-library-dirs") (libraryDynDirs pkg)
|
||||||
mapM_ (checkDir True "include-dirs") (includeDirs pkg)
|
mapM_ (checkDir True "include-dirs") (includeDirs pkg)
|
||||||
mapM_ (checkDir True "framework-dirs") (frameworkDirs pkg)
|
mapM_ (checkDir True "framework-dirs") (frameworkDirs pkg)
|
||||||
- mapM_ (checkFile True "haddock-interfaces") (haddockInterfaces pkg)
|
- mapM_ (checkFile True "haddock-interfaces") (haddockInterfaces pkg)
|
||||||
|
39
ghc-Debian-osdecommitmemory-compat.patch
Normal file
39
ghc-Debian-osdecommitmemory-compat.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Description: rts: Ensure we always give MADV_DONTNEED a chance in osDecommitMemory
|
||||||
|
Author: Ben Gamari <bgamari.foss@gmail.com>
|
||||||
|
Origin: upstream, https://phabricator.haskell.org/D2780
|
||||||
|
Bug: https://ghc.haskell.org/trac/ghc/ticket/12865
|
||||||
|
Bug-Debian: https://bugs.debian.org/847677
|
||||||
|
---
|
||||||
|
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||||
|
Index: ghc-8.0.2/rts/posix/OSMem.c
|
||||||
|
===================================================================
|
||||||
|
--- ghc-8.0.2.orig/rts/posix/OSMem.c
|
||||||
|
+++ ghc-8.0.2/rts/posix/OSMem.c
|
||||||
|
@@ -522,11 +522,24 @@
|
||||||
|
|
||||||
|
#ifdef MADV_FREE
|
||||||
|
// Try MADV_FREE first, FreeBSD has both and MADV_DONTNEED
|
||||||
|
- // just swaps memory out
|
||||||
|
+ // 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);
|
||||||
|
+ 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");
|
||||||
|
}
|
@ -4,19 +4,19 @@ up in the resulting binary (in the debug section), but not the directory.
|
|||||||
Instead of using the process id, create a hash from the command line arguments,
|
Instead of using the process id, create a hash from the command line arguments,
|
||||||
and assume that is going to be unique.
|
and assume that is going to be unique.
|
||||||
|
|
||||||
Index: ghc/compiler/main/SysTools.hs
|
Index: ghc-8.0.2/compiler/main/SysTools.hs
|
||||||
===================================================================
|
===================================================================
|
||||||
--- ghc.orig/compiler/main/SysTools.hs 2015-11-02 17:23:05.410365013 +0100
|
--- ghc-8.0.2.orig/compiler/main/SysTools.hs
|
||||||
+++ ghc/compiler/main/SysTools.hs 2015-11-02 17:23:05.410365013 +0100
|
+++ ghc-8.0.2/compiler/main/SysTools.hs
|
||||||
@@ -66,6 +66,7 @@
|
@@ -65,6 +65,7 @@
|
||||||
import Util
|
import Util
|
||||||
import DynFlags
|
import DynFlags
|
||||||
import Exception
|
import Exception
|
||||||
+import Fingerprint
|
+import Fingerprint
|
||||||
|
|
||||||
import Data.IORef
|
import LlvmCodeGen.Base (llvmVersionStr, supportedLlvmVersion)
|
||||||
import Control.Monad
|
|
||||||
@@ -1152,8 +1153,8 @@
|
@@ -1145,8 +1146,8 @@
|
||||||
mapping <- readIORef dir_ref
|
mapping <- readIORef dir_ref
|
||||||
case Map.lookup tmp_dir mapping of
|
case Map.lookup tmp_dir mapping of
|
||||||
Nothing -> do
|
Nothing -> do
|
||||||
@ -27,7 +27,7 @@ Index: ghc/compiler/main/SysTools.hs
|
|||||||
mask_ $ mkTempDir prefix
|
mask_ $ mkTempDir prefix
|
||||||
Just dir -> return dir
|
Just dir -> return dir
|
||||||
where
|
where
|
||||||
@@ -1531,6 +1532,13 @@
|
@@ -1562,6 +1563,13 @@
|
||||||
getProcessID = System.Posix.Internals.c_getpid >>= return . fromIntegral
|
getProcessID = System.Posix.Internals.c_getpid >>= return . fromIntegral
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
27
ghc-Debian-x32-use-native-x86_64-insn.patch
Normal file
27
ghc-Debian-x32-use-native-x86_64-insn.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
Description: Use native x86_64 instructions on x32
|
||||||
|
This patch enables a few native 64-bit integer instructions
|
||||||
|
on x32 which are available on this architecture despite using
|
||||||
|
32-bit pointers. These instructions are present on x86_64 but
|
||||||
|
not on x86 and ghc checks the size of (void *) to determine
|
||||||
|
that. This method fails on x32 since despite using 32-bit
|
||||||
|
pointers and hence sizeof(void *) == 4, it still uses the
|
||||||
|
full x86_64 instruction set and software-emulated variants
|
||||||
|
of the aforementioned 64-bit integer instructions are
|
||||||
|
therefore not present in the toolchain which will make ghc
|
||||||
|
fail to build on x32.
|
||||||
|
See: https://ghc.haskell.org/trac/ghc/ticket/11571
|
||||||
|
.
|
||||||
|
|
||||||
|
Index: ghc-8.0.2/rts/RtsSymbols.c
|
||||||
|
===================================================================
|
||||||
|
--- ghc-8.0.2.orig/rts/RtsSymbols.c
|
||||||
|
+++ ghc-8.0.2/rts/RtsSymbols.c
|
||||||
|
@@ -857,7 +857,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
// 64-bit support functions in libgcc.a
|
||||||
|
-#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
|
||||||
|
+#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32) && !(defined(__x86_64__) && defined(__ILP32__))
|
||||||
|
#define RTS_LIBGCC_SYMBOLS \
|
||||||
|
SymI_NeedsProto(__divdi3) \
|
||||||
|
SymI_NeedsProto(__udivdi3) \
|
188
ghc.spec
188
ghc.spec
@ -1,5 +1,5 @@
|
|||||||
# 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
|
||||||
|
|
||||||
%if %{defined ghc_bootstrapping}
|
%if %{defined ghc_bootstrapping}
|
||||||
%global without_testsuite 1
|
%global without_testsuite 1
|
||||||
@ -14,59 +14,39 @@
|
|||||||
|
|
||||||
Name: ghc
|
Name: ghc
|
||||||
# ghc must be rebuilt after a version bump to avoid ABI change problems
|
# ghc must be rebuilt after a version bump to avoid ABI change problems
|
||||||
Version: 7.10.3
|
Version: 8.0.2
|
||||||
# Since library subpackages are versioned:
|
# Since library subpackages are versioned:
|
||||||
# - 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
|
||||||
# xhtml has not had a new release for some years
|
# xhtml has not had a new release for some years
|
||||||
Release: 55%{?dist}
|
Release: 56%{?dist}
|
||||||
Summary: Glasgow Haskell Compiler
|
Summary: Glasgow Haskell Compiler
|
||||||
|
|
||||||
License: %BSDHaskellReport
|
License: %BSDHaskellReport
|
||||||
URL: https://haskell.org/ghc/
|
URL: https://haskell.org/ghc/
|
||||||
Source0: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}b-src.tar.xz
|
Source0: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.xz
|
||||||
%if %{undefined without_testsuite}
|
%if %{undefined without_testsuite}
|
||||||
Source1: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}b-testsuite.tar.xz
|
Source1: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-testsuite.tar.xz
|
||||||
%endif
|
%endif
|
||||||
Source3: ghc-doc-index.cron
|
Source3: ghc-doc-index.cron
|
||||||
Source4: ghc-doc-index
|
Source4: ghc-doc-index
|
||||||
# absolute haddock path (was for html/libraries -> libraries)
|
# absolute haddock path (was for html/libraries -> libraries)
|
||||||
Patch1: ghc-gen_contents_index-haddock-path.patch
|
Patch1: ghc-gen_contents_index-haddock-path.patch
|
||||||
# Debian patch
|
Patch2: ghc-7.8.3-Cabal-install-PATH-warning.patch
|
||||||
Patch22: ghc-armv7-VFPv3D16--NEON.patch
|
Patch3: ghc-8.0.2-Cabal-dynlibdir.patch
|
||||||
Patch23: ghc-7.8.3-Cabal-install-PATH-warning.patch
|
|
||||||
|
Patch12: ghc-armv7-VFPv3D16--NEON.patch
|
||||||
|
|
||||||
|
# Debian patches:
|
||||||
Patch24: ghc-Debian-buildpath-abi-stability.patch
|
Patch24: ghc-Debian-buildpath-abi-stability.patch
|
||||||
Patch26: ghc-Debian-no-missing-haddock-file-warning.patch
|
Patch26: ghc-Debian-no-missing-haddock-file-warning.patch
|
||||||
Patch27: ghc-Debian-reproducible-tmp-names.patch
|
Patch27: ghc-Debian-reproducible-tmp-names.patch
|
||||||
|
Patch28: ghc-Debian-x32-use-native-x86_64-insn.patch
|
||||||
|
Patch29: ghc-Debian-osdecommitmemory-compat.patch
|
||||||
|
|
||||||
# 7.10.3 needs llvm-3.5
|
# 8.0 needs llvm-3.7
|
||||||
%global llvm_major 3.5
|
%global llvm_major 3.7
|
||||||
|
|
||||||
# use "./libraries-versions.sh" to check versions
|
|
||||||
%global Cabal_ver 1.22.5.0
|
|
||||||
%global array_ver 0.5.1.0
|
|
||||||
%global base_ver 4.8.2.0
|
|
||||||
%global bin_package_db_ver 0.0.0.0
|
|
||||||
%global binary_ver 0.7.5.0
|
|
||||||
%global bytestring_ver 0.10.6.0
|
|
||||||
%global containers_ver 0.5.6.2
|
|
||||||
%global deepseq_ver 1.4.1.1
|
|
||||||
%global directory_ver 1.2.2.0
|
|
||||||
%global filepath_ver 1.4.0.0
|
|
||||||
%global ghc_prim_ver 0.4.0.0
|
|
||||||
%global haskeline_ver 0.7.2.1
|
|
||||||
%global hoopl_ver 3.10.0.2
|
|
||||||
%global hpc_ver 0.6.0.2
|
|
||||||
%global integer_gmp_ver 1.0.0.0
|
|
||||||
%global pretty_ver 1.1.2.0
|
|
||||||
%global process_ver 1.2.3.0
|
|
||||||
%global template_haskell_ver 2.10.0.0
|
|
||||||
%global terminfo_ver 0.4.0.1
|
|
||||||
%global time_ver 1.5.0.1
|
|
||||||
%global transformers_ver 0.4.2.0
|
|
||||||
%global unix_ver 2.7.1.0
|
|
||||||
%global xhtml_ver 3000.2.1
|
|
||||||
|
|
||||||
# fedora ghc has been bootstrapped on
|
# fedora ghc has been bootstrapped on
|
||||||
# %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64
|
# %%{ix86} x86_64 ppc ppc64 armv7hl s390 s390x ppc64le aarch64
|
||||||
@ -91,15 +71,17 @@ BuildRequires: libffi-devel
|
|||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
# for man and docs
|
# for man and docs
|
||||||
BuildRequires: perl
|
BuildRequires: perl
|
||||||
BuildRequires: libxslt, docbook-style-xsl
|
|
||||||
%if %{undefined without_testsuite}
|
%if %{undefined without_testsuite}
|
||||||
BuildRequires: python
|
BuildRequires: python
|
||||||
%endif
|
%endif
|
||||||
%ifarch armv7hl armv5tel
|
%if %{undefined without_manual}
|
||||||
BuildRequires: llvm35
|
BuildRequires: python-sphinx
|
||||||
%endif
|
%endif
|
||||||
%ifarch armv7hl
|
%ifarch armv7hl aarch64
|
||||||
# patch22
|
BuildRequires: llvm%{llvm_major}
|
||||||
|
%endif
|
||||||
|
%ifarch armv7hl aarch64
|
||||||
|
# patch12
|
||||||
BuildRequires: autoconf, automake
|
BuildRequires: autoconf, automake
|
||||||
%endif
|
%endif
|
||||||
Requires: ghc-compiler = %{version}-%{release}
|
Requires: ghc-compiler = %{version}-%{release}
|
||||||
@ -145,8 +127,8 @@ Obsoletes: ghc-doc < 6.12.3-4
|
|||||||
%if %{defined without_haddock}
|
%if %{defined without_haddock}
|
||||||
Obsoletes: ghc-doc-index < %{version}-%{release}
|
Obsoletes: ghc-doc-index < %{version}-%{release}
|
||||||
%endif
|
%endif
|
||||||
%ifarch armv7hl armv5tel
|
%ifarch armv7hl aarch64
|
||||||
Requires: llvm35
|
Requires: llvm%{llvm_major}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description compiler
|
%description compiler
|
||||||
@ -183,36 +165,36 @@ documention.
|
|||||||
|
|
||||||
%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release}
|
%global ghc_pkg_c_deps ghc-compiler = %{ghc_version_override}-%{release}
|
||||||
|
|
||||||
|
# use "./libraries-versions.sh" to check versions
|
||||||
%if %{defined ghclibdir}
|
%if %{defined ghclibdir}
|
||||||
%ghc_lib_subpackage -d Cabal-%{Cabal_ver}
|
%ghc_lib_subpackage -d Cabal-1.24.2.0
|
||||||
%ghc_lib_subpackage -d -l %BSDHaskellReport array-%{array_ver}
|
%ghc_lib_subpackage -d -l %BSDHaskellReport array-0.5.1.1
|
||||||
%define ghc_pkg_obsoletes ghc-haskell98-devel <= 2.0.0.3, ghc-haskell2010-devel <= 1.1.2.0
|
%ghc_lib_subpackage -d -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base-4.9.1.0
|
||||||
%ghc_lib_subpackage -d -l %BSDHaskellReport -c gmp-devel%{?_isa},libffi-devel%{?_isa} base-%{base_ver}
|
%ghc_lib_subpackage -d binary-0.8.3.0
|
||||||
%undefine ghc_pkg_obsoletes
|
%ghc_lib_subpackage -d bytestring-0.10.8.1
|
||||||
%ghc_lib_subpackage -d binary-%{binary_ver}
|
%ghc_lib_subpackage -d -l %BSDHaskellReport containers-0.5.7.1
|
||||||
%ghc_lib_subpackage -d bytestring-%{bytestring_ver}
|
%ghc_lib_subpackage -d -l %BSDHaskellReport deepseq-1.4.2.0
|
||||||
%ghc_lib_subpackage -d -l %BSDHaskellReport containers-%{containers_ver}
|
%ghc_lib_subpackage -d -l %BSDHaskellReport directory-1.3.0.0
|
||||||
%ghc_lib_subpackage -d -l %BSDHaskellReport deepseq-%{deepseq_ver}
|
%ghc_lib_subpackage -d filepath-1.4.1.1
|
||||||
%ghc_lib_subpackage -d -l %BSDHaskellReport directory-%{directory_ver}
|
|
||||||
%ghc_lib_subpackage -d filepath-%{filepath_ver}
|
|
||||||
%define ghc_pkg_obsoletes ghc-bin-package-db-devel < 0.0.0.0-12
|
%define ghc_pkg_obsoletes ghc-bin-package-db-devel < 0.0.0.0-12
|
||||||
# in ghc not ghc-libraries:
|
# in ghc not ghc-libraries:
|
||||||
%ghc_lib_subpackage -d -x ghc-%{ghc_version_override}
|
%ghc_lib_subpackage -d -x ghc-%{ghc_version_override}
|
||||||
%undefine ghc_pkg_obsoletes
|
%undefine ghc_pkg_obsoletes
|
||||||
%ghc_lib_subpackage -d haskeline-%{haskeline_ver}
|
%ghc_lib_subpackage -d ghc-boot-%{ghc_version_override}
|
||||||
%ghc_lib_subpackage -d hoopl-%{hoopl_ver}
|
%ghc_lib_subpackage -d ghc-boot-th-%{ghc_version_override}
|
||||||
%ghc_lib_subpackage -d hpc-%{hpc_ver}
|
%ghc_lib_subpackage -d -x ghci-%{ghc_version_override}
|
||||||
%ghc_lib_subpackage -d pretty-%{pretty_ver}
|
%ghc_lib_subpackage -d haskeline-0.7.3.0
|
||||||
%define ghc_pkg_obsoletes ghc-process-leksah-devel < 1.0.1.4-14
|
%ghc_lib_subpackage -d hoopl-3.10.2.1
|
||||||
%ghc_lib_subpackage -d -l %BSDHaskellReport process-%{process_ver}
|
%ghc_lib_subpackage -d hpc-0.6.0.3
|
||||||
%undefine ghc_pkg_obsoletes
|
%ghc_lib_subpackage -d pretty-1.1.3.3
|
||||||
%ghc_lib_subpackage -d template-haskell-%{template_haskell_ver}
|
%ghc_lib_subpackage -d -l %BSDHaskellReport process-1.4.3.0
|
||||||
%ghc_lib_subpackage -d -c ncurses-devel%{?_isa} terminfo-%{terminfo_ver}
|
%ghc_lib_subpackage -d template-haskell-2.11.1.0
|
||||||
%ghc_lib_subpackage -d time-%{time_ver}
|
%ghc_lib_subpackage -d -c ncurses-devel%{?_isa} terminfo-0.4.0.2
|
||||||
%ghc_lib_subpackage -d transformers-%{transformers_ver}
|
%ghc_lib_subpackage -d time-1.6.0.1
|
||||||
%ghc_lib_subpackage -d unix-%{unix_ver}
|
%ghc_lib_subpackage -d transformers-0.5.2.0
|
||||||
|
%ghc_lib_subpackage -d unix-2.7.2.1
|
||||||
%if %{undefined without_haddock}
|
%if %{undefined without_haddock}
|
||||||
%ghc_lib_subpackage -d xhtml-%{xhtml_ver}
|
%ghc_lib_subpackage -d xhtml-3000.2.1
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -238,22 +220,24 @@ except the ghc library, which is installed by the toplevel ghc metapackage.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-%{version} %{!?without_testsuite:-b1}
|
%setup -q -n %{name}-%{version} %{!?without_testsuite:-b1}
|
||||||
|
|
||||||
# gen_contents_index: use absolute path for haddock
|
|
||||||
%patch1 -p1 -b .orig
|
%patch1 -p1 -b .orig
|
||||||
|
|
||||||
|
%patch2 -p1 -b .orig
|
||||||
|
%patch3 -p1 -b .orig
|
||||||
|
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 6
|
%if 0%{?fedora} || 0%{?rhel} > 6
|
||||||
rm -r libffi-tarballs
|
rm -r libffi-tarballs
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch armv7hl
|
%ifarch armv7hl
|
||||||
%patch22 -p1 -b .orig
|
%patch12 -p1 -b .orig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch23 -p1 -b .orig
|
|
||||||
%patch24 -p1 -b .orig
|
%patch24 -p1 -b .orig
|
||||||
|
|
||||||
%patch26 -p1 -b .orig
|
%patch26 -p1 -b .orig
|
||||||
%patch27 -p1 -b .orig
|
%patch27 -p1 -b .orig
|
||||||
|
%patch28 -p1 -b .orig
|
||||||
|
%patch29 -p1 -b .orig
|
||||||
|
|
||||||
%global gen_contents_index gen_contents_index.orig
|
%global gen_contents_index gen_contents_index.orig
|
||||||
%if %{undefined without_haddock}
|
%if %{undefined without_haddock}
|
||||||
@ -263,22 +247,19 @@ if [ ! -f "libraries/%{gen_contents_index}" ]; then
|
|||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
mv libraries/integer-gmp{,.old}
|
|
||||||
ln -s integer-gmp2 libraries/integer-gmp
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
|
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
|
||||||
# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc
|
# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc
|
||||||
cat > mk/build.mk << EOF
|
cat > mk/build.mk << EOF
|
||||||
%if %{undefined ghc_bootstrapping}
|
%if %{undefined ghc_bootstrapping}
|
||||||
%ifarch armv7hl armv5tel
|
%ifarch armv7hl aarch64
|
||||||
BuildFlavour = perf-llvm
|
BuildFlavour = perf-llvm
|
||||||
%else
|
%else
|
||||||
BuildFlavour = perf
|
BuildFlavour = perf
|
||||||
%endif
|
%endif
|
||||||
%else
|
%else
|
||||||
%ifarch armv7hl armv5tel
|
%ifarch armv7hl aarch64
|
||||||
BuildFlavour = quick-llvm
|
BuildFlavour = quick-llvm
|
||||||
%else
|
%else
|
||||||
BuildFlavour = quick
|
BuildFlavour = quick
|
||||||
@ -288,25 +269,38 @@ GhcLibWays = v dyn %{!?without_prof:p}
|
|||||||
%if %{defined without_haddock}
|
%if %{defined without_haddock}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
%endif
|
%endif
|
||||||
%if %{defined without_manual}
|
EXTRA_HADDOCK_OPTS += --hyperlinked-source
|
||||||
BUILD_DOCBOOK_HTML = NO
|
%if %{undefined without_manual}
|
||||||
|
BUILD_MAN = yes
|
||||||
|
%else
|
||||||
|
BUILD_MAN = no
|
||||||
%endif
|
%endif
|
||||||
|
BUILD_SPHINX_PDF=no
|
||||||
|
EOF
|
||||||
## for verbose build output
|
## for verbose build output
|
||||||
#GhcStage1HcOpts=-v4
|
#GhcStage1HcOpts=-v4
|
||||||
## enable RTS debugging:
|
## enable RTS debugging:
|
||||||
## (http://ghc.haskell.org/trac/ghc/wiki/Debugging/RuntimeSystem)
|
## (http://ghc.haskell.org/trac/ghc/wiki/Debugging/RuntimeSystem)
|
||||||
#EXTRA_HC_OPTS=-debug
|
#EXTRA_HC_OPTS=-debug
|
||||||
EOF
|
|
||||||
|
|
||||||
%ifarch armv7hl
|
%ifarch armv7hl aarch64
|
||||||
autoreconf
|
autoreconf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# still happens when bootstrapping 8.0 with 7.10:
|
||||||
# x86_64: /usr/bin/ld: utils/ghc-pwd/dist-boot/Main.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
|
# x86_64: /usr/bin/ld: utils/ghc-pwd/dist-boot/Main.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
|
||||||
# aarch64: /usr/bin/ld: /usr/lib64/ghc-7.6.3/libHSrts.a(RtsFlags.o)(.text+0x578): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stdout@@GLIBC_2.17'
|
# aarch64: /usr/bin/ld: /usr/lib64/ghc-7.6.3/libHSrts.a(RtsFlags.o)(.text+0x578): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stdout@@GLIBC_2.17'
|
||||||
%ifarch x86_64 armv7hl aarch64 s390x ppc64 ppc64le
|
%ifarch x86_64 armv7hl aarch64 s390x ppc64 ppc64le
|
||||||
%global _hardened_ldflags %{nil}
|
%global _hardened_ldflags %{nil}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%ifnarch aarch64 ppc64 ppc64le
|
||||||
export CFLAGS="${CFLAGS:-%optflags}"
|
export CFLAGS="${CFLAGS:-%optflags}"
|
||||||
|
%else
|
||||||
|
%if %{undefined ghc_bootstrapping}
|
||||||
|
export CFLAGS="${CFLAGS:-%optflags}"
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"
|
export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"
|
||||||
# * %%configure induces cross-build due to different target/host/build platform names
|
# * %%configure induces cross-build due to different target/host/build platform names
|
||||||
# * --with-gcc=%{_bindir}/gcc is to avoid ccache hardcoding problem when bootstrapping
|
# * --with-gcc=%{_bindir}/gcc is to avoid ccache hardcoding problem when bootstrapping
|
||||||
@ -315,7 +309,7 @@ export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"
|
|||||||
--datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
|
--datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} \
|
||||||
--libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \
|
--libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} \
|
||||||
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
--sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} \
|
||||||
--with-gcc=%{_bindir}/gcc \
|
--with-gcc=%{_bindir}/gcc --docdir=%{_docdir}/ghc \
|
||||||
--with-llc=%{_bindir}/llc-%{llvm_major} --with-opt=%{_bindir}/opt-%{llvm_major} \
|
--with-llc=%{_bindir}/llc-%{llvm_major} --with-opt=%{_bindir}/opt-%{llvm_major} \
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 6
|
%if 0%{?fedora} || 0%{?rhel} > 6
|
||||||
--with-system-libffi \
|
--with-system-libffi \
|
||||||
@ -340,10 +334,10 @@ done
|
|||||||
# ghc-base should own ghclibdir
|
# ghc-base should own ghclibdir
|
||||||
echo "%%dir %{ghclibdir}" >> ghc-base.files
|
echo "%%dir %{ghclibdir}" >> ghc-base.files
|
||||||
|
|
||||||
%ghc_gen_filelists bin-package-db %{bin_package_db_ver}
|
|
||||||
%ghc_gen_filelists ghc %{ghc_version_override}
|
%ghc_gen_filelists ghc %{ghc_version_override}
|
||||||
%ghc_gen_filelists ghc-prim %{ghc_prim_ver}
|
%ghc_gen_filelists ghci %{ghc_version_override}
|
||||||
%ghc_gen_filelists integer-gmp %{integer_gmp_ver}
|
%ghc_gen_filelists ghc-prim 0.5.0.0
|
||||||
|
%ghc_gen_filelists integer-gmp 1.0.0.1
|
||||||
|
|
||||||
%define merge_filelist()\
|
%define merge_filelist()\
|
||||||
cat ghc-%1.files >> ghc-%2.files\
|
cat ghc-%1.files >> ghc-%2.files\
|
||||||
@ -353,7 +347,6 @@ echo "%%license libraries/LICENSE.%1" >> ghc-%2.files
|
|||||||
|
|
||||||
%merge_filelist integer-gmp base
|
%merge_filelist integer-gmp base
|
||||||
%merge_filelist ghc-prim base
|
%merge_filelist ghc-prim base
|
||||||
%merge_filelist bin-package-db ghc
|
|
||||||
|
|
||||||
# add rts libs
|
# add rts libs
|
||||||
echo "%%dir %{ghclibdir}/rts" >> ghc-base.files
|
echo "%%dir %{ghclibdir}/rts" >> ghc-base.files
|
||||||
@ -364,7 +357,7 @@ ls %{buildroot}%{ghclibdir}/rts/libffi.so.* >> ghc-base.files
|
|||||||
|
|
||||||
sed -i -e "s|^%{buildroot}||g" ghc-base.files
|
sed -i -e "s|^%{buildroot}||g" ghc-base.files
|
||||||
|
|
||||||
ls -d %{buildroot}%{ghclibdir}/rts/lib*.a %{buildroot}%{ghclibdir}/package.conf.d/builtin_*.conf %{buildroot}%{ghclibdir}/include >> ghc-base-devel.files
|
ls -d %{buildroot}%{ghclibdir}/rts/lib*.a %{buildroot}%{ghclibdir}/package.conf.d/rts.conf %{buildroot}%{ghclibdir}/include >> ghc-base-devel.files
|
||||||
%if 0%{?rhel} && 0%{?rhel} < 7
|
%if 0%{?rhel} && 0%{?rhel} < 7
|
||||||
ls %{buildroot}%{ghclibdir}/rts/libffi.so >> ghc-base-devel.files
|
ls %{buildroot}%{ghclibdir}/rts/libffi.so >> ghc-base-devel.files
|
||||||
%endif
|
%endif
|
||||||
@ -493,11 +486,16 @@ fi
|
|||||||
%{ghclibdir}/bin/ghc-pkg
|
%{ghclibdir}/bin/ghc-pkg
|
||||||
%{ghclibdir}/bin/hpc
|
%{ghclibdir}/bin/hpc
|
||||||
%{ghclibdir}/bin/hsc2hs
|
%{ghclibdir}/bin/hsc2hs
|
||||||
%{ghclibdir}/bin/runghc
|
%{ghclibdir}/bin/ghc-iserv
|
||||||
# unknown (unregisterized) archs
|
%{ghclibdir}/bin/ghc-iserv-dyn
|
||||||
%ifnarch ppc64 s390 s390x ppc64le %{mips} aarch64
|
%if %{undefined without_prof}
|
||||||
%{ghclibdir}/ghc-split
|
%{ghclibdir}/bin/ghc-iserv-prof
|
||||||
%endif
|
%endif
|
||||||
|
%{ghclibdir}/bin/runghc
|
||||||
|
%ifnarch s390 s390x aarch64 %{mips}
|
||||||
|
%{ghclibdir}/bin/ghc-split
|
||||||
|
%endif
|
||||||
|
%{ghclibdir}/bin/unlit
|
||||||
%{ghclibdir}/ghc-usage.txt
|
%{ghclibdir}/ghc-usage.txt
|
||||||
%{ghclibdir}/ghci-usage.txt
|
%{ghclibdir}/ghci-usage.txt
|
||||||
%dir %{ghclibdir}/package.conf.d
|
%dir %{ghclibdir}/package.conf.d
|
||||||
@ -505,8 +503,6 @@ fi
|
|||||||
%{ghclibdir}/platformConstants
|
%{ghclibdir}/platformConstants
|
||||||
%{ghclibdir}/settings
|
%{ghclibdir}/settings
|
||||||
%{ghclibdir}/template-hsc.h
|
%{ghclibdir}/template-hsc.h
|
||||||
%{ghclibdir}/unlit
|
|
||||||
%{_mandir}/man1/ghc.*
|
|
||||||
%dir %{_docdir}/ghc
|
%dir %{_docdir}/ghc
|
||||||
%dir %{ghc_html_dir}
|
%dir %{ghc_html_dir}
|
||||||
%if %{undefined without_haddock}
|
%if %{undefined without_haddock}
|
||||||
@ -517,13 +513,14 @@ fi
|
|||||||
%{ghclibdir}/html
|
%{ghclibdir}/html
|
||||||
%{ghclibdir}/latex
|
%{ghclibdir}/latex
|
||||||
%if %{undefined without_manual}
|
%if %{undefined without_manual}
|
||||||
|
# https://ghc.haskell.org/trac/ghc/ticket/12939
|
||||||
|
#%{_mandir}/man1/ghc.*
|
||||||
## needs pandoc
|
## needs pandoc
|
||||||
#%%{ghc_html_dir}/Cabal
|
#%%{ghc_html_dir}/Cabal
|
||||||
%{ghc_html_dir}/haddock
|
%{ghc_html_dir}/haddock
|
||||||
%{ghc_html_dir}/users_guide
|
%{ghc_html_dir}/users_guide
|
||||||
%endif
|
%endif
|
||||||
%dir %{ghc_html_dir}/libraries
|
%dir %{ghc_html_dir}/libraries
|
||||||
%{ghc_html_dir}/libraries/frames.html
|
|
||||||
%{ghc_html_dir}/libraries/gen_contents_index
|
%{ghc_html_dir}/libraries/gen_contents_index
|
||||||
%{ghc_html_dir}/libraries/hslogo-16.png
|
%{ghc_html_dir}/libraries/hslogo-16.png
|
||||||
%{ghc_html_dir}/libraries/ocean.css
|
%{ghc_html_dir}/libraries/ocean.css
|
||||||
@ -547,6 +544,13 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 17 2017 Jens Petersen <petersen@redhat.com> - 8.0.2-56
|
||||||
|
- update to GHC 8.0 (bootstrap build)
|
||||||
|
- backport changes from http://github.com/fedora-haskell/ghc
|
||||||
|
adding some new patches from Debian
|
||||||
|
- use llvm3.7 on ARM archs
|
||||||
|
- user guide now built with sphinx
|
||||||
|
|
||||||
* Mon Feb 13 2017 Jens Petersen <petersen@redhat.com> - 7.10.3-55
|
* Mon Feb 13 2017 Jens Petersen <petersen@redhat.com> - 7.10.3-55
|
||||||
- use new ghc_lib_subpackage -d option to fix handling of .files
|
- use new ghc_lib_subpackage -d option to fix handling of .files
|
||||||
- configure llc-3.5 and opt-3.5 explicitly for all arch's
|
- configure llc-3.5 and opt-3.5 explicitly for all arch's
|
||||||
|
4
sources
4
sources
@ -1,2 +1,2 @@
|
|||||||
d614735d9dac67432f8c6df7e45c76f7 ghc-7.10.3b-src.tar.xz
|
SHA512 (ghc-8.0.2-src.tar.xz) = 58ea3853cd93b556ecdc4abd0be079b2621171b8491f59004ea4e036a4cba4470aaafe6591b942e0a50a64bdc47540e01fe6900212a1ef7087850112d9bfc5ef
|
||||||
a2df2aaf3424127f0811c42d386c079b ghc-7.10.3b-testsuite.tar.xz
|
SHA512 (ghc-8.0.2-testsuite.tar.xz) = 1b35fc6a5f482dc1e33f21ddf4c4fe17591990f16a4105c787225980a5f4dbaa42205204faf547f8e1b53f6356aefde9d3ff50cc416c9bf1a9ac08feadd74a99
|
||||||
|
Loading…
Reference in New Issue
Block a user