From nobody Sat May 4 23:49:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+85758+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+85758+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1642430611; cv=none; d=zohomail.com; s=zohoarc; b=lnvH3Lv8fANHIdLsAoF1Hb25wKeDVGXh5L0x84b9xnsU9b69LABnQ01ByUyX9Xcd4tZoJCIpm12hxKA53qI1u9nQFNBEGIxbOKS6fraov6RU1zNk1II4jtWPad5SDKwAUvQ7rnM35Xrq1n8OYDhMgMxK2xIYYkUBlmPB6wFuq2U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642430611; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=bu4MJR0TBiEwa3DJvsGOFpUk62vcm4KU6eG7x0Hp8AE=; b=ZW1fjt84of6ShT8qVFN/hG/HiqjF6cUBXSZt8Ir0e57FJfqZvebSZNkevMNaCIW13OOYMU+CaF4tqOViDaVof44Nt6C25ThfDoaXek5TFQWxcyqnuAzAvnkhTOMkvk9TgetDivqDbbBSLvk1r8HGMaGl2fuMoF5atNFR3Qzgua8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+85758+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1642430611470146.59934749027343; Mon, 17 Jan 2022 06:43:31 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 8kIeYY1788612xFzWGXydznf; Mon, 17 Jan 2022 06:43:31 -0800 X-Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.12028.1642430609633684463 for ; Mon, 17 Jan 2022 06:43:30 -0800 X-IronPort-AV: E=McAfee;i="6200,9189,10229"; a="225315771" X-IronPort-AV: E=Sophos;i="5.88,295,1635231600"; d="scan'208";a="225315771" X-Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 06:43:29 -0800 X-IronPort-AV: E=Sophos;i="5.88,295,1635231600"; d="scan'208";a="517436751" X-Received: from jshi19-mobl1.ccr.corp.intel.com ([10.254.213.227]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 06:43:26 -0800 From: "Steven Shi" To: devel@edk2.groups.io Cc: bob.c.feng@intel.com, yuwei.chen@intel.com, ardb@kernel.org, leif@nuviainc.com, abner.chang@hpe.com, daniel.schaefer@hpe.com, Steven Shi Subject: [edk2-devel] [PATCH 1/1] BaseTools: Enable GNU make parallel jobs by default Date: Mon, 17 Jan 2022 22:42:51 +0800 Message-Id: <20220117144251.1087-2-steven.shi@intel.com> In-Reply-To: <20220117144251.1087-1-steven.shi@intel.com> References: <20220117144251.1087-1-steven.shi@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,steven.shi@intel.com X-Gm-Message-State: scgBhQGSCGTqd8oSapzYto4Nx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1642430611; bh=+t7Y7thkC5y5eJOVkFkgOyDlr5ZNrQBzH4GH1sF0u8g=; h=Cc:Date:From:Reply-To:Subject:To; b=uxj8gZeqCXmBEQ9O/nvfDveu78I3be9tmr6dbcAGnYkl0CI19BDW1NMPI1C+JrNc2gD 67N1wolNf+fUGnLg0d/pMyPFwM3nWBN2sgJr9Y1JCnkCHW9Q1X6JH3UXFcL+doc0XVyi5 EO+MlmezvvFxgVpe3vJElae+nUP8VVrOFQI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1642430613370100002 Content-Type: text/plain; charset="utf-8" BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3807 * Enable GNU make parallel jobs support(--jobs flag) by default in GCC5 and CLANGPDB toolchains. This gmake flag can save full features bios linux build time by +20%. * Explictly distinguish and define the MS nmake flag and GNU gmake flag in the toolchain which might support both, e.g. CLANGPDB can use nmake in Windows and gmake in Linux. General make flags cannot work for such hybrid make usage scenario. Signed-off-by: Steven Shi --- BaseTools/Conf/tools_def.template | 4 ++++ BaseTools/Source/Python/AutoGen/GenMake.py | 5 +++-- BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 12 +++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.t= emplate index 2e6b382ab623..84af08cca6ae 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -2283,6 +2283,8 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =3D -z common-pa= ge-size=3D0x20 *_GCC5_*_*_FAMILY =3D GCC =20 *_GCC5_*_MAKE_PATH =3D DEF(GCC_HOST_PREFIX)make +*_GCC5_*_GMAKE_FLAGS =3D --jobs +*_GCC5_*_NMAKE_FLAGS =3D /nologo *_GCC5_*_*_DLL =3D ENV(GCC5_DLL) *_GCC5_*_ASL_PATH =3D DEF(UNIX_IASL_BIN) =20 @@ -2742,6 +2744,8 @@ RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_A= ARCH64_DLINK_FLAGS) -flto -Wl *_CLANGPDB_*_*_FAMILY =3D GCC *_CLANGPDB_*_*_BUILDRULEFAMILY =3D CLANGPDB *_CLANGPDB_*_MAKE_PATH =3D ENV(CLANG_HOST_BIN)make +*_CLANGPDB_*_GMAKE_FLAGS =3D --jobs +*_CLANGPDB_*_NMAKE_FLAGS =3D /nologo *_CLANGPDB_*_*_DLL =3D ENV(CLANGPDB_DLL) *_CLANGPDB_*_ASL_PATH =3D DEF(UNIX_IASL_BIN) =20 diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/= Python/AutoGen/GenMake.py index e55efff059f9..c6636d99fc7d 100755 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -732,10 +732,11 @@ cleanlib: Src, Dst =3D CopyCmd Src =3D self.ReplaceMacro(Src) Dst =3D self.ReplaceMacro(Dst) + Efi =3D Src[:-3] + 'efi' if Dst not in self.ResultFileList: self.ResultFileList.append(Dst) if '%s :' %(Dst) not in self.BuildTargetList: - self.BuildTargetList.append("%s : %s" %(Dst,Src)) + self.BuildTargetList.append("%s : %s" %(Dst, Efi)) self.BuildTargetList.append('\t' + self._CP_TEMPLA= TE_[self._Platform] %{'Src': Src, 'Dst': Dst}) =20 FfsCmdList =3D Cmd[0] @@ -778,7 +779,7 @@ cleanlib: SecDepsFileList.append(SecCmdList[index + = 1]) index =3D index + 1 if CmdName =3D=3D 'Trim': - SecDepsFileList.append(os.path.join('$(DEBUG_D= IR)', os.path.basename(OutputFile).replace('offset', 'efi'))) + SecDepsFileList.append(os.path.join('$(OUTPUT_= DIR)', os.path.basename(OutputFile).replace('offset', 'efi'))) if OutputFile.endswith('.ui') or OutputFile.endswi= th('.ver'): SecDepsFileList.append(os.path.join('$(MODULE_= DIR)', '$(MODULE_FILE)')) self.FfsOutputFileList.append((OutputFile, ' '.joi= n(SecDepsFileList), SecCmdStr)) diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py b/BaseTools= /Source/Python/AutoGen/PlatformAutoGen.py index 592d4824a4b3..632c960c8d3d 100644 --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py @@ -893,7 +893,17 @@ class PlatformAutoGen(AutoGen): RetVal[Tool] =3D OrderedDict() if Attr not in RetVal[Tool]: RetVal[Tool][Attr] =3D Value - + if 'NMAKE' in RetVal.keys() or 'GMAKE' in RetVal.keys(): + if RetVal['MAKE']['PATH'] =3D=3D "nmake": + if 'FLAGS' in RetVal['MAKE'].keys(): + RetVal['MAKE']['FLAGS'] +=3D ' ' + RetVal['NMAKE']['FL= AGS'] + else: + RetVal['MAKE']['FLAGS'] =3D RetVal['NMAKE']['FLAGS'] + else: + if 'FLAGS' in RetVal['MAKE'].keys(): + RetVal['MAKE']['FLAGS'] +=3D ' ' + RetVal['GMAKE']['FL= AGS'] + else: + RetVal['MAKE']['FLAGS'] =3D RetVal['GMAKE']['FLAGS'] ToolsDef =3D '' if GlobalData.gOptions.SilentMode and "MAKE" in RetVal: if "FLAGS" not in RetVal["MAKE"]: --=20 2.22.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#85758): https://edk2.groups.io/g/devel/message/85758 Mute This Topic: https://groups.io/mt/88484954/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-