[project @ 2004-10-18 18:24:59 by igloo]
[ghc-hetmet.git] / ghc / compiler / main / DriverFlags.hs
index 7a15685..ac9e92c 100644 (file)
@@ -14,7 +14,7 @@ module DriverFlags (
   ) where
 
 #include "HsVersions.h"
-#include "../includes/config.h"
+#include "../includes/ghcconfig.h"
 
 import MkIface         ( showIface )
 import DriverState
@@ -254,7 +254,7 @@ static_flags =
                                    then do writeIORef v_Split_object_files True
                                            add v_Opt_C "-fglobalise-toplev-names"
                                    else hPutStrLn stderr
-                                           "warning: don't know how to  split object files on this architecture"
+                                           "warning: don't know how to split object files on this architecture"
                                ) )
 
        ------- Include/Import Paths ----------------------------------------
@@ -347,7 +347,7 @@ dynamic_flags = [
        ------ Debugging ----------------------------------------------------
   ,  ( "dstg-stats",   NoArg (writeIORef v_StgStats True) )
 
-  ,  ( "ddump-absC",            NoArg (setDynFlag Opt_D_dump_absC) )
+  ,  ( "ddump-cmm",             NoArg (setDynFlag Opt_D_dump_cmm) )
   ,  ( "ddump-asm",             NoArg (setDynFlag Opt_D_dump_asm) )
   ,  ( "ddump-cpranal",         NoArg (setDynFlag Opt_D_dump_cpranal) )
   ,  ( "ddump-deriv",           NoArg (setDynFlag Opt_D_dump_deriv) )
@@ -357,7 +357,6 @@ dynamic_flags = [
   ,  ( "ddump-inlinings",       NoArg (setDynFlag Opt_D_dump_inlinings) )
   ,  ( "ddump-occur-anal",      NoArg (setDynFlag Opt_D_dump_occur_anal) )
   ,  ( "ddump-parsed",          NoArg (setDynFlag Opt_D_dump_parsed) )
-  ,  ( "ddump-realC",           NoArg (setDynFlag Opt_D_dump_realC) )
   ,  ( "ddump-rn",              NoArg (setDynFlag Opt_D_dump_rn) )
   ,  ( "ddump-simpl",           NoArg (setDynFlag Opt_D_dump_simpl) )
   ,  ( "ddump-simpl-iterations", NoArg (setDynFlag Opt_D_dump_simpl_iterations) )
@@ -376,7 +375,7 @@ dynamic_flags = [
   ,  ( "ddump-tc-trace",         NoArg (setDynFlag Opt_D_dump_tc_trace) )
   ,  ( "ddump-splices",          NoArg (setDynFlag Opt_D_dump_splices) )
   ,  ( "ddump-rn-stats",         NoArg (setDynFlag Opt_D_dump_rn_stats) )
-  ,  ( "ddump-stix",             NoArg (setDynFlag Opt_D_dump_stix) )
+  ,  ( "ddump-opt-cmm",          NoArg (setDynFlag Opt_D_dump_opt_cmm) )
   ,  ( "ddump-simpl-stats",      NoArg (setDynFlag Opt_D_dump_simpl_stats) )
   ,  ( "ddump-bcos",             NoArg (setDynFlag Opt_D_dump_BCOs) )
   ,  ( "dsource-stats",          NoArg (setDynFlag Opt_D_source_stats) )
@@ -388,6 +387,7 @@ dynamic_flags = [
   ,  ( "ddump-vect",            NoArg (setDynFlag Opt_D_dump_vect) )
   ,  ( "dcore-lint",            NoArg (setDynFlag Opt_DoCoreLinting) )
   ,  ( "dstg-lint",             NoArg (setDynFlag Opt_DoStgLinting) )
+  ,  ( "dcmm-lint",             NoArg (setDynFlag Opt_DoCmmLinting) )
 
        ------ Machine dependant (-m<blah>) stuff ---------------------------
 
@@ -441,6 +441,7 @@ fFlags = [
   ( "warn-duplicate-exports",          Opt_WarnDuplicateExports ),
   ( "warn-hi-shadowing",               Opt_WarnHiShadows ),
   ( "warn-incomplete-patterns",        Opt_WarnIncompletePatterns ),
+  ( "warn-incomplete-record-updates",          Opt_WarnIncompletePatternsRecUpd ),
   ( "warn-missing-fields",             Opt_WarnMissingFields ),
   ( "warn-missing-methods",            Opt_WarnMissingMethods ),
   ( "warn-missing-signatures",         Opt_WarnMissingSigs ),
@@ -621,11 +622,20 @@ machdepCCOpts
       --     for "normal" programs, but it doesn't support register variable
       --     declarations.
       -- -mdynamic-no-pic:
-      --     As we don't support haskell code in shared libraries anyway,
-      --     we might as well turn of PIC code generation and save space and time.
-      --     This is completely optional.
-       = return ( ["-no-cpp-precomp","-mdynamic-no-pic"], [] )
-
+      --     Turn off PIC code generation to save space and time.
+      -- -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"] )
+
+   | prefixMatch "powerpc" cTARGETPLATFORM && opt_PIC
+        = return ( ["-fPIC"], ["-fPIC"] )
+  
    | otherwise
        = return ( [], [] )