[GHC] #11211: Please add initial platform support for sparc64
GHC
ghc-devs at haskell.org
Sun Dec 13 14:56:43 UTC 2015
#11211: Please add initial platform support for sparc64
----------------------------------------+------------------------------
Reporter: glaubitz | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.2
Resolution: | Keywords:
Operating System: Linux | Architecture: Other
Type of failure: Building GHC failed | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
----------------------------------------+------------------------------
Description changed by nomeata:
Old description:
> Hello!
>
> I have successfully bootstrapped ghc for sparc64 on Debian unstable by
> cross-compiling it on amd64, then installing it manually into a build
> root and rebuild the Debian package.
>
> Unfortunately, the buildds can currently neither compile ghc itself nor
> any Haskell packages as gcc always passes "-relax" to the GNU linker
> which will fail as ghc passes "-Wl,-r" [1]:
>
> "/usr/bin/ghc" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -lffi
> -optl-pthread -package-db libraries/bootstrapping.conf -this-package-
> key termi_6iVf4EBnOgfIaaOCLRs8jl -hide-all-packages -i
> -ilibraries/terminfo/. -ilibraries/terminfo/dist-boot/build
> -ilibraries/terminfo/dist-boot/build/autogen -Ilibraries/terminfo/dist-
> boot/build -Ilibraries/terminfo/dist-boot/build/autogen
> -Ilibraries/terminfo/. -optP-include -optPlibraries/terminfo/dist-
> boot/build/autogen/cabal_macros.h -package-key
> base_HQfYBxpPvuw8OunzQu6JGM -Wall -XHaskell2010 -no-user-package-db
> -rtsopts -odir libraries/terminfo/dist-boot/build -hidir
> libraries/terminfo/dist-boot/build -stubdir libraries/terminfo/dist-
> boot/build -c libraries/terminfo/./System/Console/Terminfo/Base.hs -o
> libraries/terminfo/dist-boot/build/System/Console/Terminfo/Base.o
> /usr/bin/ld: --relax and -r may not be used together
> collect2: error: ld returned 1 exit status
> make[3]: *** [libraries/terminfo/dist-
> boot/build/System/Console/Terminfo/Base.o] Error 1
> libraries/terminfo/ghc.mk:3: recipe for target 'libraries/terminfo/dist-
> boot/build/System/Console/Terminfo/Base.o' failed
>
> This issue has already been fixed in ghc but that was for sparc only and
> not sparc64 [2].
>
> Thus, in order to be able to apply the same fix from [2], ghc needs to
> add sparc64 to its list of known architectures (currently "sparc64"
> matches to "ArchUnknown" in aclocal.m4") and then extend the fix from [2]
> to match *both* sparc *and* sparc64 (please don't drop sparc here).
>
> In particular, I suggest adding sparc64 in the same way that Alpha,
> Mipseb and Mipsel were added [3], thus matching "sparc64" to
> "ArchSPARC64", then extending the if-clause from [4] to set "-Wl,-no-
> relax" for *both* ArchSPARC *and* ArchSPARC64.
>
> Thanks,
> Adrian
>
> > [1]
> https://buildd.debian.org/status/fetch.php?pkg=ghc&arch=sparc64&ver=7.10.3-3&stamp=1449983921
> > [2] https://ghc.haskell.org/trac/ghc/ticket/3791
> > [3]
> https://git.haskell.org/ghc.git/commitdiff/9756690fe7aa26aee6955d0b720377d53170c542
> > [4]
> https://git.haskell.org/ghc.git/commitdiff/3b322660f82d0c7c4f7d02523367ebd0e34c5287
New description:
Hello!
I have successfully bootstrapped ghc for sparc64 on Debian unstable by
cross-compiling it on amd64, then installing it manually into a build root
and rebuild the Debian package.
Unfortunately, the buildds can currently neither compile ghc itself nor
any Haskell packages as gcc always passes "-relax" to the GNU linker which
will fail as ghc passes "-Wl,-r" (1):
{{{
"/usr/bin/ghc" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -lffi -optl-
pthread -package-db libraries/bootstrapping.conf -this-package-key
termi_6iVf4EBnOgfIaaOCLRs8jl -hide-all-packages -i -ilibraries/terminfo/.
-ilibraries/terminfo/dist-boot/build -ilibraries/terminfo/dist-
boot/build/autogen -Ilibraries/terminfo/dist-boot/build
-Ilibraries/terminfo/dist-boot/build/autogen -Ilibraries/terminfo/.
-optP-include -optPlibraries/terminfo/dist-
boot/build/autogen/cabal_macros.h -package-key base_HQfYBxpPvuw8OunzQu6JGM
-Wall -XHaskell2010 -no-user-package-db -rtsopts -odir
libraries/terminfo/dist-boot/build -hidir libraries/terminfo/dist-
boot/build -stubdir libraries/terminfo/dist-boot/build -c
libraries/terminfo/./System/Console/Terminfo/Base.hs -o libraries/terminfo
/dist-boot/build/System/Console/Terminfo/Base.o
/usr/bin/ld: --relax and -r may not be used together
collect2: error: ld returned 1 exit status
make[3]: *** [libraries/terminfo/dist-
boot/build/System/Console/Terminfo/Base.o] Error 1
libraries/terminfo/ghc.mk:3: recipe for target 'libraries/terminfo/dist-
boot/build/System/Console/Terminfo/Base.o' failed
}}}
This issue has already been fixed in ghc but that was for sparc only and
not sparc64 (2).
Thus, in order to be able to apply the same fix from (2), ghc needs to add
sparc64 to its list of known architectures (currently "sparc64" matches to
"ArchUnknown" in aclocal.m4") and then extend the fix from (2) to match
*both* sparc *and* sparc64 (please don't drop sparc here).
In particular, I suggest adding sparc64 in the same way that Alpha, Mipseb
and Mipsel were added (3), thus matching "sparc64" to "ArchSPARC64", then
extending the if-clause from (4) to set "-Wl,-no-relax" for *both*
ArchSPARC *and* ArchSPARC64.
Thanks,
Adrian
* (1)
https://buildd.debian.org/status/fetch.php?pkg=ghc&arch=sparc64&ver=7.10.3-3&stamp=1449983921
* (2) https://ghc.haskell.org/trac/ghc/ticket/3791
* (3)
https://git.haskell.org/ghc.git/commitdiff/9756690fe7aa26aee6955d0b720377d53170c542
* (4)
https://git.haskell.org/ghc.git/commitdiff/3b322660f82d0c7c4f7d02523367ebd0e34c5287
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11211#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list