[project @ 2000-05-24 12:43:20 by simonpj]
[ghc-hetmet.git] / ghc / driver / ghc.lprl
index 50cd7cc..7a59b75 100644 (file)
@@ -284,6 +284,7 @@ warnings that you get all the time are
        -fwarn-missing-fields
        -fwarn-deprecations
        -fwarn-duplicate-exports
+       -fwarn-hi-shadowing
 
 these are turned off by -Wnot.
 
@@ -292,6 +293,7 @@ these are turned off by -Wnot.
                     '-fwarn-missing-methods',
                     '-fwarn-missing-fields',
                     '-fwarn-deprecations',
+# DISABLE DUE TO DUPLICATE INCLUDE PATHS (ToDo): '-fwarn-hi-shadowing',
                     '-fwarn-duplicate-exports');
 @MinusWOpts              = (@StandardWarnings, 
                     '-fwarn-unused-binds',
@@ -1114,6 +1116,7 @@ sub setupLinkOpts {
           ,'-u', "${uscore}PrelException_NonTermination_closure"
           ,'-u', "${uscore}PrelException_PutFullMVar_closure"
           ,'-u', "${uscore}PrelException_BlockedOnDeadMVar_closure"
+          ,'-u', "${uscore}PrelWeak_runFinalizzerBatch_closure"
           ,'-u', "${uscore}__init_Prelude"
           ,'-u', "${uscore}__init_PrelMain"
        ));
@@ -1503,17 +1506,6 @@ Now the Haskell compiler, C compiler, and assembler
     }
 
     if (-f $hsc_out_c_stub) {
-       &run_something("rm -f $ofile_c_stub_target && echo '#include \"${ofile_h_stub_target}\"' > $ofile_c_stub_target && cat $hsc_out_c_stub >> $ofile_c_stub_target", 'Copy foreign export C stubs');
-       local ($hsc_out_s_stub);
-       local ($hsc_out_o_stub);
-       ($ofile_s_stub_target = $ofile_c_stub_target) =~ s/\.(.*)$/\.s/;
-       ($ofile_o_stub_target = $ofile_c_stub_target) =~ s/\.(.*)$//;
-
-        $ofile_o_stub_target = &osuf_ify($ofile_o_stub_target, "o");
-       if ($do_cc) {
-         &runGcc    (0, $ofile_c_stub_target, $ofile_s_stub_target);
-          &runAs     ($ofile_o_stub_target, $ofile_s_stub_target);
-       }
        #
        # Bring the C stub protos into scope when compiling the .hc file.
        #
@@ -1521,7 +1513,6 @@ Now the Haskell compiler, C compiler, and assembler
        # Hack - ensure that the stub .h file is included in the OPTIONS section
        #        if the .hc file is saved.
        push (@File_options, "-#include \"${ofile_h_stub_target}\"\n");
-       
     }
 
     if ($do_cc) {
@@ -1534,6 +1525,21 @@ Now the Haskell compiler, C compiler, and assembler
     # save a copy of the .s file..
     &saveIntermediate($ifile_root , "s" , $cc_as) if ($do_as && $Keep_s_file_too);
     &runAs($as_out, $ifile_root) if $do_as;
+
+    if (-f $hsc_out_c_stub) {
+       &run_something("rm -f $ofile_c_stub_target && echo '#include \"${ofile_h_stub_target}\"' > $ofile_c_stub_target && cat $hsc_out_c_stub >> $ofile_c_stub_target", 'Copy foreign export C stubs');
+       local ($hsc_out_s_stub);
+       local ($hsc_out_o_stub);
+       ($ofile_s_stub_target = $ofile_c_stub_target) =~ s/\.(.*)$/\.s/;
+       ($ofile_o_stub_target = $ofile_c_stub_target) =~ s/\.(.*)$//;
+
+        $ofile_o_stub_target = &osuf_ify($ofile_o_stub_target, "o");
+       if ($do_cc || $do_as) {  # might be using NCG, so check $do_as
+         &runGcc    (0, $ofile_c_stub_target, $ofile_s_stub_target);
+          &runAs     ($ofile_o_stub_target, $ofile_s_stub_target);
+       }
+    }
+
 \end{code}
 
 Finally, decide what to queue up for linker input.
@@ -2618,7 +2624,7 @@ sub add_syslib {
        [  # where to slurp interface files from
          ( $INSTALLING 
               ? "$InstLibDirGhc/imports/text"
-              : "$TopPwd/hslibs/text:$TopPwd/hslibs/text/html:$TopPwd/hslibs/text/haxml/lib"
+              : "$TopPwd/hslibs/text:$TopPwd/hslibs/text/html:$TopPwd/hslibs/text/haxml/lib:$TopPwd/hslibs/text/parsec"
          )
        , # where to find the archive to use when linking
          ( $INSTALLING 
@@ -2652,7 +2658,7 @@ sub add_syslib {
               ? "$InstLibDirGhc"
               : "$TopPwd/hslibs/util/cbits"
          )
-       , 'lang concurrent posix' # Syslib dependencies
+       , 'lang concurrent' . (( $TargetPlatform =~ /^.*(cygwin32|mingw32)$/ ) ? '' : ' posix' ) # Syslib dependencies
        , ''     # extra ghc opts
        , ''     # extra cc opts
        , "$LibsReadline"     # extra ld opts
@@ -3272,7 +3278,13 @@ arg: while($_ = $Args[0]) {
 
     # --------------- Warnings etc. ------
 
-    /^-fwarn-(.*)$/      && do { push(@HsC_flags, $_); next arg; };
+    /^-fwarn-(.*)$/ && do { if (!grep(/$1/,@MinusWallOpts)) {
+                               print STDERR "$Pgm: unrecognised warning option: $_\n";
+                               $Status++;
+                           } else {                            
+                               push(@HsC_flags, $_); 
+                           }
+                           next arg; };
 
     /^-fno-(.*)$/   && do { push(@HsC_antiflags, "-f$1");
                            &squashHscFlag("-f$1");