Re: Bug#807777: ghc: Please adjust linker options for sparc64 (patch supplied)
On 12/13/2015 12:32 PM, John Paul Adrian Glaubitz wrote:
> I am about to file an upstream bug report in ghc so upstream can
> develop a proper fix similar to the older fix for sparc [2].
Attaching a proposed fix which I have also posted upstream [1].
Cheers,
Adrian
> [1] https://ghc.haskell.org/trac/ghc/ticket/11211
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Description: Add initial platform support for sparc64
This patch adds initial platform support for sparc64 by
mapping sparc64 to "ArchSPARC64" instead of "ArchUnknown"
in aclocal.m4. Additionally, it adds "ArchSPARC64" to the
list of known platforms in compiler/utils/Platform.hs
and patches compiler/main/DriverPipeline.hs to explicitly
pass -no-relax to gcc. See upstream ticket #11211 and
Debian bug #807777.
.
--- ghc-7.10.3.orig/aclocal.m4
+++ ghc-7.10.3/aclocal.m4
@@ -193,6 +193,10 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
sparc)
test -z "[$]2" || eval "[$]2=ArchSPARC"
;;
+ sparc64)
+ test -z "[$]2" || eval "[$]2=ArchSPARC"
+ ;;
+
arm)
GET_ARM_ISA()
test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT, armABI = \$ARM_ABI}\""
@@ -209,7 +213,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_V
mipsel)
test -z "[$]2" || eval "[$]2=ArchMipsel"
;;
- hppa|hppa1_1|ia64|m68k|powerpc64le|rs6000|s390|s390x|sh4|sparc64|vax)
+ hppa|hppa1_1|ia64|m68k|powerpc64le|rs6000|s390|s390x|sh4|vax)
test -z "[$]2" || eval "[$]2=ArchUnknown"
;;
*)
--- ghc-7.10.3.orig/compiler/main/DriverPipeline.hs
+++ ghc-7.10.3/compiler/main/DriverPipeline.hs
@@ -2208,6 +2208,7 @@ joinObjectFiles dflags o_files output_fn
-- -r and --relax are incompatible for ld, so
-- disable --relax explicitly.
++ (if platformArch (targetPlatform dflags) == ArchSPARC
+ || platformArch (targetPlatform dflags) == ArchSPARC64
&& ldIsGnuLd
then [SysTools.Option "-Wl,-no-relax"]
else [])
--- ghc-7.10.3.orig/compiler/utils/Platform.hs
+++ ghc-7.10.3/compiler/utils/Platform.hs
@@ -48,6 +48,7 @@ data Arch
| ArchPPC
| ArchPPC_64
| ArchSPARC
+ | ArchSPARC64
| ArchARM
{ armISA :: ArmISA
, armISAExt :: [ArmISAExt]
Reply to: