Safe Haskell | None |
---|---|
Language | Haskell2010 |
GHC.Toolchain.Target
Synopsis
- data Target = Target {
- tgtArchOs :: ArchOS
- tgtVendor :: Maybe String
- tgtLocallyExecutable :: Bool
- tgtSupportsGnuNonexecStack :: Bool
- tgtSupportsSubsectionsViaSymbols :: Bool
- tgtSupportsIdentDirective :: Bool
- tgtWordSize :: WordSize
- tgtEndianness :: ByteOrder
- tgtSymbolsHaveLeadingUnderscore :: Bool
- tgtLlvmTarget :: String
- tgtUnregisterised :: Bool
- tgtTablesNextToCode :: Bool
- tgtUseLibffiForAdjustors :: Bool
- tgtHasLibm :: Bool
- tgtRTSWithLibdw :: Maybe Library
- tgtCCompiler :: Cc
- tgtCxxCompiler :: Cxx
- tgtCPreprocessor :: Cpp
- tgtHsCPreprocessor :: HsCpp
- tgtJsCPreprocessor :: Maybe JsCpp
- tgtCmmCPreprocessor :: CmmCpp
- tgtCCompilerLink :: CcLink
- tgtAr :: Ar
- tgtRanlib :: Maybe Ranlib
- tgtNm :: Nm
- tgtMergeObjs :: Maybe MergeObjs
- tgtLlc :: Maybe Program
- tgtOpt :: Maybe Program
- tgtLlvmAs :: Maybe Program
- tgtWindres :: Maybe Program
- tgtOtool :: Maybe Program
- tgtInstallNameTool :: Maybe Program
- targetPlatformTriple :: Target -> String
- data WordSize
- wordSize2Bytes :: WordSize -> Int
- tgtSupportsSMP :: Target -> Bool
- tgtRTSLinkerOnlySupportsSharedLibs :: Target -> Bool
- _tgtCC :: Lens Target Cc
- _tgtCxx :: Lens Target Cxx
- _tgtCpp :: Lens Target Cpp
- _tgtHsCpp :: Lens Target HsCpp
- data ByteOrder
A Toolchain Target
A Target
consists of:
- a target architecture and operating system
- various bits of information about the platform
- various toolchain components targetting that platform
Constructors
Target | |
Fields
|
targetPlatformTriple :: Target -> String Source #
Reconstruct the platform triple from a toolchain target (specifically from tgtArchOs and tgtVendor)
wordSize2Bytes :: WordSize -> Int Source #
The word size as an integer representing the number of bytes
Queries
tgtSupportsSMP :: Target -> Bool Source #
tgtRTSLinkerOnlySupportsSharedLibs :: Target -> Bool Source #
Does the target RTS linker only support loading shared libraries? If true, this has several implications: 1. The GHC driver must not do loadArchive/loadObj etc and must always do loadDLL, regardless of whether host GHC is dynamic or not. 2. The GHC driver will always enable -dynamic-too when compiling vanilla way with TH codegen requirement. 3. ghci will always enforce dynamic ways even if -dynamic or -dynamic-too is not explicitly passed. 4. Cabal must not build ghci objects since it's not supported by the target. 5. The testsuite driver will use dyn way for TH/ghci tests even when host GHC is static. 6. TH/ghci doesn't work if stage1 is built without shared libraries (e.g. quickest/fully_static).
Lenses
Re-exports
Constructors
BigEndian | |
LittleEndian |
Instances
Eq ByteOrder # | |
Ord ByteOrder # | |
Bounded ByteOrder # | |
Enum ByteOrder # | |
Defined in GHC.Internal.ByteOrder Methods succ :: ByteOrder -> ByteOrder # pred :: ByteOrder -> ByteOrder # fromEnum :: ByteOrder -> Int # enumFrom :: ByteOrder -> [ByteOrder] # enumFromThen :: ByteOrder -> ByteOrder -> [ByteOrder] # enumFromTo :: ByteOrder -> ByteOrder -> [ByteOrder] # enumFromThenTo :: ByteOrder -> ByteOrder -> ByteOrder -> [ByteOrder] # | |
Generic ByteOrder # | |
Defined in GHC.Internal.ByteOrder | |
Read ByteOrder # | |
Show ByteOrder # | |
type Rep ByteOrder # | |