
#15758: hsc2hs broken due to incorrect argument passing to the hsc2hs executable -------------------------------------+------------------------------------- Reporter: osa1 | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by osa1): OK so if I understand this correctly here's how this happens: - hsc2hs built using bootstrap compiler, which in my case is 8.4.4, which doesn't have `getArgsWithResponseFiles` function. - So in [https://github.com/haskell/hsc2hs/commit/0535fe65467d1a07b838c17c62438086c12... this commit] the code with `getArgs` is used. - However, Cabal doesn't consider this possibility that a new enough GHC is built using a GHC without `getArgsWithResponseFiles`, and just based on hsc2hs version thinks that it should support `getArgsWithResponseFiles`, and passes arguments usign response file conventions. The question is: is this a GHC bug or a Cabal bug? - If we want newer GHCs (HEAD, 8.8) to always support response files this is a GHC bug. - Otherwise this is a Cabal bug.
We certainly can't move hsc2hs out of 'Phase 0' as some artifacts in 'Phase 1' depend on it
What do you mean by "Phase"? I think we can build hsc2hs using stage 1 compiler and libs and that'd fix the problem, no? Any .hsc files for stage 1 can be compiled using bootstrap hsc2hs. Here's the hack I used to fix this on Cabal side: {{{ diff --git a/Cabal/Distribution/Simple/PreProcess.hs b/Cabal/Distribution/Simple/PreProcess.hs index daf419ef2..da231f9a0 100644 --- a/Cabal/Distribution/Simple/PreProcess.hs +++ b/Cabal/Distribution/Simple/PreProcess.hs @@ -396,7 +396,7 @@ ppHsc2hs bi lbi clbi = (hsc2hsProg, hsc2hsVersion, _) <- requireProgramVersion verbosity hsc2hsProgram anyVersion (withPrograms lbi) -- See Trac #13896 and https://github.com/haskell/cabal/issues/3122. - let hsc2hsSupportsResponseFiles = hsc2hsVersion >= mkVersion [0,68,4] + let hsc2hsSupportsResponseFiles = False pureArgs = genPureArgs gccProg inFile outFile if hsc2hsSupportsResponseFiles then withResponseFile }}} I'd suggest bumping priority, but I guess we should first decide whether to fix this on GHC side or Cabal side. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15758#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler