Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp3079588rwb; Mon, 16 Jan 2023 03:30:58 -0800 (PST) X-Google-Smtp-Source: AMrXdXvIqUaOBARAeypIGGUrDihnZyKLMom80ryhf4kP+kS96ZsfNeJlbfcObx0E9TTRJiR8r6AY X-Received: by 2002:a17:90a:d803:b0:229:7947:49b6 with SMTP id a3-20020a17090ad80300b00229794749b6mr3710047pjv.42.1673868658045; Mon, 16 Jan 2023 03:30:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673868658; cv=none; d=google.com; s=arc-20160816; b=RZD9We+xBFbRGwN8ZCFKH7zFQLSEycNsZPYT9EhjFaLVeLwZJzulqKag60xIMDI9rH Ij5oQXXZd0bOcvIlpneE2m11ltWoQj4CVjklvE0hqURxlVpAryJ7EUuKUNSy74z3688v RDc392Wvs8LbgNJhrlY9pf8u4ET0+ZBayyBxmu3mT2iOFB9BsB5QzcgoCoF7H1mJQoU1 I/GKU7xP6Yi7fjGm+YUMu2zSyXm8Q65bgRtl+T/oHQ0vwzR2QiBYnnozmlNkvZLbk4aK 5Yxouz5DDl52fI+qtaGowEhu3AgFLl2Kaa/+XYssDvPBkY6B4IY9bwZDgi7aBwgF7tYj hcVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:content-language:to :subject:from:user-agent:mime-version:date:message-id:dkim-signature :dkim-signature; bh=07tGz6KgbKklDF1+St8lfTDW5T8BQgfj3DAzdtWsD9g=; b=b3NvAO0PjVOH4StrLj/IuhlZusdi5Rkh6r7pZXRUDo3IstBRuDEpwmMBH4RhUL3VWN C2e+IuI/wyEb65cwR9T1qpiePvSnGsz5sxPzd0tAGBdmKobEI+bm8ZzjPD6WgMF7t5wc me8eiuX+DLCw4Qec/BoPDylQy5yp377zrFpvmGxTvfBQxjP2DWuVY2V+5+gydhEHxtUZ css1fusLQtlsvHxD2Yk+a/z19hybUNc6bPzbsFeP1CWX1BnoQasL/G2rM2VUTGR9H/je vlpxW+vXNQObhBtjeqEXkgSjfT2/fvBwi/Z5XqUm6ljkYRViFXN3+1YgiURbD7lmlG/t CSUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.cz header.s=susede2_rsa header.b=LQdOaJX8; dkim=neutral (no key) header.i=@suse.cz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id il11-20020a17090b164b00b0020a66fc1398si7224480pjb.91.2023.01.16.03.30.51; Mon, 16 Jan 2023 03:30:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.cz header.s=susede2_rsa header.b=LQdOaJX8; dkim=neutral (no key) header.i=@suse.cz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230374AbjAPKpo (ORCPT + 51 others); Mon, 16 Jan 2023 05:45:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229991AbjAPKpg (ORCPT ); Mon, 16 Jan 2023 05:45:36 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F00D4683; Mon, 16 Jan 2023 02:45:35 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id C553D676BA; Mon, 16 Jan 2023 10:45:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1673865933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=07tGz6KgbKklDF1+St8lfTDW5T8BQgfj3DAzdtWsD9g=; b=LQdOaJX8EV+wYaNrqmbkXaFbawj3kRdqciizymTrkj2hOzDLROhNLue1qNtwB2zFAddfkK YkL6bUr1r67r//HHPXckHEAaYtQbTcA9xsCEbs5jJfDiK4Q7gr9ls55ZU1qNur+sT9oaQw 3kDSJWGm8sr5Mm2fRuKVz6t2VtvRiUI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1673865933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=07tGz6KgbKklDF1+St8lfTDW5T8BQgfj3DAzdtWsD9g=; b=0yoE3f2+OQ2/GoKwOJKl+rb9IAzvOmCKgUkF50WNxGu8+RVUtYgYCZowQaH1Pc+6tJrVAH rIPB2950VQyBFCAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A055E138FE; Mon, 16 Jan 2023 10:45:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id YU4LJs0qxWM7WwAAMHmgww (envelope-from ); Mon, 16 Jan 2023 10:45:33 +0000 Message-ID: Date: Mon, 16 Jan 2023 11:45:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Subject: [PATCH] scripts: support GNU make 4.4 in jobserver-exec To: linux-kernel@vger.kernel.org Content-Language: en-US Cc: linux-block@vger.kernel.org, Masahiro Yamada , nicolas@fjasle.eu, axboe@kernel.dk, josef@toxicpanda.com, keescook@chromium.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Starting with GNU make 4.4, --jobserver-auth newly uses named pipe (fifo) instead of part of opened file descriptors: https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html Support also the new format. Signed-off-by: Martin Liska --- scripts/jobserver-exec | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/scripts/jobserver-exec b/scripts/jobserver-exec index 4192855f5b8b..7eca035472d3 100755 --- a/scripts/jobserver-exec +++ b/scripts/jobserver-exec @@ -26,11 +26,20 @@ try: # 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. - reader = os.open("/proc/self/fd/%d" % (reader), - os.O_RDONLY | os.O_NONBLOCK) + + # Starting with GNU Make 4.4, named pipes are used for reader and writer. + # Example argument: --jobserver-auth=fifo:/tmp/GMfifo8134 + _, _, path = fds.partition('fifo:') + + if path: + reader = os.open(path, os.O_RDONLY | os.O_NONBLOCK) + writer = os.open(path, os.O_WRONLY) + else: + 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. + reader = os.open("/proc/self/fd/%d" % (reader), + os.O_RDONLY | os.O_NONBLOCK) # Read out as many jobserver slots as possible. while True: -- 2.39.0