New flag -dsuppress-coercions to avoid printing coercions in Core dumps
[ghc-hetmet.git] / compiler / main / StaticFlagParser.hs
index f3d737c..966b6ec 100644 (file)
@@ -53,7 +53,7 @@ parseStaticFlags args = do
 
     -- deal with the way flags: the way (eg. prof) gives rise to
     -- further flags, some of which might be static.
-  way_flags <- findBuildTag
+  way_flags <- getWayFlags
   let way_flags' = map (mkGeneralLocated "in way flags") way_flags
 
     -- if we're unregisterised, add some more flags
@@ -120,6 +120,7 @@ static_flags = [
         ------ Debugging ----------------------------------------------------
   , Flag "dppr-debug"        (PassFlag addOpt) Supported
   , Flag "dsuppress-uniques" (PassFlag addOpt) Supported
+  , Flag "dsuppress-coercions" (PassFlag addOpt) Supported
   , Flag "dppr-user-length"  (AnySuffix addOpt) Supported
   , Flag "dopt-fuel"         (AnySuffix addOpt) Supported
   , Flag "dno-debug-output"  (PassFlag addOpt) Supported
@@ -128,7 +129,7 @@ static_flags = [
 
         ----- Linker --------------------------------------------------------
   , Flag "static"         (PassFlag addOpt) Supported
-  , Flag "dynamic"        (NoArg (removeOpt "-static")) Supported
+  , Flag "dynamic"        (NoArg (removeOpt "-static" >> addWay WayDyn)) Supported
     -- ignored for compat w/ gcc:
   , Flag "rdynamic"       (NoArg (return ())) Supported
 
@@ -138,6 +139,11 @@ static_flags = [
   , Flag "Rghc-timing"    (NoArg  (enableTimingStats)) Supported
 
         ------ Compiler flags -----------------------------------------------
+
+        -- -fPIC requires extra checking: only the NCG supports it.
+        -- See also DynFlags.parseDynamicFlags.
+  , Flag "fPIC" (PassFlag setPIC) Supported
+
         -- All other "-fno-<blah>" options cancel out "-f<blah>" on the hsc cmdline
   , Flag "fno-"
          (PrefixPred (\s -> isStaticFlag ("f"++s)) (\s -> removeOpt ("-f"++s)))
@@ -147,6 +153,12 @@ static_flags = [
   , Flag "f" (AnySuffixPred isStaticFlag addOpt) Supported
   ]
 
+setPIC :: String -> IO ()
+setPIC | cGhcWithNativeCodeGen == "YES" || cGhcUnregisterised == "YES"
+       = addOpt
+       | otherwise
+       = ghcError $ CmdLineError "-fPIC is not supported on this platform"
+
 isStaticFlag :: String -> Bool
 isStaticFlag f =
   f `elem` [