Package: ghc / 8.0.1-17

Metadata

Package Version Patches format
ghc 8.0.1-17 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
use debian gen_contents_index | (download)

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

---
ARM VFPv3D16 | (download)

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
no missing haddock file warning | (download)

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.
hurd.diff | (download)

aclocal.m4 | 5 4 + 1 - 0 !
compiler/utils/Platform.hs | 2 2 + 0 - 0 !
2 files changed, 6 insertions(+), 1 deletion(-)

---
buildpath abi stability.patch | (download)

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

---
reproducible tmp names | (download)

compiler/main/SysTools.hs | 12 10 + 2 - 0 !
1 file changed, 10 insertions(+), 2 deletions(-)

---
do not use SHELL | (download)

driver/ghci/ghc.mk | 4 2 + 2 - 0 !
rules/shell-wrapper.mk | 6 3 + 3 - 0 !
utils/mkdirhier/ghc.mk | 2 1 + 1 - 0 !
3 files changed, 6 insertions(+), 6 deletions(-)

 do not use $shell
 as $SHELL is the user's preferred interactive shell. We do not want this to
 leak into the wrapper scripts.
add missing MO_WriteBarrier | (download)

compiler/codeGen/StgCmmPrim.hs | 7 5 + 2 - 0 !
1 file changed, 5 insertions(+), 2 deletions(-)

 stgcmmprim: add missing mo_writebarrier
no pie | (download)

aclocal.m4 | 21 21 + 0 - 0 !
compiler/main/DriverPipeline.hs | 10 10 + 0 - 0 !
compiler/main/DynFlags.hs | 1 1 + 0 - 0 !
compiler/main/SysTools.hs | 15 15 + 0 - 0 !
configure | 20 20 + 0 - 0 !
configure.ac | 3 3 + 0 - 0 !
distrib/configure.ac.in | 1 1 + 0 - 0 !
settings.in | 1 1 + 0 - 0 !
8 files changed, 72 insertions(+)

 pass -no-pie to gcc
 Certain distributions (e.g. Debian and Ubuntu) have enabled PIE be
 default in their GCC packaging. This breaks our abuse of GCC as a linker
 which requires that we pass -Wl,-r, which is incompatible with
 PIE (since the former implies that we are generating a relocatable
 object file and the latter an executable).
find tycon panic | (download)

compiler/rename/RnPat.hs | 7 4 + 3 - 0 !
1 file changed, 4 insertions(+), 3 deletions(-)

 avoid find_tycon panic if datacon is not in scope

When using TH to splice expressions involving record field construction,
the parent datacon may not be in scope.  We shouldn't panic about this,
because we will be renaming Exact RdrNames which don't require any
disambiguation.

Reviewers: austin, bgamari
Reviewed By: bgamari
compiler cmm PprC sparc alignment.patch | (download)

compiler/cmm/PprC.hs | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

---
get linker flags correctly | (download)

libraries/Cabal/Cabal/Distribution/Simple/GHC/Internal.hs | 6 4 + 2 - 0 !
1 file changed, 4 insertions(+), 2 deletions(-)

 [patch] =?utf8?q?get=20linker=20flags=20correctly=20from=20ghc=20?=
 =?utf8?q?=E2=89=A5=207.8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

GHC 7.8 renamed "Gcc Linker flags" to "C compiler link flags" and "Ld
Linker flags" to "ld flags"
(https://ghc.haskell.org/trac/ghc/ticket/4862).

Without this corresponding fix in Cabal, the old-time package fails to
compile on Ubuntu yakkety amd64, where the system GCC now defaults to
-pie and GHC has

    $ ghc --info | grep -i pie
     ,("C compiler flags","-fno-PIE -fno-stack-protector")
     ,("C compiler link flags","-no-pie")
     ,("ld flags","-no-pie")

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
(cherry picked from commit c993a0c6660aa10d8c79ed0cc4961c59acfc91c8)

x32 use native x86_64 insn.patch | (download)

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.
 See: https://ghc.haskell.org/trac/ghc/ticket/11571
 .


fix ppc lwa generation | (download)

compiler/nativeGen/PPC/CodeGen.hs | 16 12 + 4 - 0 !
1 file changed, 12 insertions(+), 4 deletions(-)

 [patch] ppc/codegen: fix lwa instruction generation

Opcode lwa is a 64-bit opcode and allows a DS-form only.  This patch
generates lwa opcodes only when the offset is a multiple of 4.

Fixes #12621

Test Plan: validate

Reviewers: erikd, hvr, simonmar, austin, bgamari

Reviewed By: bgamari

Subscribers: thomie

osdecommitmemory compat.patch | (download)

rts/posix/OSMem.c | 19 16 + 3 - 0 !
1 file changed, 16 insertions(+), 3 deletions(-)

 rts: ensure we always give madv_dontneed a chance in osdecommitmemory
smp arm fix.patch | (download)

mk/config.mk.in | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
R_X86_64_REX_GOTPCRELX | (download)

rts/Linker.c | 8 7 + 1 - 0 !
1 file changed, 7 insertions(+), 1 deletion(-)

 [patch] add relocation type r_x86_64_rex_gotpcrelx

Summary:
Adding support for the `R_X86_64_REX_GOTPCRELX` relocation type.
This relocation is treated by the linker the same as the `R_X86_64_GOTPCRELX` type
`G + GOT + A - P` to generate relative offsets to the GOT.
The `REX` prefix has no influence in this stage.

This is based on https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r252.pdf

Test Plan: ./validate

Reviewers: erikd, austin, bgamari, simonmar

Reviewed By: erikd

Subscribers: thomie, #ghc_windows_task_force