On 7/31/19 10:08 AM, Jan Hubicka wrote: > Hi, > >> We do not detect jobserver because of Dejagnu is not using it. >> And yes, we default to -flto=<numthreads> in LTO tests now. That's >> what is causing issues right now. > > Why the error messages are > make[4]: *** write jobserver: Bad file descriptor. Stop. > make[4]: *** Waiting for unfinished jobs.... > make[4]: *** write jobserver: Bad file descriptor. Stop. > It seems to me that it is internal make from lto-wrapper trying to get > jobserver access?
Hard to guess. Can you Jakub debug that? I don't see the error message. > >> Works for me. > > We probably also can give it a meaning controlling the default parameter > of -flto. > I.e. setenv GCC_LTO_PARALLELISM <numthreads/auto/jobserv> > which we will default to in case only -flto is passed to command line. Interesting idea, I like it, but: - if we detect that jobserver will not work, GCC_LTO_PARALLELISM=jobserver is useless - auto equals now to 'unset GCC_LTO_PARALLELISM' So the only interesting value is numthreads. Then I would recommend to use GCC_LTO_MAX_AUTO_THREADS? > > Make's jobserver is quite nice and easy to use. If it supported named > pipe and there was a small library which allowed to initialize jobserver > and connect to it, perhaps other tools needing parallelism during build > (GCC, ninja, llvm, ...) would be able to use common protocol. Can be a nice GSoC project for next year? Martin > > Honza >