[GHC] #13259: cross-endian GHC generates invalid .hi files
GHC
ghc-devs at haskell.org
Thu Feb 9 22:59:40 UTC 2017
#13259: cross-endian GHC generates invalid .hi files
-------------------------------------+-------------------------------------
Reporter: slyfox | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.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:
-------------------------------------+-------------------------------------
I've reproduced the bug in the following setup:
{{{
./configure \
--enable-unregisterised \
--host=x86_64-pc-linux-gnu \
--target=m68k-unknown-linux-gnu
}}}
m68k is a 32-bit big-endian machine.
{{{
$ LD_BIND_NOW=1 inplace/bin/ghc-stage2 --show-iface libraries/base/dist-
install/build/System/IO.hi
Magic: Wanted 129742,
got 3472490752
magic number mismatch: old/corrupt interface file? (wanted 129742, got
3472490752)
$ printf "%08X - %08X\n" 129742 3472490752
0001FACE - CEFA0100
}}}
Reverting changeset:fbcef83a3aa130d976a201f2a21c5afc5a43d000
restores .hi loading and ghc-stage2.
I'm still not sure what exactly breaks.
WORDS_BIGENDIAN looks suspicious.
I guess it breaks ghc-stage1 endianness understanding.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13259>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list