[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Regression on Cygwin: Problems with parallel make in 4.4

From: Ken Brown
Subject: Re: Regression on Cygwin: Problems with parallel make in 4.4
Date: Tue, 21 Feb 2023 08:35:23 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0

On 2/21/2023 3:54 AM, Ken Brown wrote:
On 2/21/2023 12:27 AM, Paul Smith wrote:
Just to note, I do run the regression test suite with the equivalent of
"jobserver-style=pipe" (basically I force the configure to believe that
the system doesn't support mkfifo() so it falls back to "pipe" mode).

Somehow the test suite isn't catching this problem, at least on Cygwin. As I mentioned in a different thread, all tests pass on Cygwin 3.4.6.

Can you run builds with GNU Make 4.4 and --jobserver-style=pipe?  Do
you see the same warnings there?  I just want to know if the problem
happened in 4.4 or post-4.4.  If the latter, that's very odd.  If the
former, it's more understandable because we did make the "pipe" mode
more strict in 4.4.

I do see it in 4.4 with --jobserver-style=pipe.  I misspoke when I said I first saw it in

This message means only one thing: the parent make didn't provide the
proper environment (that is, the correct file descriptors) to its sub-
make.  However, there could be different ways in which the environment
is wrong.

If you have the ability, it would be helpful if you could apply the
attached patch to your build of GNU Make and try the build again, and
let me know which of these different messages are generated right
before the above error >
I'll be able to do that later today.

I applied the patch to and ran 'make -j13 check' in my TeX Live build directory, which is /home/kbrown/src/texlive/test.x86_64/Work. The warning occurs almost immediately, before any tests are run:

Making check in .
make[1]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work'
make[1]: Leaving directory '/home/kbrown/src/texlive/test.x86_64/Work'
Making check in doc
make[1]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work/doc'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/home/kbrown/src/texlive/test.x86_64/Work/doc'
Making check in texk/kpathsea
make[1]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work/texk/kpathsea'
make  check-recursive
make[2]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work/texk/kpathsea'
Making check in .
make[3]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work/texk/kpathsea'
make  check-TESTS
make[4]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work/texk/kpathsea' make[5]: Entering directory '/home/kbrown/src/texlive/test.x86_64/Work/texk/kpathsea'
make[5]: not recursive -2,-2
make[5]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.

It would also be very helpful if someone could provide me with the
complete rule that the parent make uses to invoke the sub-make, where
that message appears.  And, if you can include the output that make
generates to invoke the submake (the command it prints) that would be
excellent as well.

I'm not sure how to sort that out, but I'm attaching the top-level Makefile as well as the one in texk/kpathsea in the hope that you can figure out what's going on.


Attachment: Makefile.kpathsea
Description: Text document

Attachment: Makefile.top
Description: Text document

reply via email to

[Prev in Thread] Current Thread [Next in Thread]