X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fcompiler%2Fmain%2FDriverFlags.hs;h=5cd18390b866c7bcf165ded854aa794bc5a3a357;hb=226413e1427f0436a0fc21ca156b956c60f730c5;hp=2ebd51dc29c130e8200a3d6330519d288965c7bf;hpb=dbfe93e664ee00ad854114128ffbace2a5298da4;p=ghc-hetmet.git diff --git a/ghc/compiler/main/DriverFlags.hs b/ghc/compiler/main/DriverFlags.hs index 2ebd51d..5cd1839 100644 --- a/ghc/compiler/main/DriverFlags.hs +++ b/ghc/compiler/main/DriverFlags.hs @@ -1,7 +1,5 @@ -{-# OPTIONS -#include "hschooks.h" #-} - ----------------------------------------------------------------------------- --- $Id: DriverFlags.hs,v 1.92 2002/04/22 16:06:36 simonpj Exp $ +-- $Id: DriverFlags.hs,v 1.100 2002/08/02 12:24:04 simonmar Exp $ -- -- Driver flags -- @@ -265,6 +263,12 @@ static_flags = , ( "L" , Prefix (addToDirList v_Library_paths) ) , ( "l" , Prefix (add v_Cmdline_libraries) ) +#ifdef darwin_TARGET_OS + ------- Frameworks -------------------------------------------------- + -- -framework-path should really be -F ... + , ( "framework-path" , HasArg (addToDirList v_Framework_paths) ) + , ( "framework" , HasArg (add v_Cmdline_frameworks) ) +#endif ------- Packages ---------------------------------------------------- , ( "package-name" , HasArg (\s -> add v_Opt_C ("-inpackage="++s)) ) @@ -358,7 +362,7 @@ dynamic_flags = [ -- on all other systems, quoting is necessary, to avoid interpretation -- of shell metacharacters in the arguments (e.g. green-card's -- -DBEGIN_GHC_ONLY='}-' trick). -#ifndef mingw32_TARGET_OS +#ifndef mingw32_HOST_OS , ( "D", Prefix (\s -> addOpt_P ("-D'"++s++"'") ) ) , ( "U", Prefix (\s -> addOpt_P ("-U'"++s++"'") ) ) #else @@ -429,7 +433,6 @@ dynamic_flags = [ , ( "fvia-c", NoArg (setLang HscC) ) , ( "fvia-C", NoArg (setLang HscC) ) , ( "filx", NoArg (setLang HscILX) ) - , ( "fcore", NoArg (setLang HscCore) ) -- "active negatives" , ( "fno-implicit-prelude", NoArg (setDynFlag Opt_NoImplicitPrelude) ) @@ -459,6 +462,9 @@ fFlags = [ ( "warn-unused-matches", Opt_WarnUnusedMatches ), ( "warn-deprecations", Opt_WarnDeprecations ), ( "glasgow-exts", Opt_GlasgowExts ), + ( "fi", Opt_FFI ), -- support `-ffi'... + ( "ffi", Opt_FFI ), -- ...and also `-fffi' + ( "with", Opt_With ), -- with keyword ( "parr", Opt_PArr ), ( "allow-overlapping-instances", Opt_AllowOverlappingInstances ), ( "allow-undecidable-instances", Opt_AllowUndecidableInstances ), @@ -529,7 +535,11 @@ buildStaticHscOpts = do machdepCCOpts | prefixMatch "alpha" cTARGETPLATFORM - = return ( ["-static", "-w", "-mieee"], [] ) + = return ( ["-static", "-w", "-mieee" +#ifdef HAVE_THREADED_RTS_SUPPORT + , "-D_REENTRANT" +#endif + ], [] ) -- For now, to suppress the gcc warning "call-clobbered -- register used for global register variable", we simply -- disable all warnings altogether using the -w flag. Oh well. @@ -558,12 +568,20 @@ machdepCCOpts -- the fp (%ebp) for our register maps. = do n_regs <- dynFlag stolen_x86_regs sta <- readIORef v_Static - return ( [ if sta then "-DDONT_WANT_WIN32_DLL_SUPPORT" else "", - if suffixMatch "mingw32" cTARGETPLATFORM then "-mno-cygwin" else "" ], + return ( [ if sta then "-DDONT_WANT_WIN32_DLL_SUPPORT" else "" +-- , if suffixMatch "mingw32" cTARGETPLATFORM then "-mno-cygwin" else "" + ], [ "-fno-defer-pop", "-fomit-frame-pointer", + -- we want -fno-builtin, because when gcc inlines + -- built-in functions like memcpy() it tends to + -- run out of registers, requiring -monly-n-regs + "-fno-builtin", "-DSTOLEN_X86_REGS="++show n_regs ] ) + | prefixMatch "ia64" cTARGETPLATFORM + = return ( [], ["-fomit-frame-pointer", "-G0"] ) + | prefixMatch "mips" cTARGETPLATFORM = return ( ["-static"], [] )