X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FDriverFlags.hs;h=1dcfda30c0af6c315f679f0f7ae91eb1987912e8;hb=c560ae86eb28062f965b39fd43792d9dd4950011;hp=f99f20e471360b6c86ecf2734cc6661d2b7e1478;hpb=d121c0cfb9a8a383b82f7e3a3493a9a57e9e93cf;p=ghc-hetmet.git diff --git a/ghc/compiler/main/DriverFlags.hs b/ghc/compiler/main/DriverFlags.hs index f99f20e..1dcfda3 100644 --- a/ghc/compiler/main/DriverFlags.hs +++ b/ghc/compiler/main/DriverFlags.hs @@ -13,6 +13,7 @@ module DriverFlags ( addCmdlineHCInclude, buildStaticHscOpts, machdepCCOpts, + picCCOpts, processArgs, OptKind(..), -- for DriverMkDepend only ) where @@ -711,23 +712,33 @@ machdepCCOpts dflags -- Disable Apple's precompiling preprocessor. It's a great thing -- for "normal" programs, but it doesn't support register variable -- declarations. + = return ( [], ["-no-cpp-precomp"] ) +#else + = return ( [], [] ) +#endif + +picCCOpts dflags +#if darwin_TARGET_OS + -- Apple prefers to do things the other way round. + -- PIC is on by default. -- -mdynamic-no-pic: - -- Turn off PIC code generation to save space and time. + -- Turn off PIC code generation. -- -fno-common: -- Don't generate "common" symbols - these are unwanted -- in dynamic libraries. - = if opt_PIC - then return ( ["-no-cpp-precomp", "-fno-common"], - ["-fno-common"] ) - else return ( ["-no-cpp-precomp", "-mdynamic-no-pic"], - ["-mdynamic-no-pic"] ) - -#elif powerpc_TARGET_ARCH - | opt_PIC - = return ( ["-fPIC"], ["-fPIC"] ) - | otherwise - = return ( [], [] ) + | opt_PIC + = return ["-fno-common"] + | otherwise + = return ["-mdynamic-no-pic"] +#elif mingw32_TARGET_OS + -- no -fPIC for Windows + = return [] +#else + | opt_PIC + = return ["-fPIC"] + | otherwise + = return [] #endif -----------------------------------------------------------------------------