summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2011-10-19 13:32:11 +0100
committerIan Lynagh <igloo@earth.li>2011-10-19 14:10:21 +0100
commit38c8b565ff8d8011e26af8ae4b03800ca29d3f38 (patch)
tree4c39b6a15d61bc551845d4e1423b28995e1a6257
parent013a3e3b79a86e377c6c94b34f6313d58363c6b3 (diff)
downloadhaskell-38c8b565ff8d8011e26af8ae4b03800ca29d3f38.tar.gz
Put the target platform in the settings file
-rw-r--r--aclocal.m4224
-rw-r--r--compiler/HsVersions.h1
-rw-r--r--compiler/main/DynFlags.hs7
-rw-r--r--compiler/main/SysTools.lhs13
-rw-r--r--compiler/utils/Platform.hs82
-rw-r--r--compiler/utils/Util.lhs7
-rw-r--r--configure.ac5
-rw-r--r--distrib/configure.ac.in5
-rw-r--r--includes/Stg.h2
-rw-r--r--includes/stg/ArchSpecific.h30
-rw-r--r--settings.in5
11 files changed, 209 insertions, 172 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index c8c125a228..df511677d5 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -101,9 +101,81 @@ AC_DEFUN([FPTOOLS_SET_PLATFORM_VARS],
;;
esac
+ BuildPlatform="$BuildArch-$BuildVendor-$BuildOS"
+ BuildPlatform_CPP=`echo "$BuildPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ BuildArch_CPP=` echo "$BuildArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ BuildVendor_CPP=` echo "$BuildVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ BuildOS_CPP=` echo "$BuildOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
+
+ HostPlatform="$HostArch-$HostVendor-$HostOS"
+ HostPlatform_CPP=`echo "$HostPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ HostArch_CPP=` echo "$HostArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ HostVendor_CPP=` echo "$HostVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ HostOS_CPP=` echo "$HostOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
+
+ TargetPlatform="$TargetArch-$TargetVendor-$TargetOS"
+ TargetPlatform_CPP=`echo "$TargetPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ TargetArch_CPP=` echo "$TargetArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ TargetVendor_CPP=` echo "$TargetVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
+ TargetOS_CPP=` echo "$TargetOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
+
+ echo "GHC build : $BuildPlatform"
+ echo "GHC host : $HostPlatform"
+ echo "GHC target : $TargetPlatform"
+
+ AC_SUBST(BuildPlatform)
+ AC_SUBST(HostPlatform)
+ AC_SUBST(TargetPlatform)
+ AC_SUBST(HostPlatform_CPP)
+ AC_SUBST(BuildPlatform_CPP)
+ AC_SUBST(TargetPlatform_CPP)
+
+ AC_SUBST(HostArch_CPP)
+ AC_SUBST(BuildArch_CPP)
+ AC_SUBST(TargetArch_CPP)
+
+ AC_SUBST(HostOS_CPP)
+ AC_SUBST(BuildOS_CPP)
+ AC_SUBST(TargetOS_CPP)
+
+ AC_SUBST(HostVendor_CPP)
+ AC_SUBST(BuildVendor_CPP)
+ AC_SUBST(TargetVendor_CPP)
+
+ AC_SUBST(exeext)
+ AC_SUBST(soext)
+])
+
+
+# FPTOOLS_SET_HASKELL_PLATFORM_VARS
+# ----------------------------------
+# Set the Haskell platform variables
+AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
+[
checkArch() {
case [$]1 in
- alpha|arm|hppa|hppa1_1|i386|ia64|m68k|mips|mipseb|mipsel|powerpc|powerpc64|rs6000|s390|s390x|sparc|sparc64|vax|x86_64)
+ i386)
+ test -z "[$]2" || eval "[$]2=ArchX86"
+ ;;
+ x86_64)
+ GET_ARM_ISA()
+ test -z "[$]2" || eval "[$]2=ArchX86_64"
+ ;;
+ powerpc)
+ test -z "[$]2" || eval "[$]2=ArchPPC"
+ ;;
+ powerpc64)
+ test -z "[$]2" || eval "[$]2=ArchPPC_64"
+ ;;
+ sparc)
+ test -z "[$]2" || eval "[$]2=ArchSPARC"
+ ;;
+ arm)
+ GET_ARM_ISA()
+ test -z "[$]2" || eval "[$]2=\"ArchARM \$ARM_ISA \$ARM_ISA_EXT\""
+ ;;
+ alpha|hppa|hppa1_1|ia64|m68k|mips|mipseb|mipsel|rs6000|s390|s390x|sparc64|vax)
+ test -z "[$]2" || eval "[$]2=ArchUnknown"
;;
*)
echo "Unknown arch [$]1"
@@ -125,71 +197,107 @@ AC_DEFUN([FPTOOLS_SET_PLATFORM_VARS],
checkOS() {
case [$]1 in
- linux|freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
+ linux)
+ test -z "[$]2" || eval "[$]2=OSLinux"
+ ;;
+ darwin)
+ test -z "[$]2" || eval "[$]2=OSDarwin"
+ ;;
+ solaris2)
+ test -z "[$]2" || eval "[$]2=OSSolaris2"
+ ;;
+ mingw32)
+ test -z "[$]2" || eval "[$]2=OSMinGW32"
+ ;;
+ freebsd)
+ test -z "[$]2" || eval "[$]2=OSFreeBSD"
+ ;;
+ openbsd)
+ test -z "[$]2" || eval "[$]2=OSOpenBSD"
+ ;;
+ netbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|cygwin32|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
+ test -z "[$]2" || eval "[$]2=OSUnknown"
;;
*)
echo "Unknown OS '[$]1'"
exit 1
;;
esac
-}
+ }
+
+ checkArch "$BuildArch" ""
+ checkVendor "$BuildVendor"
+ checkOS "$BuildOS" ""
-BuildPlatform="$BuildArch-$BuildVendor-$BuildOS"
-BuildPlatform_CPP=`echo "$BuildPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
-BuildArch_CPP=` echo "$BuildArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
-BuildVendor_CPP=` echo "$BuildVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
-BuildOS_CPP=` echo "$BuildOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
-
-checkArch "$BuildArch"
-checkVendor "$BuildVendor"
-checkOS "$BuildOS"
-
-HostPlatform="$HostArch-$HostVendor-$HostOS"
-HostPlatform_CPP=`echo "$HostPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
-HostArch_CPP=` echo "$HostArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
-HostVendor_CPP=` echo "$HostVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
-HostOS_CPP=` echo "$HostOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
-
-checkArch "$HostArch"
-checkVendor "$HostVendor"
-checkOS "$HostOS"
-
-TargetPlatform="$TargetArch-$TargetVendor-$TargetOS"
-TargetPlatform_CPP=`echo "$TargetPlatform" | sed -e 's/\./_/g' -e 's/-/_/g'`
-TargetArch_CPP=` echo "$TargetArch" | sed -e 's/\./_/g' -e 's/-/_/g'`
-TargetVendor_CPP=` echo "$TargetVendor" | sed -e 's/\./_/g' -e 's/-/_/g'`
-TargetOS_CPP=` echo "$TargetOS" | sed -e 's/\./_/g' -e 's/-/_/g'`
-
-checkArch "$TargetArch"
-checkVendor "$TargetVendor"
-checkOS "$TargetOS"
-
-echo "GHC build : $BuildPlatform"
-echo "GHC host : $HostPlatform"
-echo "GHC target : $TargetPlatform"
-
-AC_SUBST(BuildPlatform)
-AC_SUBST(HostPlatform)
-AC_SUBST(TargetPlatform)
-AC_SUBST(HostPlatform_CPP)
-AC_SUBST(BuildPlatform_CPP)
-AC_SUBST(TargetPlatform_CPP)
-
-AC_SUBST(HostArch_CPP)
-AC_SUBST(BuildArch_CPP)
-AC_SUBST(TargetArch_CPP)
-
-AC_SUBST(HostOS_CPP)
-AC_SUBST(BuildOS_CPP)
-AC_SUBST(TargetOS_CPP)
-
-AC_SUBST(HostVendor_CPP)
-AC_SUBST(BuildVendor_CPP)
-AC_SUBST(TargetVendor_CPP)
-
-AC_SUBST(exeext)
-AC_SUBST(soext)
+ checkArch "$HostArch" ""
+ checkVendor "$HostVendor"
+ checkOS "$HostOS" ""
+ checkArch "$TargetArch" "HaskellTargetArch"
+ checkVendor "$TargetVendor"
+ checkOS "$TargetOS" "HaskellTargetOs"
+
+ AC_SUBST(HaskellTargetArch)
+ AC_SUBST(HaskellTargetOs)
+])
+
+
+# GET_ARM_ISA
+# ----------------------------------
+# Get info about the ISA on the Arm arch
+AC_DEFUN([GET_ARM_ISA],
+[
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [],
+ [#if defined(__ARM_ARCH_2__) || \
+ defined(__ARM_ARCH_3__) || \
+ defined(__ARM_ARCH_3M__) || \
+ defined(__ARM_ARCH_4__) || \
+ defined(__ARM_ARCH_4T__) || \
+ defined(__ARM_ARCH_5__) || \
+ defined(__ARM_ARCH_5T__) || \
+ defined(__ARM_ARCH_5E__) || \
+ defined(__ARM_ARCH_5TE__)
+ return 0;
+ #else
+ not pre arm v6
+ #endif]
+ )],
+ [AC_DEFINE(arm_HOST_ARCH_PRE_ARMv6, 1, [ARM pre v6])
+ AC_DEFINE(arm_HOST_ARCH_PRE_ARMv7, 1, [ARM pre v7])
+ changequote(, )dnl
+ ARM_ISA=ARMv5
+ ARM_ISA_EXT="[]"
+ changequote([, ])dnl
+ ],
+ [
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM(
+ [],
+ [#if defined(__ARM_ARCH_6__) || \
+ defined(__ARM_ARCH_6J__) || \
+ defined(__ARM_ARCH_6T2__) || \
+ defined(__ARM_ARCH_6Z__) || \
+ defined(__ARM_ARCH_6ZK__) || \
+ defined(__ARM_ARCH_6M__)
+ return 0;
+ #else
+ not pre arm v7
+ #endif]
+ )],
+ [AC_DEFINE(arm_HOST_ARCH_PRE_ARMv7, 1, [ARM pre v7])
+ changequote(, )dnl
+ ARM_ISA=ARMv6
+ ARM_ISA_EXT="[]"
+ changequote([, ])dnl
+ ],
+ [changequote(, )dnl
+ ARM_ISA=ARMv7
+ ARM_ISA_EXT="[VFPv3, NEON]"
+ changequote([, ])dnl
+ ])
+ ])
])
diff --git a/compiler/HsVersions.h b/compiler/HsVersions.h
index f730c7eded..b6f92ae2e7 100644
--- a/compiler/HsVersions.h
+++ b/compiler/HsVersions.h
@@ -15,7 +15,6 @@ you will screw up the layout where they are used in case expressions!
/* Pull in all the platform defines for this build (foo_TARGET_ARCH etc.) */
#include "ghc_boot_platform.h"
-#include "../includes/stg/ArchSpecific.h"
/* This macro indicates that the target OS supports ELF-like shared libraries */
#if linux_TARGET_OS || freebsd_TARGET_OS || openbsd_TARGET_OS || solaris2_TARGET_OS
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 866301376d..e482c2df54 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -45,6 +45,7 @@ module DynFlags (
-- ** System tool settings and locations
Settings(..),
+ targetPlatform,
ghcUsagePath, ghciUsagePath, topDir, tmpDir, rawSettings,
extraGccViaCFlags, systemPackageConfig,
pgm_L, pgm_P, pgm_F, pgm_c, pgm_s, pgm_a, pgm_l, pgm_dll, pgm_T,
@@ -456,7 +457,6 @@ data DynFlags = DynFlags {
floatLamArgs :: Maybe Int, -- ^ Arg count for lambda floating
-- See CoreMonad.FloatOutSwitches
- targetPlatform :: Platform.Platform, -- ^ The platform we're compiling for. Used by the NCG.
cmdlineHcIncludes :: [String], -- ^ @\-\#includes@
importPaths :: [FilePath],
mainModIs :: Module,
@@ -569,6 +569,7 @@ data DynFlags = DynFlags {
}
data Settings = Settings {
+ sTargetPlatform :: Platform, -- Filled in by SysTools
sGhcUsagePath :: FilePath, -- Filled in by SysTools
sGhciUsagePath :: FilePath, -- ditto
sTopDir :: FilePath,
@@ -605,6 +606,9 @@ data Settings = Settings {
}
+targetPlatform :: DynFlags -> Platform
+targetPlatform dflags = sTargetPlatform (settings dflags)
+
ghcUsagePath :: DynFlags -> FilePath
ghcUsagePath dflags = sGhcUsagePath (settings dflags)
ghciUsagePath :: DynFlags -> FilePath
@@ -818,7 +822,6 @@ defaultDynFlags mySettings =
floatLamArgs = Just 0, -- Default: float only if no fvs
strictnessBefore = [],
- targetPlatform = defaultTargetPlatform,
cmdlineHcIncludes = [],
importPaths = ["."],
mainModIs = mAIN,
diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs
index 55ab4f9c01..6f22d1af15 100644
--- a/compiler/main/SysTools.lhs
+++ b/compiler/main/SysTools.lhs
@@ -47,6 +47,7 @@ import Config
import Outputable
import ErrUtils
import Panic
+import Platform
import Util
import DynFlags
import StaticFlags
@@ -182,6 +183,14 @@ initSysTools mbMinusB
_ ->
xs
Nothing -> pgmError ("No entry for " ++ show key ++ " in " ++ show settingsFile)
+ readSetting key = case lookup key mySettings of
+ Just xs ->
+ case maybeRead xs of
+ Just v -> return v
+ Nothing -> pgmError ("Failed to read " ++ show key ++ " value " ++ show xs)
+ Nothing -> pgmError ("No entry for " ++ show key ++ " in " ++ show settingsFile)
+ ; targetArch <- readSetting "target arch"
+ ; targetOS <- readSetting "target os"
; myExtraGccViaCFlags <- getSetting "GCC extra via C opts"
-- On Windows, mingw is distributed with GHC,
-- so we look in TopDir/../mingw/bin
@@ -241,6 +250,10 @@ initSysTools mbMinusB
lo_prog = "opt"
; return $ Settings {
+ sTargetPlatform = Platform {
+ platformArch = targetArch,
+ platformOS = targetOS
+ },
sTmpDir = normalise tmpdir,
sGhcUsagePath = ghc_usage_msg_path,
sGhciUsagePath = ghci_usage_msg_path,
diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs
index 362d7822d0..373c7bec33 100644
--- a/compiler/utils/Platform.hs
+++ b/compiler/utils/Platform.hs
@@ -1,7 +1,5 @@
-- | A description of the platform we're compiling for.
--- In the future, this module should be the only one that references
--- the evil #defines for each TARGET_ARCH and TARGET_OS
--
module Platform (
Platform(..),
@@ -10,7 +8,6 @@ module Platform (
ArmISA(..),
ArmISAExt(..),
- defaultTargetPlatform,
target32Bit,
osElfTarget
)
@@ -19,16 +16,13 @@ where
import Panic
-#include "HsVersions.h"
-
-
-- | Contains enough information for the native code generator to emit
-- code for this platform.
data Platform
= Platform
{ platformArch :: Arch
, platformOS :: OS }
- deriving (Show, Eq)
+ deriving (Read, Show, Eq)
-- | Architectures that the native code generator knows about.
@@ -45,7 +39,7 @@ data Arch
| ArchARM
{ armISA :: ArmISA
, armISAExt :: [ArmISAExt] }
- deriving (Show, Eq)
+ deriving (Read, Show, Eq)
-- | Operating systems that the native code generator knows about.
@@ -58,7 +52,7 @@ data OS
| OSMinGW32
| OSFreeBSD
| OSOpenBSD
- deriving (Show, Eq)
+ deriving (Read, Show, Eq)
-- | ARM Instruction Set Architecture and Extensions
--
@@ -66,7 +60,7 @@ data ArmISA
= ARMv5
| ARMv6
| ARMv7
- deriving (Show, Eq)
+ deriving (Read, Show, Eq)
data ArmISAExt
= VFPv2
@@ -74,7 +68,7 @@ data ArmISAExt
| VFPv3D16
| NEON
| IWMMX2
- deriving (Show, Eq)
+ deriving (Read, Show, Eq)
target32Bit :: Platform -> Bool
@@ -98,69 +92,3 @@ osElfTarget OSDarwin = False
osElfTarget OSMinGW32 = False
osElfTarget OSUnknown = panic "Don't know if OSUnknown is elf"
-
--- | This is the target platform as far as the #ifdefs are concerned.
--- These are set in includes/ghcplatform.h by the autoconf scripts
-defaultTargetPlatform :: Platform
-defaultTargetPlatform
- = Platform defaultTargetArch defaultTargetOS
-
-
--- | Move the evil TARGET_ARCH #ifdefs into Haskell land.
-defaultTargetArch :: Arch
-#if i386_TARGET_ARCH
-defaultTargetArch = ArchX86
-#elif x86_64_TARGET_ARCH
-defaultTargetArch = ArchX86_64
-#elif powerpc_TARGET_ARCH
-defaultTargetArch = ArchPPC
-#elif powerpc64_TARGET_ARCH
-defaultTargetArch = ArchPPC_64
-#elif sparc_TARGET_ARCH
-defaultTargetArch = ArchSPARC
-#elif arm_TARGET_ARCH
-defaultTargetArch = ArchARM defaultTargetArmISA defaultTargetArmISAExt
-#else
-defaultTargetArch = ArchUnknown
-#endif
-
-
--- | Move the evil TARGET_OS #ifdefs into Haskell land.
-defaultTargetOS :: OS
-#if linux_TARGET_OS
-defaultTargetOS = OSLinux
-#elif darwin_TARGET_OS
-defaultTargetOS = OSDarwin
-#elif solaris2_TARGET_OS
-defaultTargetOS = OSSolaris2
-#elif mingw32_TARGET_OS
-defaultTargetOS = OSMinGW32
-#elif freebsd_TARGET_OS
-defaultTargetOS = OSFreeBSD
-#elif kfreebsdgnu_TARGET_OS
-defaultTargetOS = OSFreeBSD
-#elif openbsd_TARGET_OS
-defaultTargetOS = OSOpenBSD
-#else
-defaultTargetOS = OSUnknown
-#endif
-
-#if arm_TARGET_ARCH
-defaultTargetArmISA :: ArmISA
-#if defined(arm_HOST_ARCH_PRE_ARMv6)
-defaultTargetArmISA = ARMv5
-#elif defined(arm_HOST_ARCH_PRE_ARMv7)
-defaultTargetArmISA = ARMv6
-#else
-defaultTargetArmISA = ARMv7
-#endif
-
-defaultTargetArmISAExt :: [ArmISAExt]
-#if defined(arm_TARGET_ARCH) && !defined(arm_HOST_ARCH_PRE_ARMv7)
-/* wild guess really, in case of ARMv7 we assume both VFPv3 and NEON presented
- however this is not true for SoCs like NVidia Tegra2 and Marvell Dove */
-defaultTargetArmISAExt = [VFPv3, NEON]
-#else
-defaultTargetArmISAExt = []
-#endif
-#endif /* arm_TARGET_ARCH */
diff --git a/compiler/utils/Util.lhs b/compiler/utils/Util.lhs
index f7d3361267..dccb52dbb7 100644
--- a/compiler/utils/Util.lhs
+++ b/compiler/utils/Util.lhs
@@ -69,7 +69,7 @@ module Util (
readRational,
-- * read helpers
- maybeReadFuzzy,
+ maybeRead, maybeReadFuzzy,
-- * IO-ish utilities
createDirectoryHierarchy,
@@ -989,6 +989,11 @@ readRational top_s
-----------------------------------------------------------------------------
-- read helpers
+maybeRead :: Read a => String -> Maybe a
+maybeRead str = case reads str of
+ [(x, "")] -> Just x
+ _ -> Nothing
+
maybeReadFuzzy :: Read a => String -> Maybe a
maybeReadFuzzy str = case reads str of
[(x, s)]
diff --git a/configure.ac b/configure.ac
index 1207f080b1..efd2f260ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -444,6 +444,11 @@ AC_SUBST(CONF_CPP_OPTS_STAGE0)
AC_SUBST(CONF_CPP_OPTS_STAGE1)
AC_SUBST(CONF_CPP_OPTS_STAGE2)
+dnl ** Set up the variables for the platform in the settings file.
+dnl May need to use gcc to find platform details.
+dnl --------------------------------------------------------------
+FPTOOLS_SET_HASKELL_PLATFORM_VARS
+
FP_SETTINGS
dnl ** figure out how to do context diffs
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index ce51c278f2..8af06d2254 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -80,6 +80,11 @@ AC_SUBST(CONF_CPP_OPTS_STAGE0)
AC_SUBST(CONF_CPP_OPTS_STAGE1)
AC_SUBST(CONF_CPP_OPTS_STAGE2)
+dnl ** Set up the variables for the platform in the settings file.
+dnl May need to use gcc to find platform details.
+dnl --------------------------------------------------------------
+FPTOOLS_SET_HASKELL_PLATFORM_VARS
+
FP_SETTINGS
#
diff --git a/includes/Stg.h b/includes/Stg.h
index 5665018d93..cae4a3a4aa 100644
--- a/includes/Stg.h
+++ b/includes/Stg.h
@@ -225,8 +225,6 @@ typedef StgFunPtr F_;
Other Stg stuff...
-------------------------------------------------------------------------- */
-#include "stg/ArchSpecific.h" /* required by MachRegs.h and SMP.h */
-
#include "stg/DLL.h"
#include "stg/MachRegs.h"
#include "stg/Regs.h"
diff --git a/includes/stg/ArchSpecific.h b/includes/stg/ArchSpecific.h
deleted file mode 100644
index b8815cf71f..0000000000
--- a/includes/stg/ArchSpecific.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ----------------------------------------------------------------------------
- *
- * (c) The GHC Team, 2011
- *
- * Architecture-specific defines for ARM
- *
- * Do not #include this file directly: #include "Rts.h" instead.
- *
- * To understand the structure of the RTS headers, see the wiki:
- * http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
- *
- * -------------------------------------------------------------------------- */
-
-#ifndef ARCH_ARM_H
-#define ARCH_ARM_H
-
-#if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_3__) || defined(__ARM_ARCH_3M__) || \
- defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_5__) || \
- defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__)
-#define arm_HOST_ARCH_PRE_ARMv6
-#endif
-
-#if defined(arm_HOST_ARCH_PRE_ARMv6) || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
- defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || \
- defined(__ARM_ARCH_6M__)
-#define arm_HOST_ARCH_PRE_ARMv7
-#endif
-
-#endif
-
diff --git a/settings.in b/settings.in
index 6ddeb181e8..6d0bd3d132 100644
--- a/settings.in
+++ b/settings.in
@@ -7,5 +7,8 @@
("touch command", "@SettingsTouchCommand@"),
("dllwrap command", "@SettingsDllWrapCommand@"),
("windres command", "@SettingsWindresCommand@"),
- ("perl command", "@SettingsPerlCommand@")]
+ ("perl command", "@SettingsPerlCommand@"),
+ ("target os", "@HaskellTargetOs@"),
+ ("target arch", "@HaskellTargetArch@")
+ ]