windres also needs the PATH workaround, because it runs gcc
[ghc-hetmet.git] / compiler / main / SysTools.lhs
index 7a2c081..2d4333c 100644 (file)
@@ -198,7 +198,7 @@ initSysTools mbMinusB dflags
                | otherwise    = inplace cGHC_MANGLER_DIR_REL cGHC_MANGLER_PGM
 
               windres_path
-               | am_installed = installed_bin "windres"
+               | am_installed = installed_bin "bin/windres"
                | otherwise    = "windres"
 
        ; let dflags0 = defaultDynFlags
@@ -528,11 +528,15 @@ runWindres :: DynFlags -> [Option] -> IO ()
 runWindres dflags args = do
   let (gcc,gcc_args) = pgm_c dflags
       windres        = pgm_windres dflags
-  runSomething dflags "Windres" windres 
-        (Option ("--preprocessor=" ++ gcc ++ unwords (map showOpt gcc_args) ++
+  mb_env <- getGccEnv gcc_args
+  runSomethingFiltered dflags id "Windres" windres 
+        -- we must tell windres where to find gcc: it might not be on PATH
+        (Option ("--preprocessor=" ++ gcc ++ " " ++
+                                      unwords (map showOpt gcc_args) ++
                  " -E -xc -DRC_INVOKED")
          : args)
-        -- we must tell windres where to find gcc: it might not be on PATH
+        -- we must use the PATH workaround here too, since windres invokes gcc
+        mb_env
 
 touch :: DynFlags -> String -> String -> IO ()
 touch dflags purpose arg =