diff --git a/Distribution/Simple/Program.hs b/Distribution/Simple/Program.hs index 48165391a5ff281f634e634af3044d9757f5e0af..f28976ffbb7ef66e4dd0e116e6c252b1c9893627 100644 --- a/Distribution/Simple/Program.hs +++ b/Distribution/Simple/Program.hs @@ -93,6 +93,7 @@ import Distribution.Version (Version(..), readVersion, showVersion, import Distribution.Verbosity import System.Directory (doesFileExist, removeFile) import System.FilePath (dropExtension) +import System.IO.Error (try) import Control.Monad (join, foldM) import Control.Exception as Exception (catch) @@ -564,7 +565,7 @@ hsc2hsProgram = (simpleProgram "hsc2hs") { withTempFile "." "hsc" $ \hsc -> do writeFile hsc "" (str, _) <- rawSystemStdout' verbosity path [hsc, "--cflag=--version"] - removeFile (dropExtension hsc ++ "_hsc_make.c") + try $ removeFile (dropExtension hsc ++ "_hsc_make.c") case words str of (_:"Glorious":"Glasgow":"Haskell":_) -> return $ Just version { versionTags = ["ghc"] }