diff -Nru ghc-8.0.1/debian/changelog ghc-8.0.1/debian/changelog --- ghc-8.0.1/debian/changelog 2016-12-15 04:10:26.000000000 +0000 +++ ghc-8.0.1/debian/changelog 2016-12-17 02:44:45.000000000 +0000 @@ -1,3 +1,9 @@ +ghc (8.0.1-17) unstable; urgency=medium + + * Add upstream patch "Add relocation type R_X86_64_REX_GOTPCRELX". + + -- Clint Adams Fri, 16 Dec 2016 21:44:45 -0500 + ghc (8.0.1-16) unstable; urgency=medium * Patch to fix SMP support enablement on armhf. diff -Nru ghc-8.0.1/debian/patches/R_X86_64_REX_GOTPCRELX ghc-8.0.1/debian/patches/R_X86_64_REX_GOTPCRELX --- ghc-8.0.1/debian/patches/R_X86_64_REX_GOTPCRELX 1970-01-01 00:00:00.000000000 +0000 +++ ghc-8.0.1/debian/patches/R_X86_64_REX_GOTPCRELX 2016-12-17 02:43:41.000000000 +0000 @@ -0,0 +1,45 @@ +From 0d963caf40da4391028a3beb95b5082c87985e7d Mon Sep 17 00:00:00 2001 +From: Tamar Christina +Date: Sun, 5 Jun 2016 09:59:05 +0200 +Subject: [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 + +Differential Revision: https://phabricator.haskell.org/D2303 + +GHC Trac Issues: #12147 +--- + rts/Linker.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/rts/Linker.c ++++ b/rts/Linker.c +@@ -5855,7 +5855,13 @@ + *(Elf64_Sword *)P = (Elf64_Sword)value; + #endif + break; +- ++/* These two relocations were introduced in glibc 2.23 and binutils 2.26. ++ But in order to use them the system which compiles the bindist for GHC needs ++ to have glibc >= 2.23. So only use them if they're defined. */ ++#if defined(R_X86_64_REX_GOTPCRELX) && defined(R_X86_64_GOTPCRELX) ++ case R_X86_64_REX_GOTPCRELX: ++ case R_X86_64_GOTPCRELX: ++#endif + case R_X86_64_GOTPCREL: + { + StgInt64 gotAddress = (StgInt64) &makeSymbolExtra(oc, ELF_R_SYM(info), S)->addr; diff -Nru ghc-8.0.1/debian/patches/series ghc-8.0.1/debian/patches/series --- ghc-8.0.1/debian/patches/series 2016-12-15 04:09:12.000000000 +0000 +++ ghc-8.0.1/debian/patches/series 2016-12-17 02:43:34.000000000 +0000 @@ -14,3 +14,4 @@ fix-ppc-lwa-generation osdecommitmemory-compat.patch smp-arm-fix.patch +R_X86_64_REX_GOTPCRELX