From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 926FA2195408E for ; Mon, 24 Apr 2017 19:36:17 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Apr 2017 19:36:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,247,1488873600"; d="scan'208";a="93718891" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga006.fm.intel.com with ESMTP; 24 Apr 2017 19:36:16 -0700 Received: from orsmsx112.amr.corp.intel.com (10.22.240.13) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 24 Apr 2017 19:36:16 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.59]) by ORSMSX112.amr.corp.intel.com ([169.254.3.213]) with mapi id 14.03.0319.002; Mon, 24 Apr 2017 19:36:16 -0700 From: "Kinney, Michael D" To: "Zhu, Yonghong" , "edk2-devel@lists.01.org" , "Kinney, Michael D" CC: "Gao, Liming" , "Shaw, Kevin W" Thread-Topic: [ edk2-BuildSpecification PATCH] Add support for Private declarations in a package Thread-Index: AQHSvWbICBohP5Qkp0WZA4q4s16ta6HVXVtw Date: Tue, 25 Apr 2017 02:36:15 +0000 Message-ID: References: <1493082707-4972-1-git-send-email-michael.d.kinney@intel.com> <1493082707-4972-2-git-send-email-michael.d.kinney@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDQ3MTc1ZTMtYmIyMC00ZTkwLTg1ZWUtZmJjYzE4N2Y0Njc5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImlYWHNNa3dtY0JVSllRSERaYW5rY0JOd0tWOEtyU0VZSDZjR29yT1BOQmc9In0= dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Subject: Re: [ edk2-BuildSpecification PATCH] Add support for Private declarations in a package X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Apr 2017 02:36:17 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Yonghong, The sentence about setting a PCD from the command line is related to https://bugzilla.tianocore.org/show_bug.cgi?id=3D480 #480 Build spec: add description for Override PCD value on the command line This will update the Build Specification to add the --pcd command line flag to set PCD values.=20 Should the following item be removed as part of #480? " 5. Command > line cannot be used to set the PCD value." Thanks, Mike > -----Original Message----- > From: Zhu, Yonghong > Sent: Monday, April 24, 2017 6:54 PM > To: Kinney, Michael D ; edk2-devel@lists.01.o= rg > Cc: Gao, Liming ; Shaw, Kevin W ; > Zhu, Yonghong > Subject: RE: [ edk2-BuildSpecification PATCH] Add support for Private dec= larations > in a package >=20 > Hi Mike, >=20 > This patch is good to me. Reviewed-by: Yonghong Zhu >=20 > while during review this patch, I found one update we wound made for " 5.= Command > line cannot be used to set the PCD value.". It is not related with this t= opic, but > we can create another patch to update this sentence. Thanks. >=20 > Best Regards, > Zhu Yonghong >=20 >=20 > -----Original Message----- > From: Kinney, Michael D > Sent: Tuesday, April 25, 2017 9:12 AM > To: edk2-devel@lists.01.org > Cc: Gao, Liming ; Zhu, Yonghong ; > Shaw, Kevin W > Subject: [ edk2-BuildSpecification PATCH] Add support for Private declara= tions in > a package >=20 > https://bugzilla.tianocore.org/show_bug.cgi?id=3D465 >=20 > Process new syntax in the DEC file that specifies information that can on= ly be > used by modules within the package. When modules outside the packages att= empt to > use this content, the EDK II build system must break with an error regard= ing > content not found. >=20 > The four sections, Includes, Ppis, Guids and Protocols headers will be th= e > keyword, Private, following the architecture modifier. If Private is not = present, > then the content is usable by modules outside the package. >=20 > Cc: Liming Gao > Cc: Yonghong Zhu > Cc: Kevin W Shaw > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Michael Kinney > --- > .../82_auto-generation_process.md | 35 ++++++++++++++--= ------ > .../84_auto-generated_pcd_database_file.md | 6 ++++ > README.md | 3 +- > 3 files changed, 30 insertions(+), 14 deletions(-) >=20 > diff --git a/8_pre-build_autogen_stage/82_auto-generation_process.md b/8_= pre- > build_autogen_stage/82_auto-generation_process.md > index 6868d62..22a8b08 100644 > --- a/8_pre-build_autogen_stage/82_auto-generation_process.md > +++ b/8_pre-build_autogen_stage/82_auto-generation_process.md > @@ -1034,16 +1034,25 @@ II module: > - DSC file's architecture specific modifier only `[LibraryClasses.arch= ]` > - The DSC file's common `[LibraryClasses]` section >=20 > -********** > -**Note:** For modules of type **USER_DEFINED**_, if a `NULL` library cla= ss -is > required, the library instance should be listed in the INF scoping - > `` section of the component. > -********** > + ********** > + **Note:** For modules of type **USER_DEFINED**_, if a `NULL` library > + class is required, the library instance should be listed in the INF > + scoping `` section of the component. > + ********** >=20 > * Inherit GUIDs, Protocols and PPIs from all library instances obtained = above, > and determine values or type of them. The value of a GUID, Protocol or= PPI is > defined in DEC file. >=20 > + ********** > + **Note:** If GUID, Protocol or PPI is listed in a DEC file, where the > + `Private` modifier is used in the section tag > + (`[Guids.common.Private]` for example), only modules within the > + package are permitted to use the GUID, Protocol or PPI. If a module > + or library instance outside of the package attempts to use the item, > + the build must fail with an appropriate error message. > + ********** > + > * Inherit PCDs from all library instances obtained above and determine v= alues > and type. The value and type of a PCD are obtained from a DSC file, IN= F file > or DEC file if it cannot be found in the DSC or INF file. For each EDK= II @@ - > 1058,14 +1067,14 @@ is required, the library instance should be listed in= the INF > scoping > - The INF file's PCD sections > - The DEC file's PCD sections >=20 > -********** > -**Note:** Values of PCDs using the FeatureFlag, PatchableInModule and - > FixedAtBuild access methods set for this INF file are local to the INF fi= le and - > do not pertain to any other INF files. Dynamic and DynamicEx access metho= d PCD - > values are global to a platform and should not be overridden by specifyin= g them - > here. If, however, the dynamic PCDs are only valid for this INF, it is - > permissible to set them here. > -********** > + ********** > + **Note:** Values of PCDs using the FeatureFlag, PatchableInModule and > + FixedAtBuild access methods set for this INF file are local to the INF > + file and do not pertain to any other INF files. Dynamic and DynamicEx > + access method PCD values are global to a platform and should not be > + overridden by specifying them here. If, however, the dynamic PCDs are > + only valid for this INF, it is permissible to set them here. > + ********** >=20 > * Inherit library instance dependency (`[Depex]` sections) expressions i= f a > module does not list a separate dependency file. > diff --git a/8_pre-build_autogen_stage/84_auto-generated_pcd_database_fil= e.md > b/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md > index d309246..fc291c5 100644 > --- a/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md > +++ b/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md > @@ -99,6 +99,12 @@ DSC, INF or DEC files. >=20 > 5. Command line cannot be used to set the PCD value. >=20 > +6. If a PCD has a Token Space GUID specified in DEC file and the `[Guids= ]` > + section tag contains the `Private` modifier (`[Guids.common.Private]`= for > + example), the PCD may only be used by modules in the package containi= ng the > + DEC file. If a module outside of that package attempts to use the PCD= , the > + build must break with an appropriate error message. > + > #### 8.4.1.2 Precedence Rules for PCDs not listed in the DSC or FDF File= s: >=20 > This subsection covers PCDs that are used by modules listed in the DSC f= ile, diff > --git a/README.md b/README.md index 89578d0..94b2062 100644 > --- a/README.md > +++ b/README.md > @@ -188,7 +188,7 @@ Copyright (c) 2008-2017, Intel Corporation. All right= s > reserved. > | 1.24 w/ | Updates: > | August 2015 | > | Errata A | Updated 10.4 to describe how tools add an FvNameString in= the FV > image extension header > | | > | | Update 8.7.5 - 8.7.9 to allow the build system to update = usage > information based on feature flag evaluation during the build > | | > -| 1.26 | Updates : > | January 2016 | > +| 1.26 | Updates : > | January 2016 | > | | Specification revision to 1.26 > | | > | | Removed data structure definitions (duplicates from PE/ C= OFF, PI > Specifications and TE headers) in Chapter 3 and included references to th= e > industry specifications to remove potential typographical errors and > inconsistencies. > | | > | | Removed Setup and Getting Started sections from Quick Sta= rt > chapter 6 - this information is available on the TianoCore.org web-site. > | | > @@ -208,3 +208,4 @@ Copyright (c) 2008-2017, Intel Corporation. All right= s > reserved. > | | [#479](https://bugzilla.tianocore.org/show_bug.cgi?id=3D4= 79) Build > spec: add description for nmake long command line handling > | | > | | [#485](https://bugzilla.tianocore.org/show_bug.cgi?id=3D4= 85) Build > spec: add support for mixed Pcd access method > | | > | | [#476](https://bugzilla.tianocore.org/show_bug.cgi?id=3D4= 76) Build > spec: add support for HII image package > | | > +| | [#465](https://bugzilla.tianocore.org/show_bug.cgi?id=3D4= 65) DEC > spec: document private definitions > | | > -- > 2.6.3.windows.1