From patchwork Tue Dec 3 15:06:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Berg X-Patchwork-Id: 11271463 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4001414B7 for ; Tue, 3 Dec 2019 15:06:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 29AEF2084F for ; Tue, 3 Dec 2019 15:06:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726819AbfLCPGS (ORCPT ); Tue, 3 Dec 2019 10:06:18 -0500 Received: from s3.sipsolutions.net ([144.76.43.62]:54616 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726214AbfLCPGS (ORCPT ); Tue, 3 Dec 2019 10:06:18 -0500 Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.92.3) (envelope-from ) id 1ic9kl-00FT5D-PR; Tue, 03 Dec 2019 16:06:15 +0100 From: Johannes Berg To: backports@vger.kernel.org Cc: Johannes Berg Subject: [PATCH] backports: speed up building with bash Date: Tue, 3 Dec 2019 16:06:10 +0100 Message-Id: <20191203150610.152231-1-johannes@sipsolutions.net> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Sender: backports-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: backports@vger.kernel.org From: Johannes Berg When building with /bin/sh -> bash, things are SUPER slow (at least for me), because bash takes a LOOONG time to look at the environment variables (and we typically have around 6k), adding ~300ms to each bash invocation for me. The reason we export them is that we need them in all of the sub- makes, and those only read auto.conf, which we can't change. Work around this by overriding 'make' itself, and using --eval to read *our* .config file into each make that gets called. This way, the variables are present in all make invocations in the same way as they would be through the environment, but don't get passed to shell invocations. Signed-off-by: Johannes Berg --- backport/Makefile.build | 3 ++- backport/scripts/make | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100755 backport/scripts/make diff --git a/backport/Makefile.build b/backport/Makefile.build index a848b37ed64b..7c479ace9f4a 100644 --- a/backport/Makefile.build +++ b/backport/Makefile.build @@ -1,6 +1,7 @@ --include .config export +export MAKE=$(BACKPORT_DIR)/scripts/make + .PHONY: modules modules: @$(MAKE) -C $(KLIB_BUILD) M=$(BACKPORT_DIR) modules diff --git a/backport/scripts/make b/backport/scripts/make new file mode 100755 index 000000000000..f5330a3730c8 --- /dev/null +++ b/backport/scripts/make @@ -0,0 +1,3 @@ +#!/bin/sh + +exec make --eval '-include $(BACKPORT_DIR)/.config' "$@"