diff --git a/Distribution/Simple/Program.hs b/Distribution/Simple/Program.hs index 3f0412a1b3f6d681a6222ae9b4947d7c2d9ec7ec..a2400fe41133abbebd5165be92db47dfce97bce9 100644 --- a/Distribution/Simple/Program.hs +++ b/Distribution/Simple/Program.hs @@ -92,7 +92,8 @@ import Distribution.Version import Distribution.Text ( simpleParse, display ) import Distribution.Verbosity -import System.Directory (doesFileExist, removeFile, findExecutable) +import System.Directory (doesFileExist, removeFile, findExecutable, + getTemporaryDirectory) import System.FilePath (dropExtension) import System.IO (hClose) import System.IO.Error (try) @@ -579,8 +580,9 @@ hsc2hsProgram = (simpleProgram "hsc2hs") { -- to see if it was indeed ghc or not. case maybeVersion of Nothing -> return Nothing - Just version -> - withTempFile "dist" ".hsc" $ \hsc hnd -> do + Just version -> do + tempDir <- getTemporaryDirectory + withTempFile tempDir ".hsc" $ \hsc hnd -> do hClose hnd (str, _) <- rawSystemStdout' verbosity path [hsc, "--cflag=--version"] try $ removeFile (dropExtension hsc ++ "_hsc_make.c")