Open bjorn3 opened 1 year ago
I can confirm that the new (default since GNU make 4.4) fifo method makes this crate ignore the jobserver. That unfortunately includes Cargo.
Here's a reproducer: https://github.com/kaspar030/jobserver-rs-fifo-test
as a workaround, use --jobserver-style=pipe
as top-level make option.
Here's the output from above's test application:
For safety/reliability reasons this should become the preferred jobserver protocol in the future since it avoids mucking with file descriptors based on environment variables where inherited environment variables and inherited descriptors can get out of sync.
Could you be more specific about the workaround? How do I pass --jobserver-style=pipe
? I have tried MAKEFLAGS=--jobserver-style=pipe cargo build
but it didn't fix the problem for me.
as a workaround, use
--jobserver-style=pipe
as top-level make option.
See --jobserver-type
in GNU make manual.
Docs: https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html#POSIX-Jobserver Release announcement: https://lwn.net/Articles/913253/
On systems that support it GNU Make 4.4 will now use
--jobserver-auth=fifo:PATH
wherePATH
points to a named pipe rather than--jobserver-auth=R,W
. I haven't checked if this breaks anything, but based on looking at the code it seems like it will cause the jobserver to be ignored entirely.