
#9673: aarch64 7.8.4, 7.10, 7.11: lib/ghc/bin/ghc-pkg --version does not output from subprocess -------------------------------------+------------------------------------- Reporter: juhpetersen | Owner: Type: bug | Status: new Priority: high | Milestone: Component: Compiler | Version: 7.10.1-rc1 Resolution: | Keywords: Operating System: Linux | Architecture: aarch64 Type of failure: Installing GHC | Test Case: failed | Blocking: Blocked By: | Differential Revisions: Related Tickets: | -------------------------------------+------------------------------------- Comment (by erikd): Have a tiny test program (trimmed down version of `Distribution.Simple.Utils.rawSystemStdInOut` running the problem arguments) as follows: {{{#! hs import System.IO import System.Exit ( ExitCode(..) ) import Control.Concurrent import Control.Monad import Control.Exception (evaluate, finally) import System.Environment import System.Process main :: IO () main = do [path] <- getArgs -- "/home/erikd/GHC/7.11/bin/ghc-pkg" -- "/usr/bin /ghc-pkg" runInteractiveProcess path ["--version"] Nothing Nothing >>= \(inh,outh,errh,pid) -> do err <- hGetContents errh out <- hGetContents outh mv <- newEmptyMVar let force str = (evaluate (length str) >> return ()) `finally` putMVar mv () --TODO: handle exceptions like text decoding. _ <- forkIO $ force out _ <- forkIO $ force err -- wait for both to finish, in either order takeMVar mv takeMVar mv -- wait for the program to terminate exitcode <- waitForProcess pid unless (exitcode == ExitSuccess) $ print $ path ++ " returned " ++ show exitcode ++ if null err then "" else " with error message:\n" ++ err print (out, err, exitcode) }}} Compiling and running this in a couple of different ways results in some interesting results: {{{ $ /usr/bin/ghc-7.6.3 --make test.hs -o prog && ./prog /usr/bin/ghc-pkg Linking prog ... ("GHC package manager version 7.6.3\n","",ExitSuccess) $ /usr/bin/ghc-7.6.3 --make test.hs -o prog && \ ./prog /home/erikd/GHC/7.11/bin/ghc-pkg ("","",ExitSuccess) }}} This may be an output encoding issue as the `TODO` warning in the code warns about. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9673#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler