From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 BE5812195408B for ; Mon, 24 Apr 2017 18:53:50 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Apr 2017 18:53:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,247,1488873600"; d="scan'208";a="78419576" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga002.jf.intel.com with ESMTP; 24 Apr 2017 18:53:50 -0700 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 24 Apr 2017 18:53:49 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 24 Apr 2017 18:53:49 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.117]) by SHSMSX104.ccr.corp.intel.com ([10.239.4.70]) with mapi id 14.03.0319.002; Tue, 25 Apr 2017 09:53:47 +0800 From: "Zhu, Yonghong" To: "Kinney, Michael D" , "edk2-devel@lists.01.org" CC: "Gao, Liming" , "Shaw, Kevin W" , "Zhu, Yonghong" Thread-Topic: [ edk2-BuildSpecification PATCH] Add support for Private declarations in a package Thread-Index: AQHSvWDrjJ7dh3X33E6sV9C7m0XsGKHUwPOAgACQN7A= Date: Tue, 25 Apr 2017 01:53:46 +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: <1493082707-4972-2-git-send-email-michael.d.kinney@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] 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 01:53:50 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Mike, 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. C= ommand line cannot be used to set the PCD value.". It is not related with t= his topic, but we can create another patch to update this sentence. Thanks. Best Regards, Zhu Yonghong -----Original Message----- From: Kinney, Michael D=20 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 declarati= ons in a package https://bugzilla.tianocore.org/show_bug.cgi?id=3D465 Process new syntax in the DEC file that specifies information that can only= be used by modules within the package. When modules outside the packages a= ttempt to use this content, the EDK II build system must break with an erro= r regarding content not found. The four sections, Includes, Ppis, Guids and Protocols headers will be the = keyword, Private, following the architecture modifier. If Private is not pr= esent, then the content is usable by modules outside the package. 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(-) diff --git a/8_pre-build_autogen_stage/82_auto-generation_process.md b/8_pr= e-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 class= -is required, the library instance should be listed in the INF scoping -`<= LibraryClasses>` section of the component. -********** + ********** + **Note:** For modules of type **USER_DEFINED**_, if a `NULL` library=20 + class is required, the library instance should be listed in the INF=20 + scoping `` section of the component. + ********** =20 * Inherit GUIDs, Protocols and PPIs from all library instances obtained ab= ove, and determine values or type of them. The value of a GUID, Protocol or P= PI is defined in DEC file. =20 + ********** + **Note:** If GUID, Protocol or PPI is listed in a DEC file, where the =20 + `Private` modifier is used in the section tag=20 + (`[Guids.common.Private]` for example), only modules within the=20 + package are permitted to use the GUID, Protocol or PPI. If a module=20 + or library instance outside of the package attempts to use the item,=20 + the build must fail with an appropriate error message. + ********** + * Inherit PCDs from all library instances obtained above and determine val= ues and type. The value and type of a PCD are obtained from a DSC file, INF = file or DEC file if it cannot be found in the DSC or INF file. For each EDK I= I @@ -1058,14 +1067,14 @@ is required, the library instance should be liste= d 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 -Fix= edAtBuild access methods set for this INF file are local to the INF file an= d -do not pertain to any other INF files. Dynamic and DynamicEx access meth= od PCD -values are global to a platform and should not be overridden by spe= cifying them -here. If, however, the dynamic PCDs are only valid for this I= NF, it is -permissible to set them here. -********** + ********** + **Note:** Values of PCDs using the FeatureFlag, PatchableInModule and =20 + FixedAtBuild access methods set for this INF file are local to the INF=20 + file and do not pertain to any other INF files. Dynamic and DynamicEx=20 + access method PCD values are global to a platform and should not be=20 + overridden by specifying them here. If, however, the dynamic PCDs are=20 + only valid for this INF, it is permissible to set them here. + ********** =20 * Inherit library instance dependency (`[Depex]` sections) expressions if = a module does not list a separate dependency file. diff --git 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 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]` f= or + example), the PCD may only be used by modules in the package containing= 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 Files: =20 This subsection covers PCDs that are used by modules listed in the DSC fil= e, 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 rights = reserved. | 1.24 w/ | Updates: = = = = | A= ugust 2015 | | Errata A | Updated 10.4 to describe how tools add an FvNameString in t= he FV image extension header = = = | = | | | Update 8.7.5 - 8.7.9 to allow the build system to update us= age information based on feature flag evaluation during the build = = = | = | -| 1.26 | Updates : = = = = | = January 2016 | +| 1.26 | Updates : = = = = | J= anuary 2016 | | | Specification revision to 1.26 = = = = | = | | | Removed data structure definitions (duplicates from PE/ COF= F, PI Specifications and TE headers) in Chapter 3 and included references t= o the industry specifications to remove potential typographical errors and = inconsistencies. = | = | | | Removed Setup and Getting Started sections from Quick Start= chapter 6 - this information is available on the TianoCore.org web-site. = = = | = | @@ -208,3 +208,4 @@ Copyright (c) 2008-2017, Intel Corporation. All rights = reserved. | | [#479](https://bugzilla.tianocore.org/show_bug.cgi?id=3D479= ) Build spec: add description for nmake long command line handling = = = |= | | | [#485](https://bugzilla.tianocore.org/show_bug.cgi?id=3D485= ) Build spec: add support for mixed Pcd access method = = = |= | | | [#476](https://bugzilla.tianocore.org/show_bug.cgi?id=3D476= ) Build spec: add support for HII image package = = = |= | +| | [#465](https://bugzilla.tianocore.org/show_bug.cgi?id=3D465= ) DEC spec: document private definitions = = = |= | -- 2.6.3.windows.1