From mboxrd@z Thu Jan 1 00:00:00 1970 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 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=E5z1qdUv; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: steven.shi@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642430609; x=1673966609; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=E6xYUGUedfjjPZ+WrO4jwX2Fmlkt/9SsG4VM5woAgRU=; b=E5z1qdUvh5qPVokaRZCqAvg9f/klMqT1/04NeAyQTqnOgL0oeStHuJB4 GGIbGvBAsJ5f/nNFYNz49UymYkS1vrFKUtyJfqZB3o1uKE4TFc8xkeWn3 /B2Ky26sFlyUzF11DmMQeuv/75ITpz9uP/jSucPYxIUvcXEXbnSHZ/WOD 10vZm/ZppcjkhWE9KreUeLTEZteNE5rsRn8xvHJIyQvhiq0PSp2afBVEO w77MS26CgtWzZX+iOqgl2Ms6HaGbQl1fmrya6c9ZK2lXsh+cv0FXPD5O2 T85Myy6QoSFwrxIY77KFygM9fpbtxA9CVyv2qMaMTqUY0H0+wEtQ2RITo w==; 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" 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" 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: [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> X-Mailer: git-send-email 2.22.0.windows.1 In-Reply-To: <20220117144251.1087-1-steven.shi@intel.com> References: <20220117144251.1087-1-steven.shi@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=0D =0D *_GCC5_*_MAKE_PATH =3D DEF(GCC_HOST_PREFIX)make=0D +*_GCC5_*_GMAKE_FLAGS =3D --jobs=0D +*_GCC5_*_NMAKE_FLAGS =3D /nologo=0D *_GCC5_*_*_DLL =3D ENV(GCC5_DLL)=0D *_GCC5_*_ASL_PATH =3D DEF(UNIX_IASL_BIN)=0D =0D @@ -2742,6 +2744,8 @@ RELEASE_CLANG38_AARCH64_DLINK_FLAGS =3D DEF(CLANG38_A= ARCH64_DLINK_FLAGS) -flto -Wl *_CLANGPDB_*_*_FAMILY =3D GCC=0D *_CLANGPDB_*_*_BUILDRULEFAMILY =3D CLANGPDB=0D *_CLANGPDB_*_MAKE_PATH =3D ENV(CLANG_HOST_BIN)make=0D +*_CLANGPDB_*_GMAKE_FLAGS =3D --jobs=0D +*_CLANGPDB_*_NMAKE_FLAGS =3D /nologo=0D *_CLANGPDB_*_*_DLL =3D ENV(CLANGPDB_DLL)=0D *_CLANGPDB_*_ASL_PATH =3D DEF(UNIX_IASL_BIN)=0D =0D 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=0D Src =3D self.ReplaceMacro(Src)=0D Dst =3D self.ReplaceMacro(Dst)=0D + Efi =3D Src[:-3] + 'efi'=0D if Dst not in self.ResultFileList:=0D self.ResultFileList.append(Dst)=0D if '%s :' %(Dst) not in self.BuildTargetList:=0D - self.BuildTargetList.append("%s : %s" %(Dst,Src))= =0D + self.BuildTargetList.append("%s : %s" %(Dst, Efi))= =0D self.BuildTargetList.append('\t' + self._CP_TEMPLA= TE_[self._Platform] %{'Src': Src, 'Dst': Dst})=0D =0D FfsCmdList =3D Cmd[0]=0D @@ -778,7 +779,7 @@ cleanlib: SecDepsFileList.append(SecCmdList[index + = 1])=0D index =3D index + 1=0D if CmdName =3D=3D 'Trim':=0D - SecDepsFileList.append(os.path.join('$(DEBUG_D= IR)', os.path.basename(OutputFile).replace('offset', 'efi')))=0D + SecDepsFileList.append(os.path.join('$(OUTPUT_= DIR)', os.path.basename(OutputFile).replace('offset', 'efi')))=0D if OutputFile.endswith('.ui') or OutputFile.endswi= th('.ver'):=0D SecDepsFileList.append(os.path.join('$(MODULE_= DIR)', '$(MODULE_FILE)'))=0D self.FfsOutputFileList.append((OutputFile, ' '.joi= n(SecDepsFileList), SecCmdStr))=0D 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()=0D if Attr not in RetVal[Tool]:=0D RetVal[Tool][Attr] =3D Value=0D -=0D + if 'NMAKE' in RetVal.keys() or 'GMAKE' in RetVal.keys():=0D + if RetVal['MAKE']['PATH'] =3D=3D "nmake":=0D + if 'FLAGS' in RetVal['MAKE'].keys():=0D + RetVal['MAKE']['FLAGS'] +=3D ' ' + RetVal['NMAKE']['FL= AGS']=0D + else:=0D + RetVal['MAKE']['FLAGS'] =3D RetVal['NMAKE']['FLAGS']=0D + else:=0D + if 'FLAGS' in RetVal['MAKE'].keys():=0D + RetVal['MAKE']['FLAGS'] +=3D ' ' + RetVal['GMAKE']['FL= AGS']=0D + else:=0D + RetVal['MAKE']['FLAGS'] =3D RetVal['GMAKE']['FLAGS']=0D ToolsDef =3D ''=0D if GlobalData.gOptions.SilentMode and "MAKE" in RetVal:=0D if "FLAGS" not in RetVal["MAKE"]:=0D --=20 2.22.0.windows.1