summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <siarheit@google.com>2015-12-31 10:32:40 (GMT)
committerSergei Trofimovich <siarheit@google.com>2015-12-31 10:38:58 (GMT)
commit75851bf930067ae7c57bee3c6feea456534eafed (patch)
treea9a9953eb6fdb3917a9af8c81deb2ac4f650ed04
parent25e4556d97429e95ddb5972f6e7e6599ef902e9c (diff)
downloadghc-75851bf930067ae7c57bee3c6feea456534eafed.zip
ghc-75851bf930067ae7c57bee3c6feea456534eafed.tar.gz
ghc-75851bf930067ae7c57bee3c6feea456534eafed.tar.bz2
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.hsc23
1 files changed, 20 insertions, 3 deletions
diff --git a/libraries/ghci/GHCi/InfoTable.hsc b/libraries/ghci/GHCi/InfoTable.hsc
index 14e1698..0244990 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