diff options
author | Sergei Trofimovich <siarheit@google.com> | 2015-12-31 10:32:40 +0000 |
---|---|---|
committer | Sergei Trofimovich <siarheit@google.com> | 2015-12-31 10:38:58 +0000 |
commit | 75851bf930067ae7c57bee3c6feea456534eafed (patch) | |
tree | a9a9953eb6fdb3917a9af8c81deb2ac4f650ed04 | |
parent | 25e4556d97429e95ddb5972f6e7e6599ef902e9c (diff) | |
download | haskell-75851bf930067ae7c57bee3c6feea456534eafed.tar.gz |
fix ghci build on ArchUnknown targets
Observed failure on ia64 as:
"inplace/bin/hsc2hs" \
... \
--cflag=-Dia64_HOST_ARCH=1 --cflag=-Dlinux_HOST_OS=1 \
... \
libraries/ghci/./GHCi/InfoTable.hsc \
-o libraries/ghci/dist-install/build/GHCi/InfoTable.hs
InfoTable.hsc:84:2: error: #error Unknown architecture
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
-rw-r--r-- | libraries/ghci/GHCi/InfoTable.hsc | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc index 14e16985a7..0244990ae0 100644 --- a/libraries/ghci/GHCi/InfoTable.hsc +++ b/libraries/ghci/GHCi/InfoTable.hsc @@ -56,8 +56,16 @@ type ItblCodes = Either [Word8] [Word32] funPtrToInt :: FunPtr a -> Int funPtrToInt (FunPtr a) = I## (addr2Int## a) -data Arch = ArchSPARC | ArchPPC | ArchX86 | ArchX86_64 | ArchAlpha | ArchARM - | ArchARM64 | ArchPPC64 | ArchPPC64LE +data Arch = ArchSPARC + | ArchPPC + | ArchX86 + | ArchX86_64 + | ArchAlpha + | ArchARM + | ArchARM64 + | ArchPPC64 + | ArchPPC64LE + | ArchUnknown deriving Show platform :: Arch @@ -81,7 +89,11 @@ platform = #elif defined(powerpc64le_HOST_ARCH) ArchPPC64LE #else -#error Unknown architecture +# if defined(TABLES_NEXT_TO_CODE) +# error Unimplemented architecture +# else + ArchUnknown +# endif #endif mkJumpToAddr :: EntryFunPtr -> ItblCodes @@ -245,6 +257,11 @@ mkJumpToAddr a = case platform of 0x618C0000 .|. lo16 w32, 0x7D8903A6, 0x4E800420 ] + -- This code must not be called. You either need to + -- add your architecture as a distinct case or + -- use non-TABLES_NEXT_TO_CODE mode + ArchUnknown -> error "mkJumpToAddr: ArchUnknown is unsupported" + byte0 :: (Integral w) => w -> Word8 byte0 w = fromIntegral w |