#1559: make -j doesn't work in libraries/ on Cygwin
-----------------------------+----------------------------------------------
    Reporter:  simonmar      |        Owner:         
        Type:  bug           |       Status:  new    
    Priority:  high          |    Milestone:  6.8    
   Component:  Build System  |      Version:  6.6.1  
    Severity:  normal        |   Resolution:         
    Keywords:                |   Difficulty:  Unknown
          Os:  Windows       |     Testcase:         
Architecture:  Unknown       |  
-----------------------------+----------------------------------------------
Changes (by igloo):

  * owner:  igloo =>

Comment:

 I suspect this is something to do with FDs getting closed somewhere or
 similar. Using the name Makefile rather than GNUmakefile seems to behave
 differently, as demonstrated below. Anyone got any ideas?

 {{{
 $ cat rundir.hs

 import System.Cmd
 import System.Directory
 import System.Environment
 import System.Exit

 main = do (dir : prog : args) <- getArgs
           setCurrentDirectory dir
           rawSystem prog args >>= exitWith

 $ ghc --make rundir
 [1 of 1] Compiling Main             ( rundir.hs, rundir.o )
 Linking rundir.exe ...

 $ cat Makefile

 yes:
         ./rundir works $(MAKE)

 no:
         ./rundir fails $(MAKE)

 $ cat fails/GNUmakefile

 all: foo bar

 foo:
         echo $@

 bar:
         echo $@

 $ cat works/Makefile

 all: foo bar

 foo:
         echo $@

 bar:
         echo $@

 $ diff -u fails/GNUmakefile works/Makefile

 $ make no -j2
 ./rundir fails make
 make[1]: Entering directory
 `/home/ian/ghc/darcs/build/libraries/bug/fails'
 echo foo
 make[1]: *** read jobs pipe: Is a directory.  Stop.
 make[1]: *** Waiting for unfinished jobs....
 foo
 make[1]: Leaving directory `/home/ian/ghc/darcs/build/libraries/bug/fails'
 make: *** [no] Error 2

 $ make yes -j2
 ./rundir works make
 make[1]: Entering directory
 `/home/ian/ghc/darcs/build/libraries/bug/works'
 make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent
 make rule.
 echo foo
 foo
 echo bar
 bar
 make[1]: Leaving directory `/home/ian/ghc/darcs/build/libraries/bug/works'

 $
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1559>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to