From: panne Date: Sun, 4 Jun 2000 08:45:39 +0000 (+0000) Subject: [project @ 2000-06-04 08:45:39 by panne] X-Git-Tag: Approximately_9120_patches~4324 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=bbac85c2ec4af61e6102689a35301d578bbda5f0;p=ghc-hetmet.git [project @ 2000-06-04 08:45:39 by panne] Unbreak the driver again --- diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl index de556e4..7badbc4 100644 --- a/ghc/driver/ghc.lprl +++ b/ghc/driver/ghc.lprl @@ -253,7 +253,7 @@ problems, so I'm turing on the warnings -- SDM 4/5/98) \begin{code} $CcRegd = $GHC_OPT_HILEV_ASM; @CcBoth_flags = ('-S','-Wimplicit'); # flags for *any* C compilation -@CcInjects = (); +@CcInjects = ("#include \"Stg.h\"\n", "#include \"HsStd.h\"\n"); # GCC flags: # those for all files, @@ -1119,6 +1119,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" )); @@ -1686,7 +1687,7 @@ sub runHscAndProcessInterfaces { # See if it bailed out early, saying nothing needed doing. # We work this out by seeing if it created an output .hi file - if ( ! -f $hsc_hi && $ProduceHi !~ /-nohifile=/ ) { + if ( ! -f $hsc_out ) { # Doesn't exist, so we bailed out early. # Tell the C compiler and assembler not to run $do_cc = 0; $do_as = 0; @@ -1723,10 +1724,14 @@ sub runHscAndProcessInterfaces { # Interface-handling is important enough to live off by itself - if ( $ProduceHi !~ /-nohifile=/ ) { # If we've produced one, process it. - require('ghc-iface.prl') || &tidy_up_and_die(1,"$Pgm: panic: can't load ghc-iface.prl!\n"); - &postprocessHiFile($hsc_hi, $hifile_target, $going_interactive); + if ( -f $hsc_hi ) { + # print STDERR "Aha! A new hi file\n" ; + &run_something( "mv $hsc_hi $hifile_target", "Copy hi file" ) ; + } else { + # print STDERR "Oh ho! Hi file unchanged\n" ; } + + # if we're going to split up object files, # we inject split markers into the .hc file now if ( $HscLang eq 'C' && $SplitObjFiles ) { @@ -2118,11 +2123,7 @@ sub runGcc { # a tmp .c file which #include's the needful. open(TMP, "> $cc_help") || &tidy_up_and_die(1,"$Pgm: failed to open `$cc_help' (to write)\n"); if ( $is_hc_file ) { - print TMP <= 0; + print TMP @CcInjects; } else { # Straight .c files may want to know that they're being used # with a particular version of GHC, so we define __GLASGOW_HASKELL__ for their benefit. @@ -2674,7 +2675,7 @@ sub add_syslib { ? "$InstLibDirGhc" : "$TopPwd/hslibs/win32/src" ) - , '' # No cbits archive + , '' , 'lang greencard' # Syslib dependencies , '' # extra ghc opts , '' # extra cc opts @@ -2698,6 +2699,7 @@ sub add_syslib { , '' # extra cc opts , '' # extra ld opts ], + com, [ # where to slurp interface files from ( $INSTALLING