X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FPlatform.hs;h=20cb5f5e9685e37d9ae32b5f639306c318c913f2;hb=06bf361cae4364f7f568688d30d22a4a3fc914ec;hp=8b01f5cbb3acc8a8f9642731852829d79101200c;hpb=b04a210e26ca57242fd052f2aa91011a80b76299;p=ghc-hetmet.git diff --git a/compiler/nativeGen/Platform.hs b/compiler/nativeGen/Platform.hs index 8b01f5c..20cb5f5 100644 --- a/compiler/nativeGen/Platform.hs +++ b/compiler/nativeGen/Platform.hs @@ -9,7 +9,8 @@ module Platform ( Arch(..), OS(..), - defaultTargetPlatform + defaultTargetPlatform, + osElfTarget ) where @@ -45,11 +46,21 @@ data OS = OSUnknown | OSLinux | OSDarwin - | OSSolaris + | OSSolaris2 | OSMinGW32 + | OSFreeBSD + | OSOpenBSD deriving (Show, Eq) +-- | This predicates tells us whether the OS supports ELF-like shared libraries. +osElfTarget :: OS -> Bool +osElfTarget OSLinux = True +osElfTarget OSFreeBSD = True +osElfTarget OSOpenBSD = True +osElfTarget OSSolaris2 = True +osElfTarget _ = False + -- | 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 @@ -82,10 +93,14 @@ defaultTargetOS :: OS defaultTargetOS = OSLinux #elif darwin_TARGET_OS defaultTargetOS = OSDarwin -#elif solaris_TARGET_OS -defaultTargetOS = OSSolaris +#elif solaris2_TARGET_OS +defaultTargetOS = OSSolaris2 #elif mingw32_TARGET_OS defaultTargetOS = OSMinGW32 +#elif freebsd_TARGET_OS +defaultTargetOS = OSFreeBSD +#elif openbsd_TARGET_OS +defaultTargetOS = OSOpenBSD #else defaultTargetOS = OSUnknown #endif