From 8239d074412691baee386950a377fdcc0dbb58aa Mon Sep 17 00:00:00 2001 From: rrt <unknown> Date: Wed, 19 Jul 2000 10:07:29 +0000 Subject: [PATCH] [project @ 2000-07-19 10:07:29 by rrt] Gave driver access to bash for running system calls under Windows by writing command out to a temp file, then sending that as the argument to "sh -". Sigh. This is #ifdefed on mingw32_TARGET_OS; saner OSs just use system as normal. --- ghc/driver/Main.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ghc/driver/Main.hs b/ghc/driver/Main.hs index 7bcb9d00dd41..45c5fee71e64 100644 --- a/ghc/driver/Main.hs +++ b/ghc/driver/Main.hs @@ -1690,8 +1690,18 @@ run_something phase_name cmd unless n $ do -- and run it! +#ifndef mingw32_TARGET_OS exit_code <- system cmd `catchAllIO` (\e -> throwDyn (PhaseFailed phase_name (ExitFailure 1))) +#else + tmp <- newTempName "sh" + h <- openFile tmp WriteMode + hPutStrLn h cmd + hClose h + exit_code <- system ("sh - " ++ tmp) `catchAllIO` + (\e -> throwDyn (PhaseFailed phase_name (ExitFailure 1))) + removeFile tmp +#endif if exit_code /= ExitSuccess then throwDyn (PhaseFailed phase_name exit_code) -- GitLab