[commit: ghc] wip/nfs-locking: Add support for llvm-targets (6d14f09)
git at git.haskell.org
git at git.haskell.org
Fri Oct 27 00:42:00 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nfs-locking
Link : http://ghc.haskell.org/trac/ghc/changeset/6d14f09c81f490704d2798693236f0db68e6e438/ghc
>---------------------------------------------------------------
commit 6d14f09c81f490704d2798693236f0db68e6e438
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date: Sat Sep 9 11:39:57 2017 +0100
Add support for llvm-targets
See #412
>---------------------------------------------------------------
6d14f09c81f490704d2798693236f0db68e6e438
cfg/system.config.in | 1 +
src/Base.hs | 1 +
src/Oracles/Setting.hs | 2 ++
src/Rules/Generate.hs | 5 ++++-
4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/cfg/system.config.in b/cfg/system.config.in
index 34ef7b9..0b05259 100644
--- a/cfg/system.config.in
+++ b/cfg/system.config.in
@@ -63,6 +63,7 @@ target-platform-full = @TargetPlatformFull@
target-arch = @TargetArch_CPP@
target-os = @TargetOS_CPP@
target-vendor = @TargetVendor_CPP@
+llvm-target = @LLVMTarget_CPP@
cross-compiling = @CrossCompiling@
diff --git a/src/Base.hs b/src/Base.hs
index 942b272..76e8f2b 100644
--- a/src/Base.hs
+++ b/src/Base.hs
@@ -106,6 +106,7 @@ inplaceLibCopyTargets :: [FilePath]
inplaceLibCopyTargets = map (inplaceLibPath -/-)
[ "ghc-usage.txt"
, "ghci-usage.txt"
+ , "llvm-targets"
, "platformConstants"
, "settings"
, "template-hsc.h" ]
diff --git a/src/Oracles/Setting.hs b/src/Oracles/Setting.hs
index 8af8f38..5f148d4 100644
--- a/src/Oracles/Setting.hs
+++ b/src/Oracles/Setting.hs
@@ -46,6 +46,7 @@ data Setting = BuildArch
| TargetPlatform
| TargetPlatformFull
| TargetVendor
+ | LlvmTarget
| FfiIncludeDir
| FfiLibDir
| GmpIncludeDir
@@ -104,6 +105,7 @@ setting key = lookupValueOrError configFile $ case key of
TargetPlatform -> "target-platform"
TargetPlatformFull -> "target-platform-full"
TargetVendor -> "target-vendor"
+ LlvmTarget -> "llvm-target"
FfiIncludeDir -> "ffi-include-dir"
FfiLibDir -> "ffi-lib-dir"
GmpIncludeDir -> "gmp-include-dir"
diff --git a/src/Rules/Generate.hs b/src/Rules/Generate.hs
index b23b72d..413abe5 100644
--- a/src/Rules/Generate.hs
+++ b/src/Rules/Generate.hs
@@ -11,9 +11,9 @@ import Oracles.ModuleFiles
import Oracles.Setting
import Rules.Gmp
import Rules.Libffi
+import Target
import Settings
import Settings.Packages.Rts
-import Target
import Utilities
-- | Track this file to rebuild generated files whenever it changes.
@@ -145,6 +145,7 @@ copyRules :: Rules ()
copyRules = do
(inplaceLibPath -/- "ghc-usage.txt") <~ return "driver"
(inplaceLibPath -/- "ghci-usage.txt" ) <~ return "driver"
+ (inplaceLibPath -/- "llvm-targets") <~ return "."
(inplaceLibPath -/- "platformConstants") <~ (buildRoot <&> (-/- generatedDir))
(inplaceLibPath -/- "settings") <~ return "."
(inplaceLibPath -/- "template-hsc.h") <~ return (pkgPath hsc2hs)
@@ -394,6 +395,7 @@ generateGhcBootPlatformH = do
hostVendor <- chooseSetting HostVendor TargetVendor
targetPlatform <- getSetting TargetPlatform
targetArch <- getSetting TargetArch
+ llvmTarget <- getSetting LlvmTarget
targetOs <- getSetting TargetOs
targetVendor <- getSetting TargetVendor
return $ unlines
@@ -414,6 +416,7 @@ generateGhcBootPlatformH = do
, "#define BUILD_ARCH " ++ show buildArch
, "#define HOST_ARCH " ++ show hostArch
, "#define TARGET_ARCH " ++ show targetArch
+ , "#define LLVM_TARGET " ++ show llvmTarget
, ""
, "#define " ++ buildOs ++ "_BUILD_OS 1"
, "#define " ++ hostOs ++ "_HOST_OS 1"
More information about the ghc-commits
mailing list