From nobody Sun May 5 10:00:49 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1517802160563614.5445804359844; Sun, 4 Feb 2018 19:42:40 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 4F673223AF83D; Sun, 4 Feb 2018 19:36:58 -0800 (PST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 87FEB22364880 for ; Sun, 4 Feb 2018 19:36:56 -0800 (PST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Feb 2018 19:42:37 -0800 Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 04 Feb 2018 19:42:37 -0800 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 4 Feb 2018 19:42:37 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 4 Feb 2018 19:42:36 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.124]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.116]) with mapi id 14.03.0319.002; Mon, 5 Feb 2018 11:42:33 +0800 X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.120; helo=mga04.intel.com; envelope-from=yunhuax.feng@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,462,1511856000"; d="dat'59?scan'59,208,59";a="27285442" From: "Feng, YunhuaX" To: "edk2-devel@lists.01.org" Thread-Topic: [PATCH] BaseTools: Fix build argument --pcd for flexible format bugs Thread-Index: AdOeK1ncW6JNASeUScilPpiS2neKVQ== Date: Mon, 5 Feb 2018 03:42:33 +0000 Message-ID: <47C64442C08CCD4089DC43B6B5E46BC4829625@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: <47C64442C08CCD4089DC43B6B5E46BC4829625@shsmsx102.ccr.corp.intel.com> x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: [edk2] [PATCH] BaseTools: Fix build argument --pcd for flexible format bugs X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Gao, Liming" Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Build argument --pcd flexible format, like as: 1. VOID* type gTokenSpaceGuid.Test=3DH"{flexible format}" gTokenSpaceGuid.Test=3DL"string" gTokenSpaceGuid.Test=3D"string" gTokenSpaceGuid.Test=3DL'string' gTokenSpaceGuid.Test=3D'string' 2. UINT8/UINT16/UINT32/UINT64 type gTokenSpaceGuid.Test=3DH"{flexible format}" gTokenSpaceGuid.Test=3DL"string" gTokenSpaceGuid.Test=3D"string" gTokenSpaceGuid.Test=3DL'string' gTokenSpaceGuid.Test=3D'string' In linux, single quotes need escape gTokenSpaceGuid.Test=3DL\'string\' gTokenSpaceGuid.Test=3D\'string\' Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yunhua Feng Reviewed-by: Yonghong Zhu =20 --- BaseTools/Source/Python/AutoGen/GenMake.py | 2 + BaseTools/Source/Python/Common/Misc.py | 4 +- BaseTools/Source/Python/Workspace/DscBuildData.py | 73 +++++++++++++++++++= ++-- 3 files changed, 72 insertions(+), 7 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/= Python/AutoGen/GenMake.py index 7d3374a493..9df5d8e2d7 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -1554,6 +1554,8 @@ class TopLevelMakefile(BuildFile): if pcdValue.startswith('H'): pcdValue =3D 'H' + '"' + pcdValue[1:] + '"' ExtraOption +=3D " --pcd " + pcdName + '=3D' + pcd= Value + elif pcdValue.startswith("L'"): + ExtraOption +=3D "--pcd " + pcdName + '=3D' + pcdV= alue elif pcdValue.startswith('L'): pcdValue =3D 'L' + '"' + pcdValue[1:] + '"' ExtraOption +=3D " --pcd " + pcdName + '=3D' + pcd= Value diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Pyth= on/Common/Misc.py index d80f645d2e..b8c2ce1ddc 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -2353,10 +2353,10 @@ def PackRegistryFormatGuid(Guid): =20 def BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumTyp= e, Value): if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64,= 'BOOLEAN']: - if Value.startswith('L'): + if Value.startswith('L') or Value.startswith('"'): if not Value[1]: EdkLogger.error("build", FORMAT_INVALID, 'For Void* type P= CD, when specify the Value in the command line, please use the following fo= rmat: "string", L"string", H"{...}"') - Value =3D Value[0] + '"' + Value[1:] + '"' + Value =3D Value elif Value.startswith('H'): if not Value[1]: EdkLogger.error("build", FORMAT_INVALID, 'For Void* type P= CD, when specify the Value in the command line, please use the following fo= rmat: "string", L"string", H"{...}"') diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/= Source/Python/Workspace/DscBuildData.py index 1da4f03ab8..d9165f2ac7 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -999,10 +999,39 @@ class DscBuildData(PlatformBuildClassObject): try: pcdvalue =3D ValueExpressionEx(pcd= value[1:], PcdDatumType, self._GuidDict)(True) except BadExpression, Value: - if Value.result > 1: - EdkLogger.error('Parser', FORM= AT_INVALID, 'PCD [%s.%s] Value "%s", %s' % - (TokenSpaceGui= dCName, TokenCName, pcdvalue, Value)) - pcdvalue =3D 'H' + pcdvalue + EdkLogger.error('Parser', FORMAT_I= NVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpaceGuidCNa= me, TokenCName, pcdvalue, Value)) + if PcdDatumType =3D=3D "VOID*": + pcdvalue =3D 'H' + pcdvalue + elif pcdvalue.startswith("L'"): + try: + pcdvalue =3D ValueExpressionEx(pcd= value, PcdDatumType, self._GuidDict)(True) + except BadExpression, Value: + EdkLogger.error('Parser', FORMAT_I= NVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpaceGuidCNa= me, TokenCName, pcdvalue, Value)) + if pcdvalue.startswith('{'): + pcdvalue =3D 'H' + pcdvalue + elif pcdvalue.startswith("'"): + try: + pcdvalue =3D ValueExpressionEx(pcd= value, PcdDatumType, self._GuidDict)(True) + except BadExpression, Value: + EdkLogger.error('Parser', FORMAT_I= NVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpaceGuidCNa= me, TokenCName, pcdvalue, Value)) + if pcdvalue.startswith('{'): + pcdvalue =3D 'H' + pcdvalue + elif pcdvalue.startswith('L'): + pcdvalue =3D 'L"' + pcdvalue[1:] + '"' + try: + pcdvalue =3D ValueExpressionEx(pcd= value, PcdDatumType, self._GuidDict)(True) + except BadExpression, Value: + EdkLogger.error('Parser', FORMAT_I= NVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpaceGuidCNa= me, TokenCName, pcdvalue, Value)) + else: + try: + pcdvalue =3D ValueExpressionEx(pcd= value, PcdDatumType, self._GuidDict)(True) + except BadExpression, Value: + EdkLogger.error('Parser', FORMAT_I= NVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpaceGuidCNa= me, TokenCName, pcdvalue, Value)) NewValue =3D BuildOptionPcdValueFormat(Tok= enSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue) FoundFlag =3D True else: @@ -1018,7 +1047,41 @@ class DscBuildData(PlatformBuildClassObject): except BadExpression, Value: EdkLogger.error('Parser', = FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' % (TokenSpac= eGuidCName, TokenCName, pcdvalue, Value)) - pcdvalue =3D 'H' + pcdvalue + if PcdDatumType =3D=3D "VOID*": + pcdvalue =3D 'H' + pcdvalue + elif pcdvalue.startswith("L'"): + try: + pcdvalue =3D ValueExpressi= onEx(pcdvalue, PcdDatumType, self._GuidDict)( + True) + except BadExpression, Value: + EdkLogger.error('Parser', = FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpac= eGuidCName, TokenCName, pcdvalue, Value)) + if pcdvalue.startswith('{'): + pcdvalue =3D 'H' + pcdvalue + elif pcdvalue.startswith("'"): + try: + pcdvalue =3D ValueExpressi= onEx(pcdvalue, PcdDatumType, self._GuidDict)( + True) + except BadExpression, Value: + EdkLogger.error('Parser', = FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpac= eGuidCName, TokenCName, pcdvalue, Value)) + if pcdvalue.startswith('{'): + pcdvalue =3D 'H' + pcdvalue + elif pcdvalue.startswith('L'): + pcdvalue =3D 'L"' + pcdvalue[1= :] + '"' + try: + pcdvalue =3D ValueExpressi= onEx(pcdvalue, PcdDatumType, self._GuidDict)( + True) + except BadExpression, Value: + EdkLogger.error('Parser', = FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' % + (TokenSpac= eGuidCName, TokenCName, pcdvalue, Value)) + else: + try: + pcdvalue =3D ValueExpressi= onEx(pcdvalue, PcdDatumType, self._GuidDict)(True) + except BadExpression, Value: + EdkLogger.error('Parser', = FORMAT_INVALID, + 'PCD [%s.%= s] Value "%s", %s' % + (TokenSpac= eGuidCName, TokenCName, pcdvalue, Value)) NewValue =3D BuildOptionPcdValueFo= rmat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue) FoundFlag =3D True else: --=20 2.12.2.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel