[GHC] #12193: Include target versions of unlit and hsc2hs when cross-compiling
GHC
ghc-devs at haskell.org
Wed Jun 15 12:55:30 UTC 2016
#12193: Include target versions of unlit and hsc2hs when cross-compiling
-------------------------------------+-------------------------------------
Reporter: glaubitz | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Hello!
I have been working on getting ghc packaged on Debian for m68k and sh4.
While ghc itself works without any major issues on these targets, the
performance is a bit too low to just build ghc from sources on the
machines itself. It works, but it may take up to three weeks or more.
To workaround this problem, I am using a cross-compiled version of ghc on
these platforms which works quite well. However, while using the cross-
compiled Debian ghc packaged, I noticed that some packages fail to build
from source because my cross-compiled version of ghc is missing the
"unlit" utility.
Looking at the result of the cross-compiled ghc for m68k, it's obvious why
unlit is missing:
{{{
glaubitz at ikarus:~/debian/ghc/ghc-8.0.1$ file ./inplace/lib/bin/*
./inplace/lib/bin/ghc-iserv: ELF 32-bit MSB executable, Motorola
m68k, 68020, version 1 (SYSV), dynamically linked, interpreter
/lib/ld.so.1, for GNU/Linux 3.2.0,
BuildID[sha1]=39f595d60d0c596714aa0fedcc0bfa3a35921c41, not stripped
./inplace/lib/bin/ghc-iserv-prof: ELF 32-bit MSB executable, Motorola
m68k, 68020, version 1 (SYSV), dynamically linked, interpreter
/lib/ld.so.1, for GNU/Linux 3.2.0,
BuildID[sha1]=f83f10fc7d925f54fb18816384ae91ae6c1b9ac8, not stripped
./inplace/lib/bin/ghc-pkg: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked, interpreter /lib64/ld-
linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=41d534ca0e83df11274eade67477db1e9667fec5, not stripped
./inplace/lib/bin/ghc-stage1: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked, interpreter /lib64/ld-
linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=089a2121e49e16ea7ba721c350b04a965b19dded, not stripped
./inplace/lib/bin/ghc-stage2: ELF 32-bit MSB executable, Motorola
m68k, 68020, version 1 (SYSV), dynamically linked, interpreter
/lib/ld.so.1, for GNU/Linux 3.2.0,
BuildID[sha1]=589cdca9242bd132e1c80736a79ebf4209eb1c78, not stripped
./inplace/lib/bin/hpc: ELF 32-bit MSB executable, Motorola
m68k, 68020, version 1 (SYSV), dynamically linked, interpreter
/lib/ld.so.1, for GNU/Linux 3.2.0,
BuildID[sha1]=f401ba499a4cf865def36a7dc6d7c3a32385c85f, not stripped
./inplace/lib/bin/hsc2hs: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked, interpreter /lib64/ld-
linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=a532a7cc6f0c1e95e7c66aab2b4c53e1d0b58d88, not stripped
./inplace/lib/bin/unlit: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked, interpreter /lib64/ld-
linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=30ab37170ddcb09bcb7885ae3c18a353f6d128b7, not stripped
glaubitz at ikarus:~/debian/ghc/ghc-8.0.1$
}}}
Thus, both "unlit" and "hsc2hs" are not built for the target architecture
when cross-compiling. After a quick look at utils/unlit/ghc.mk, it becomes
obvious why that's the case:
{{{
$(eval $(call build-prog,utils/unlit,dist,0))
}}}
Would it be possible to change the build configuration such that "unlit"
and "hsc2hs" are built for the target as well when cross-compiling? That
would be great :).
Adrian
[1] [https://buildd.debian.org/status/fetch.php?pkg=haskell-
fmlist&arch=m68k&ver=0.9-4&stamp=1465990971]
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12193>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list