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
- data Platform = Platform {
- platformArch :: Arch
- platformOS :: OS
- data Arch
- = ArchUnknown
- | ArchX86
- | ArchX86_64
- | ArchPPC
- | ArchPPC_64
- | ArchSPARC
- | ArchARM
- data OS
- defaultTargetPlatform :: Platform
- target32Bit :: Platform -> Bool
- osElfTarget :: OS -> Bool
Documentation
Contains enough information for the native code generator to emit code for this platform.
Platform | |
|
Architectures that the native code generator knows about. TODO: It might be nice to extend these constructors with information about what instruction set extensions an architecture might support.
Operating systems that the native code generator knows about. Having OSUnknown should produce a sensible default, but no promises.
defaultTargetPlatform :: PlatformSource
This is the target platform as far as the #ifdefs are concerned. These are set in includes/ghcplatform.h by the autoconf scripts
target32Bit :: Platform -> BoolSource
osElfTarget :: OS -> BoolSource
This predicates tells us whether the OS supports ELF-like shared libraries.