summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hadrian/src/Hadrian/Builder/Ar.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/hadrian/src/Hadrian/Builder/Ar.hs b/hadrian/src/Hadrian/Builder/Ar.hs
index ad74653db0..d43bc0be00 100644
--- a/hadrian/src/Hadrian/Builder/Ar.hs
+++ b/hadrian/src/Hadrian/Builder/Ar.hs
@@ -50,8 +50,9 @@ arFlagsCount = 2
runAr :: FilePath -> [String] -> Action ()
runAr arPath argList = withTempFile $ \tmp -> do
writeFile' tmp $ unwords fileArgs
- cmd [arPath] flagArgs ('@' : tmp)
+ cmd_ env [arPath] flagArgs ('@' : tmp)
where
+ env = Env [("LANG","C.utf8")] -- avoid encoding issue when reading stdout. See #
flagArgs = take arFlagsCount argList
fileArgs = drop arFlagsCount argList
@@ -62,7 +63,8 @@ runAr arPath argList = withTempFile $ \tmp -> do
runArWithoutTempFile :: FilePath -> [String] -> Action ()
runArWithoutTempFile arPath argList =
forM_ (chunksOfSize cmdLineLengthLimit fileArgs) $ \argsChunk ->
- unit . cmd [arPath] $ flagArgs ++ argsChunk
+ cmd_ env [arPath] flagArgs argsChunk
where
+ env = Env [("LANG","C.utf8")] -- avoid encoding issue when reading stdout. See #
flagArgs = take arFlagsCount argList
fileArgs = drop arFlagsCount argList