SpecConstr: Remove -fspec-inline-join-points, and add let-binding specialisation
[ghc-hetmet.git] / compiler / main / StaticFlags.hs
index 9553081..8de8611 100644 (file)
@@ -41,7 +41,6 @@ module StaticFlags (
        opt_DsMultiTyVar,
        opt_NoStateHack,
         opt_SimpleListLiterals,
-       opt_SpecInlineJoinPoints,
        opt_CprOff,
        opt_SimplNoPreInlining,
        opt_SimplExcessPrecision,
@@ -218,9 +217,6 @@ opt_DsMultiTyVar :: Bool
 opt_DsMultiTyVar               = not (lookUp (fsLit "-fno-ds-multi-tyvar"))
        -- On by default
 
-opt_SpecInlineJoinPoints :: Bool
-opt_SpecInlineJoinPoints       = lookUp  (fsLit "-fspec-inline-join-points")
-
 opt_SimpleListLiterals :: Bool
 opt_SimpleListLiterals         = lookUp  (fsLit "-fsimple-list-literals")
 
@@ -271,6 +267,8 @@ opt_UF_DearOp            = ( 4 :: Int)
 opt_PIC :: Bool
 #if darwin_TARGET_OS && x86_64_TARGET_ARCH
 opt_PIC                         = True
+#elif darwin_TARGET_OS
+opt_PIC                         = lookUp (fsLit "-fPIC") || not opt_Static
 #else
 opt_PIC                         = lookUp (fsLit "-fPIC")
 #endif
@@ -405,7 +403,14 @@ way_details =
 
     Way WayDyn "dyn" False "Dynamic"
        [ "-DDYNAMIC"
-       , "-optc-DDYNAMIC" ],
+       , "-optc-DDYNAMIC" 
+#if defined(mingw32_TARGET_OS)
+       -- On Windows, code that is to be linked into a dynamic library must be compiled
+       --      with -fPIC. Labels not in the current package are assumed to be in a DLL 
+       --      different from the current one.
+       , "-fPIC"
+#endif
+       ],
 
     Way WayProf "p" False "Profiling"
        [ "-fscc-profiling"