Package: ghc / 8.8.4-2

Package Version Patches format
ghc 8.8.4-2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description

ghc.mk | 8 1 + 7 - 0 !
1 file changed, 1 insertion(+), 7 deletions(-)

---

aclocal.m4 | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 use vfpv3-d16 fpu for arm builds
Jani writes: The D16 part was Debian/Ubuntu specific, IIRC we define hardfloat


utils/ghc-pkg/Main.hs | 6 4 + 2 - 0 !
1 file changed, 4 insertions(+), 2 deletions(-)

 do not emit a warning if the .haddock file is missing
As it is quite common on Debian installations to install the -dev package
without the -doc package.


compiler/iface/MkIface.hs | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

---

rts/RtsSymbols.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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.
.



ghc.mk | 8 6 + 2 - 0 !
1 file changed, 6 insertions(+), 2 deletions(-)

 use the stage1 binaries for install
In order to be able to perform a cross-build, we need to use
the stage1 binaries during installation. Both ghc and ghc-pkg
are run during the install target and therefore must be able
to run on the build machine.
.


aclocal.m4 | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

 add kfreebsdgnu to ghc_convert_os in aclocal.m4


docs/users_guide/conf.py | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---

includes/stg/MiscClosures.h | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 allow unregisterised ghc-8.6 to build newer ghc
Commit af9b744bbf1 introduced a regression stopping existing unregisterised
compilers from being able to compile newer versions of GHC. The problem is
that the bootstrap compiler uses the newer includes/stg/MiscClosures.h file
where some defines have been renamed, resulting in the following error:
.
error: ‘stg_atomicModifyMutVarzh’ undeclared (first use in this function); did you mean ‘stg_atomicModifyMutVar2zh’?
.
.
This patch can be removed, once ghc-8.6 is no longer the bootstrap compiler.


configure.ac | 2 1 + 1 - 0 !
llvm-targets | 28 14 + 14 - 0 !
2 files changed, 15 insertions(+), 15 deletions(-)

 use llvm 9
Backport commits 8c5cb80698 and 8e5851f070 to use LLVM 9.



llvm-targets | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 llvm-targets: add arm-unknown-linux-gnueabi
Add arm-unknown-linux-gnueabi, which is used by Debian's ARM EABI port
(armel), as an LLVM target.


libraries/ghc-prim/cbits/atomic.c | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 do not define hs_atomic{read,write}64() on non-64bit


libraries/base/GHC/ByteOrder.hs | 3 3 + 0 - 0 !
libraries/base/GHC/IO/Encoding/CodePage/API.hs | 3 3 + 0 - 0 !
2 files changed, 6 insertions(+)

 [patch] fix endian handling w.r.t. cpp macro words_bigendian

Include header file ghcautoconf.h where the CPP macro
WORDS_BIGENDIAN is defined. This finally fixes #17337 (in conjunction
with commit 6c59cc71dc).



libraries/base/GHC/ByteOrder.hs | 2 1 + 1 - 0 !
libraries/base/GHC/IO/Encoding/CodePage/API.hs | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

 [patch] fixup! fix endian handling w.r.t. cpp macro words_bigendian



1 file changed, 2 insertions(+), 2 deletions(-)

 remove hard-coded googleapis font url
Bug-Debian: https://bugs.debian.org/963690



compiler/deSugar/DsForeign.hs | 33 28 + 5 - 0 !
1 file changed, 28 insertions(+), 5 deletions(-)

 [patch] ffi: fix pass small ints in foreign call wrappers

The Haskell calling convention requires integer parameters smaller
than wordsize to be promoted to wordsize (where the upper bits are
don't care). To access such small integer parameter read a word from
the parameter array and then cast that word to the small integer
target type.

Fixes #15933