Commit f8f4dc76 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

scripts/jobserver-exec: parse the last --jobserver-auth= option

In the GNU Make manual, the section "Sharing Job Slots with GNU make"
says:

    Be aware that the MAKEFLAGS variable may contain multiple instances
    of the --jobserver-auth= option. Only the last instance is relevant.

Take the last element of the array, not the first.

Link: https://www.gnu.org/software/make/manual/html_node/Job-Slots.html


Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
Reviewed-by: default avatarNicolas Schier <nicolas@fjasle.eu>
parent be5ea989
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@ try:
	opts = [x for x in flags.split(" ") if x.startswith("--jobserver")]

	# Parse out R,W file descriptor numbers and set them nonblocking.
	fds = opts[0].split("=", 1)[1]
	# If the MAKEFLAGS variable contains multiple instances of the
	# --jobserver-auth= option, the last one is relevant.
	fds = opts[-1].split("=", 1)[1]
	reader, writer = [int(x) for x in fds.split(",", 1)]
	# Open a private copy of reader to avoid setting nonblocking
	# on an unexpecting process with the same reader fd.