--- a/redo/jobserver.py 2021-07-28 05:48:36.000000000 +0200 +++ b/redo/jobserver.py 2026-10-17 20:19:12.540326252 +0200 @@ -227,9 +227,16 @@ def setup(maxjobs): if ofs >= 0: s = flags[ofs+len(FIND):] (arg, junk) = s.split(' ', 1) - (a, b) = arg.split(',', 1) - a = atoi(a) - b = atoi(b) + if arg.startswith('fifo:'): + # GNU make 4.4 passes a named pipe instead of fds + fd = os.open(arg[5:], os.O_RDWR) + a = fcntl.fcntl(fd, fcntl.F_DUPFD, 100) + b = fcntl.fcntl(fd, fcntl.F_DUPFD, 101) + os.close(fd) + else: + (a, b) = arg.split(',', 1) + a = atoi(a) + b = atoi(b) if a <= 0 or b <= 0: logs.err('invalid --jobserver-auth: %r\n' % arg) raise helpers.ImmediateReturn(200)