From nobody Sat May 4 00:42:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+42494+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+42494+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1560759388; cv=none; d=zoho.com; s=zohoarc; b=TnwK3hpAMdPz2lOEHC6C2bBhuVrMQ5O/FzSUNoTBff6AoV7sN1fDybO427vh8QcykoIAY5nhHty0g4f73mDq1gy42XtwlYz0X6wn/cWOLRIxu+sOJnSkWuhqdRL7NSH5WxuSYDJOJti9w8zAkXOVB2tdebVSyMP0lp+dLy7T1F4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1560759388; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=lHSEhdMHuzYXPHjz7JtrH/GqrYb8sns9cCedQjHxEAE=; b=TJZEevsulP8XwYK0zyhrtF4/wxqrYcI8emvVfAjq8uWmJHtkIUOavJloei6WYYqaQrtt5+25S38frrKoj/li7j/48mQF7kJGm71gZ3yEfqEp2CFFMcPWDsWf+xouuTx4afs27hU/e+p6WcWVEhjaQD4zSPaGtw+Wp+uJR9u6lAI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+42494+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 156075938825952.24848352764161; Mon, 17 Jun 2019 01:16:28 -0700 (PDT) Return-Path: X-Received: from mga18.intel.com (mga18.intel.com []) by groups.io with SMTP; Mon, 17 Jun 2019 01:16:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Jun 2019 01:16:27 -0700 X-ExtLoop1: 1 X-Received: from jshi19-mobl.ccr.corp.intel.com ([10.254.215.142]) by fmsmga005.fm.intel.com with ESMTP; 17 Jun 2019 01:16:25 -0700 From: "Steven Shi" To: devel@edk2.groups.io Cc: liming.gao@intel.com, bob.c.feng@intel.com, christian.rodriguez@intel.com Subject: [edk2-devel] [PATCH v3 1/1] BaseTools: Cannot store library cache of different arch together Date: Mon, 17 Jun 2019 16:16:18 +0800 Message-Id: <20190617081618.23488-2-steven.shi@intel.com> In-Reply-To: <20190617081618.23488-1-steven.shi@intel.com> References: <20190617081618.23488-1-steven.shi@intel.com> Precedence: Bulk List-Unsubscribe: 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1560759387; bh=sdroXMEdsOJ7KkFxzwrKUYvvYKFITMaFV8BJRH4CR88=; h=Cc:Date:From:Reply-To:Subject:To; b=PgnV0OValOLkiOhVSduNtN2TvuEgBQlgfKllpckTzjhaZUKVW5d4xFGW/abGMr15/n9 g5UQ1T8B8qgVBGgnx71favVO5KHFQphuXLCmfhwMYRBFWOU879klYayek6mPbdUgdjewG 2W3jqRTTY6pfPwNRbU+yoNPhVI8hNQU6gVY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D1895 Build cache cannot store cache for the same library modules in different arch together. E.g. Both the below IA32 and X64 arch BaseLib caches should exist after build Ovmf3264, but now only the one in X64 arch exist. The reason is the current Basetool use a set() to same all library AutoGen objects, but the different arch lib AutoGen objects have same __hash_ value which comes from the lib MetaFile(The path of module file): def __hash__(self): return hash(self.MetaFile) So the different arch lib AutoGen objects are duplicated one to the set() and only one can exist. This is why the Basetool can only store one arch cache for library. This patch adds the arch string into the PlatformAutoGen and ModuleAutoGen __hash_ definitions and ensure the different platform and module AutoGen objects have different __hash_ values. Cc: Liming Gao Cc: Bob Feng Cc: Christian Rodriguez Signed-off-by: Steven Shi Reviewed-by: Bob Feng =20 --- BaseTools/Source/Python/AutoGen/AutoGen.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/= Python/AutoGen/AutoGen.py index 3f41fbb507..79203d8105 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -1166,6 +1166,17 @@ class PlatformAutoGen(AutoGen): =20 return True =20 + ## hash() operator of PlatformAutoGen + # + # The platform file path and arch string will be used to represent + # hash value of this object + # + # @retval int Hash value of the platform file path and arch + # + @cached_class_function + def __hash__(self): + return hash((self.MetaFile, self.Arch)) + @cached_class_function def __repr__(self): return "%s [%s]" % (self.MetaFile, self.Arch) @@ -2579,6 +2590,16 @@ class ModuleAutoGen(AutoGen): self.ReferenceModules =3D [] self.ConstPcd =3D {} =20 + ## hash() operator of ModuleAutoGen + # + # The module file path and arch string will be used to represent + # hash value of this object + # + # @retval int Hash value of the module file path and arch + # + @cached_class_function + def __hash__(self): + return hash((self.MetaFile, self.Arch)) =20 def __repr__(self): return "%s [%s]" % (self.MetaFile, self.Arch) --=20 2.17.1.windows.2 -=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 (#42494): https://edk2.groups.io/g/devel/message/42494 Mute This Topic: https://groups.io/mt/32092690/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-