GNU make losing jobserver tokens

Roumen Petrov bugtrack@roumenpetrov.info
Wed Mar 23 06:24:44 GMT 2022


Hi,

Magnus Ihse Bursie wrote:
> Hi,
>
> I'm working for Oracle on the OpenJDK build team. We're using GNU make to build the JDK on all supported platforms. For Windows, we use Cygwin as our build environment, including the Cygwin version of GNU make.
>
> We have had a long-standing issue with make losing jobserver tokens. ("long-standing" here means for years, and years, at least since GNU make 4.0, up to and including the current latest version in Cygwin.)
>
Parallel build was working for my on 32-bit cygwin in the past.


> Most runs end with something like:
>
> make[2]: INTERNAL: Exiting with 11 jobserver tokens available; should be 12!
>
> Since the build still succeeds, and it just affects performance (and typically not that much), we have not spend too much time getting to the bottom of this.

Now I cannot get it working on 64-bit cygwin -
https://www.mail-archive.com/cygwin@cygwin.com/msg169861.html

Interesting that you build succeeds.


>
> [SNIP]
> Instead, they suggested that it was a Cygwin-specific problem, possibly related to issues with emulating Posix pipes and/or signals in Cygwin.

There is some issues in the my build environment:
- unix domain socket as non administrator (https://www.mail-archive.com/cygwin@cygwin.com/msg169832.html ). If I remember well those socket does not work properly in general.
- setup as not admin - package upgrade failed (https://www.mail-archive.com/cygwin@cygwin.com/msg169830.html).

The second one look like issue with pipes.


>
> So, my first question is: Is this a known problem in Cygwin GNU make? Are there any workarounds/fixes to get around it?

Does not look like issue in make. Look like general issue.
May be related to Microsoft Windows OS restriction to user account.

>
> Otherwise: Any suggestions on how to go on and debug this? I am willing to build and test an instrumented debug build of make, but I will need assistance to find my way around the source and spot likely candidates for the source of the problem.

I'm not regular cygwin user and I do not have time and environments to test build variations.
Perhaps build could use local administrator account or to use jobs lest than number of cores.

> /Magnus

Regards,
Roumen Petrov



More information about the Cygwin mailing list