[project @ 2000-02-25 14:55:31 by panne]
[ghc-hetmet.git] / ghc / driver / ghc.lprl
index 2b66048..e3720e3 100644 (file)
@@ -272,6 +272,8 @@ warnings that you get all the time are
        
        -fwarn-overlapping-patterns
        -fwarn-missing-methods
+       -fwarn-missing-fields
+       -fwarn-deprecations
        -fwarn-duplicate-exports
 
 these are turned off by -Wnot.
@@ -280,6 +282,7 @@ these are turned off by -Wnot.
 @StandardWarnings = ('-fwarn-overlapping-patterns', 
                     '-fwarn-missing-methods',
                     '-fwarn-missing-fields',
+                    '-fwarn-deprecations',
                     '-fwarn-duplicate-exports');
 @MinusWOpts              = (@StandardWarnings, 
                     '-fwarn-unused-binds',
@@ -690,7 +693,6 @@ sub setupOptimiseFlags {
     = (        
        '-fsimplify',
          '[', 
-               '-finline-phase2',
                $Oopt_MaxSimplifierIterations,
          ']',
 
@@ -875,7 +877,6 @@ Sort out @$BuildTag@, @$PROFing@, @$PARing@,
 \begin{code}
 sub setupBuildFlags {
 
-
    # PROFILING stuff after argv mangling:
    if ( ! $PROFing ) {
      # add -auto sccs even if not profiling !
@@ -1078,8 +1079,8 @@ sub setupLinkOpts {
   unshift(@Ld_flags,
          ( '-u', "${uscore}PrelBase_Izh_static_info"
           ,'-u', "${uscore}PrelBase_Czh_static_info"
-          ,'-u', "${uscore}PrelBase_Fzh_static_info"
-          ,'-u', "${uscore}PrelBase_Dzh_static_info"
+          ,'-u', "${uscore}PrelFloat_Fzh_static_info"
+          ,'-u', "${uscore}PrelFloat_Dzh_static_info"
           ,'-u', "${uscore}PrelAddr_Azh_static_info"
           ,'-u', "${uscore}PrelAddr_Wzh_static_info"
           ,'-u', "${uscore}PrelAddr_I64zh_static_info"
@@ -1087,8 +1088,8 @@ sub setupLinkOpts {
           ,'-u', "${uscore}PrelStable_StablePtr_static_info"
          ,'-u', "${uscore}PrelBase_Izh_con_info"
           ,'-u', "${uscore}PrelBase_Czh_con_info"
-          ,'-u', "${uscore}PrelBase_Fzh_con_info"
-          ,'-u', "${uscore}PrelBase_Dzh_con_info"
+          ,'-u', "${uscore}PrelFloat_Fzh_con_info"
+          ,'-u', "${uscore}PrelFloat_Dzh_con_info"
           ,'-u', "${uscore}PrelAddr_Azh_con_info"
           ,'-u', "${uscore}PrelAddr_Wzh_con_info"
           ,'-u', "${uscore}PrelAddr_I64zh_con_info"
@@ -1112,7 +1113,9 @@ sub setupLinkOpts {
     #  unshift(@Ld_flags, ('-Xlinker -bbigtoc -Xlinker -bnoquiet')); 
     unshift(@Ld_flags, ('-Xlinker -bbigtoc')); 
   }
-
+  if ($TargetPlatform =~ /^hppa/) {
+    unshift(@Ld_flags, ('-Xlinker +vnocompatwarnings'));
+  }
 
 } # end of setupLinkOpts
 
@@ -1913,6 +1916,7 @@ eval 'exec perl -S \$0 \${1+"\$@"}'
 # =!=!=!=!=!=!=!=!=!=!=!
 # This script is automatically generated: DO NOT EDIT!!!
 # Generated by Glasgow Haskell, version ${ProjectVersion}
+# ngoqvam choHbogh vaj' vIHoHnISbej !!!!
 #
 \$pvm_executable      = '$pvm_executable';
 \$pvm_executable_base = '$pvm_executable_base';
@@ -1944,7 +1948,9 @@ args: while ($a = shift(@ARGV)) {
     }
     if ( $a eq '-d' && $in_RTS_args ) {
        $debug = '-';
-    } elsif ( $a =~ /^-N(\d+)/ && $in_RTS_args ) {
+    } elsif ( $a =~ /^-qN(\d+)/ && $in_RTS_args ) {
+       $nprocessors = $1;
+    } elsif ( $a =~ /^-qp(\d+)/ && $in_RTS_args ) {
        $nprocessors = $1;
     } else {
        push(@nonPVM_args, $a);
@@ -2170,7 +2176,7 @@ sub runAs {
     # need to add the -I flags in case the file is going through cpp (.S files)
     local($includes) = '-I' . join(' -I', @Include_dir);
 
-    if ( ! $SplitObjFiles ) {
+   if ( ! $SplitObjFiles || $ifile_root =~ /_stub\.s$/ ) {
        local($to_do)  = "$asmblr -o $as_out -c @As_flags $includes $cc_as";
        push(@Files_to_tidy, $as_out );
        &run_something($to_do, 'Unix assembler');
@@ -2262,12 +2268,24 @@ sub run_something {
        close(CCOUT) || &tidy_up_and_die(1,"$Pgm: failed closing `$Tmp_prefix.ccout'\n");
     }
 
+    local($signal_num)  = $? & 127;
+    local($dumped_core) = $? & 128;
+
+    if ($signal_num != 0) {
+       print STDERR "$tidy_name received signal $signal_num";
+       if ($dumped_core != 0) {
+               print STDERR " (core dumped)";
+       }
+       print STDERR "\n";
+    }
+
     if ($return_val != 0) {
         if ($Using_dump_file) {
            print STDERR "Compilation Errors dumped in $Specific_dump_file\n";
        }
        &tidy_up_and_die($return_val, '');
     }
+
     $Using_dump_file = 0;
 }
 \end{code}
@@ -2484,104 +2502,152 @@ sub add_syslib {
 
     # Lifting this out of this sub brings it out of scope - why??
     %Supported_syslibs =
-     ( exts,
+     ( lang,
        [  # where to slurp interface files from
          ( $INSTALLING 
-              ? "$InstLibDirGhc/imports/exts"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/exts"
+              ? "$InstLibDirGhc/imports/lang"
+              : "$TopPwd/hslibs/lang:$TopPwd/hslibs/lang/monads"
          )
        , # where to find the archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/exts"
+              : "$TopPwd/hslibs/lang"
+         )
+       , # where to find the cbits archive to use when linking
+         ( $INSTALLING 
+              ? "$InstLibDirGhc"
+              : "$TopPwd/hslibs/lang/cbits"
          )
-       , '' # no cbits
        , '' # Syslib dependencies
        , '' # extra ghc opts
        , '' # extra cc opts
        , '' # extra ld opts
        ],
 
-       misc,
+       concurrent,
        [  # where to slurp interface files from
          ( $INSTALLING 
-              ? "$InstLibDirGhc/imports/misc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/misc"
+              ? "$InstLibDirGhc/imports/concurrent"
+              : "$TopPwd/hslibs/concurrent"
          )
        , # where to find the archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/misc"
+              : "$TopPwd/hslibs/concurrent"
          )
-       , # where to find the cbits archive to use when linking
+       , '' # where to find the cbits archive to use when linking
+       , '' # Syslib dependencies
+       , '' # extra ghc opts
+       , '' # extra cc opts
+       , '' # extra ld opts
+       ],
+
+       data,
+       [  # where to slurp interface files from
+         ( $INSTALLING 
+              ? "$InstLibDirGhc/imports/data"
+              : "$TopPwd/hslibs/data:$TopPwd/hslibs/data/edison:$TopPwd/hslibs/data/edison/Assoc:$TopPwd/hslibs/data/edison/Coll:$TopPwd/hslibs/data/edison/Seq"
+         )
+       , # where to find the archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/misc/cbits"
+              : "$TopPwd/hslibs/data"
          )
-       , 'exts concurrent' # Syslib dependencies
-       , ''     # extra ghc opts
-       , ''     # extra cc opts
-       , ( $TargetPlatform =~ /-solaris2$/  ? '-lnsl -lsocket' : '')
+       , '' # where to find the cbits archive to use when linking
+       , '' # Syslib dependencies
+       , '' # extra ghc opts
+       , '' # extra cc opts
+       , '' # extra ld opts
        ],
-       hbc,
+
+       net,
        [  # where to slurp interface files from
          ( $INSTALLING 
-              ? "$InstLibDirGhc/imports/hbc"
-              : "$TopPwd/CONTRIB/libraries/hbc/src"
+              ? "$InstLibDirGhc/imports/net"
+              : "$TopPwd/hslibs/net"
          )
        , # where to find the archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/CONTRIB/libraries/src/hbc"
+              : "$TopPwd/hslibs/net"
          )
        , # where to find the cbits archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/CONTRIB/libraries/hbc/cbits"
+              : "$TopPwd/hslibs/net/cbits"
          )
-       , 'exts' # Syslib dependencies
-       , ''     # extra ghc opts
-       , ''     # extra cc opts
-       , ''
+       , 'lang text' # Syslib dependencies
+       , '' # extra ghc opts
+       , '' # extra cc opts
+       , ( $TargetPlatform =~ /-solaris2$/  ? '-lnsl -lsocket' : '')
        ],
+
        posix,
        [  # where to slurp interface files from
          ( $INSTALLING 
               ? "$InstLibDirGhc/imports/posix"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/posix"
+              : "$TopPwd/hslibs/posix"
          )
        , # where to find the archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/posix"
+              : "$TopPwd/hslibs/posix"
          )
        , # where to find the cbits archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/posix/cbits"
+              : "$TopPwd/hslibs/posix/cbits"
          )
-       , 'misc' # Syslib dependencies
+       , 'lang' # Syslib dependencies
        , ''     # extra ghc opts
        , ''     # extra cc opts
        , ''     # extra ld opts
        ],
-       concurrent,
+
+       text,
        [  # where to slurp interface files from
          ( $INSTALLING 
-              ? "$InstLibDirGhc/imports/concurrent"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/concurrent"
+              ? "$InstLibDirGhc/imports/text"
+              : "$TopPwd/hslibs/text:$TopPwd/hslibs/text/html:$TopPwd/hslibs/text/haxml"
          )
        , # where to find the archive to use when linking
          ( $INSTALLING 
               ? "$InstLibDirGhc"
-              : "$TopPwd/$CURRENT_DIR/$GHC_LIB_DIR/concurrent"
+              : "$TopPwd/hslibs/text"
          )
-       , '' # where to find the cbits archive to use when linking
-       , '' # Syslib dependencies
+       , # where to find the cbits archive to use when linking
+         ( $INSTALLING 
+              ? "$InstLibDirGhc"
+              : "$TopPwd/hslibs/text/cbits"
+         )
+       , 'lang' # Syslib dependencies
        , '' # extra ghc opts
        , '' # extra cc opts
        , '' # extra ld opts
        ],
+
+       util,
+       [  # where to slurp interface files from
+         ( $INSTALLING 
+              ? "$InstLibDirGhc/imports/util"
+              : "$TopPwd/hslibs/util"
+         )
+       , # where to find the archive to use when linking
+         ( $INSTALLING 
+              ? "$InstLibDirGhc"
+              : "$TopPwd/hslibs/util"
+         )
+       , # where to find the cbits archive to use when linking
+         ( $INSTALLING 
+              ? "$InstLibDirGhc"
+              : "$TopPwd/hslibs/util/cbits"
+         )
+       , 'lang concurrent' # Syslib dependencies
+       , ''     # extra ghc opts
+       , ''     # extra cc opts
+       , ''     # extra ld opts
+       ],
+
        win32,
        [  # where to slurp interface files from
          ( $INSTALLING 
@@ -2594,11 +2660,12 @@ sub add_syslib {
               : "$TopPwd/hslibs/win32/src"
          )
        , ''
-       , 'exts' # Syslib dependencies
+       , 'lang' # Syslib dependencies
        , ''     # extra ghc opts
        , ''     # extra cc opts
        , '-luser32 -lgdi32'     # extra ld opts
        ],
+
        com,
        [  # where to slurp interface files from
          ( $INSTALLING 
@@ -2611,7 +2678,7 @@ sub add_syslib {
               : "$TopPwd/hdirect/lib"
          )
        , ''
-       , 'exts' # Syslib dependencies
+       , 'lang' # Syslib dependencies
        , ''     # extra ghc opts
        , ''     # extra cc opts
        , '-luser32 -lole32 -loleaut32 -ladvapi32'
@@ -2630,8 +2697,8 @@ sub add_syslib {
     # This check is here to avoid syslib loops from
     # spoiling the party. A side-effect of it is that
     # it disallows multiple mentions of a syslib on a command-line,
-    # explicit *and* implicit ones (i.e., "-syslib exts -syslib misc"
-    # is not equal to "-syslib exts -syslib misc -syslib exts",
+    # explicit *and* implicit ones (i.e., "-syslib lang -syslib misc"
+    # is not equal to "-syslib lang -syslib misc -syslib lang",
     # which it needs to be)
     # 
     # Since our current collection of syslibs don't have any
@@ -2643,12 +2710,13 @@ sub add_syslib {
        
     $Syslibs_added{$syslib} = 1;
 
-    local ($hi_dir, $lib_dir, $lib_cbits_dir,
+    local ($hi_dirs, $lib_dir, $lib_cbits_dir,
           $syslib_deps, $syslib_ghc_opts,
           $syslib_cc_opts, $syslib_ld_opts) = @{ $Supported_syslibs{$syslib} };
 
-
-    unshift(@SysImport_dir, $hi_dir);
+    foreach(split(':',$hi_dirs)) {
+       unshift(@SysImport_dir, $_);
+    }
     push(@SysLibrary_dir, $lib_dir);
     push(@SysLibrary_dir, $lib_cbits_dir) if ( $lib_cbits_dir ne '');
 
@@ -2757,9 +2825,24 @@ sub saveIntermediate {
   local ($final,$suffix,$tmp)= @_ ;
   local ($to_do);
 
+  local ($new_suffix);
+
   # $final  -- root of where to park ${final}.${suffix}
   # $tmp    -- temporary file where hsc put the intermediate file.
 
+  # HWL: use -odir for .hc and .s files, too
+  if ( $Specific_output_dir ne '' ) {
+    $final = "${Specific_output_dir}/${final}";
+  }    
+  # HWL: use the same suffix as for $Osuffix in generating intermediate file,
+  #      replacing o with hc or s, respectively. 
+  if ( $Osuffix ne '' ) {
+    ($new_suffix = $Osuffix) =~ s/o$/hc/ if $suffix eq "hc";
+    ($new_suffix = $Osuffix) =~ s/o$/s/ if $suffix eq "s";
+    $suffix = $new_suffix;
+    print stderr "HWL says: suffix for intermediate file is $suffix; ${final}.${suffix} overall\n" if $Verbose;
+  }
+
   # Delete the old file
   $to_do = "$Rm ${final}.${suffix}"; &run_something($to_do, "Removing old .${suffix} file");
 
@@ -3100,8 +3183,8 @@ arg: while($_ = $Args[0]) {
     /^-fglasgow-exts$/
                && do { push(@HsC_flags, $_);
 
-                       # -fglasgow-exts implies -syslib exts
-                       &add_syslib('exts');
+                       # -fglasgow-exts implies -syslib lang
+                       &add_syslib('lang');
 
                        next arg; };
 
@@ -3246,7 +3329,7 @@ arg: while($_ = $Args[0]) {
        } elsif ($heap_size >= $Specific_heap_size) {
            $Specific_heap_size = $heap_size;
        } else {
-           print STDERR "$Pgm: ignoring heap-size-setting option ($_)...not the largest seen\n";
+           print STDERR "$Pgm: ignoring heap-size-setting option ($_)...not the largest seen\n" if $Verbose;
        }
        next arg; };
 
@@ -3268,7 +3351,7 @@ arg: while($_ = $Args[0]) {
        } elsif ($stk_size >= $Specific_stk_size) {
            $Specific_stk_size = $stk_size;
        } else {
-           print STDERR "$Pgm: ignoring stack-size-setting option ($flag $stk_size)...not the largest seen\n";
+           print STDERR "$Pgm: ignoring stack-size-setting option ($flag $stk_size)...not the largest seen\n" if $Verbose;
        }
        next arg; };