From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (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 ABEDA211B76C1 for ; Tue, 15 Jan 2019 07:10:29 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jan 2019 07:10:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,481,1539673200"; d="scan'208";a="135998796" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 15 Jan 2019 07:10:29 -0800 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 15 Jan 2019 07:10:28 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 15 Jan 2019 07:10:28 -0800 Received: from shsmsx152.ccr.corp.intel.com ([169.254.6.44]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.196]) with mapi id 14.03.0415.000; Tue, 15 Jan 2019 23:10:26 +0800 From: "Gao, Liming" To: "Kinney, Michael D" , "KarunakarPoosapalli@Dell.com" , "lersek@redhat.com" , "edk2-devel@lists.01.org" CC: "Sumanth.Vidyadhara@dell.com" , "Shekar.Babu.S@dell.com" , "Sriramkumar.Raju@dell.com" Thread-Topic: [edk2] Conditional Compilation support in INF file Thread-Index: AdSn6DwaFQapYNOqQoKF9n2RWq0Njf//vlsA//9eEjCAAeFuAIAAcsuA//9NkWCAAPUmAIAA5TAAgADO+gD/+W+x8A== Date: Tue, 15 Jan 2019 15:10:26 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3B25BC@SHSMSX152.ccr.corp.intel.com> References: <1a62f519f4b2466fb97c0dd7a81057e6@BLRX13MDC432.AMER.DELL.COM> <03c8ee0d-dca5-a7ca-b941-f45bd0fd6c38@redhat.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3AE69B@SHSMSX152.ccr.corp.intel.com> <3cd149b2ee7942dda2ebef04bd0f6977@BLRX13MDC432.AMER.DELL.COM> <63fd7d96-31f9-9a8d-6191-20c851ad54c3@redhat.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3AF0FC@SHSMSX152.ccr.corp.intel.com> <524c6b9c19b34d3680f709e6f0b2e68b@BLRX13MDC432.AMER.DELL.COM> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiODM3MzZiMWQtYjQ2Yy00YzVmLTliZjgtYjViMmJiOTA4NGY4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoialgrcEVXREdIXC9Rb0Y3NEc5d0Y1QnJOcVJcL1BIVHJTQUhMVGRZTFcrdEJpbTVQbE5zK09oQWhJNkpDT2xzZ1pVIn0= dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: Conditional Compilation support in INF file X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jan 2019 15:10:29 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Karunakar and Mike: Basetools doesn't support Feature Flag Expressions in INF file. It just = ignores them. Because there are other solutions, I would like to propose to= update INF spec to remove Feature Flag Expressions and avoid the confuse.= =20 Thanks Liming > -----Original Message----- > From: Kinney, Michael D > Sent: Saturday, January 12, 2019 2:54 AM > To: KarunakarPoosapalli@Dell.com; Gao, Liming ; ler= sek@redhat.com; edk2-devel@lists.01.org; Kinney, > Michael D > Cc: Sumanth.Vidyadhara@dell.com; Shekar.Babu.S@dell.com; Gao, Liming ; Sriramkumar.Raju@dell.com > Subject: RE: [edk2] Conditional Compilation support in INF file >=20 > Karunakar, >=20 > Feature Flag Expressions is a concept that is defined in the > specs, but is a feature that is not fully implemented. Liming > should be able to provide details on what has been implemented > and validated in BaseTools. I think the reason that this feature > has not been implemented fully is that we have been able to find > alternate ways to get the equivalent results. Here are a few > example techniques: >=20 > 3a: One approach is to use multiple INF files and select the > Right INF for different types of platform builds in DSC file. > If multiple modules share source files but have different > elements produced/consumed/depex, then multiple INF > file is an approach that makes the produced/consumed/depex > clear and is compatible with UDP Spec. >=20 > 3c: One approach is to use DEBUG_CODE(), DEBUG_CODE_BEGIN(), > and DEBUG_CODE_END() macros in a single version of the > source files and enable/disable the debug code using BIT2 > in the following PCD: >=20 > ## The mask is used to control DebugLib behavior.

> # BIT0 - Enable Debug Assert.
> # BIT1 - Enable Debug Print.
> # BIT2 - Enable Debug Code.
> # BIT3 - Enable Clear Memory.
> # BIT4 - Enable BreakPoint as ASSERT.
> # BIT5 - Enable DeadLoop as ASSERT.
> # @Prompt Debug Property. > # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyM= ask & 0xC0) =3D=3D 0 > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0|UINT8|0x00000005 >=20 > 3c: Another approach is to use multiple INF files and select > the one needed for debug/release in DSC file. >=20 > If these techniques, or other techniques that other community > Member may be using do not work for your use cases, and > Feature Flag Expressions are the best approach, then Bugzillas > Can be entered with supporting use cases to justify adding the > feature to BaseTools. >=20 > Thanks, >=20 > Mike >=20 > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel- > > bounces@lists.01.org] On Behalf Of > > KarunakarPoosapalli@Dell.com > > Sent: Thursday, January 10, 2019 10:34 PM > > To: Kinney, Michael D ; Gao, > > Liming ; lersek@redhat.com; edk2- > > devel@lists.01.org > > Cc: Sumanth.Vidyadhara@dell.com; Shekar.Babu.S@dell.com; > > Gao, Liming ; > > Sriramkumar.Raju@dell.com > > Subject: Re: [edk2] Conditional Compilation support in > > INF file > > > > Hi All, > > > > Thank you very much for your valuable thoughts. > > Below are my concerns/thoughts, Could you please help on > > > > 1. Is there any module or INF already using > > FeatureFlagExpression feature support in current edk2 > > source? > > 2. If not, could you please help in providing more > > detailed spec/Doc to verify this support. > > 3. Below are the few of use cases we're looking for, Did > > really FeatureFlagExpression support all of this? > > a. If we've this support we can add different > > protocols in DEPEX section, like we can put condition > > check and add rotococol1 for Notebook and Protocol2 for > > Desktop. > > b. Help in simplifying build files. We > > could dispense with the prefix to inf files and more > > developer convenient. > > c. Sometimes we would like to add Conditional .C > > and .H for file inclusion. Helps in our Debug / release > > builds as well.. > > Example; we do have release and debug > > build, although Source Section has - IA32,X64, Common, > > IPF, EBC exclusively. > > But for the same Source section, we > > can't have choices based on our build inputs... > > > > #if Condition1 > > [Sources] > > Main.c > > #elif Condition2 > > [Sources] > > DebugMain.c > > > > 4. I don't think INF file support MACRO support, How > > complex in modifying the BaseTools to support Condition > > checks and MACRO support? > > > > Thanks & Regards, > > Karunakar > > > > -----Original Message----- > > From: Kinney, Michael D > > [mailto:michael.d.kinney@intel.com] > > Sent: Thursday, January 10, 2019 10:23 PM > > To: Gao, Liming; Laszlo Ersek; Poosapalli, Karunakar; > > edk2-devel@lists.01.org; Kinney, Michael D > > Cc: Vidyadhara, Sumanth; Gao, Liming; Raju, SriramKumar > > Subject: RE: [edk2] Conditional Compilation support in > > INF file > > > > > > [EXTERNAL EMAIL] > > > > There is one additional constraint for adding > > conditionals to INF files. > > > > The UEFI Distribution Packaging Specification defines a > > format to share package and module content in a standard > > format and uses an XML schema for the metadata. We need > > to be able to convert between INF <--> XML and DEC <--> > > XML. > > > > http://www.uefi.org/sites/default/files/resources/Dist_P > > ackage_Spec_1_1.pdf > > > > If we define extensions to INF or DEC files, we need to > > make sure these transforms are still supported. If an > > extension prevents these transforms, then we either need > > to change the extension to be compatible or work on an > > update to the UDP spec to support the extension in the > > XML. > > > > Best regards, > > > > Mike > > > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel- > > > bounces@lists.01.org] On Behalf Of Gao, Liming > > > Sent: Thursday, January 10, 2019 7:48 AM > > > To: Laszlo Ersek ; > > > KarunakarPoosapalli@Dell.com; edk2-devel@lists.01.org > > > Cc: Sumanth.Vidyadhara@dell.com; Gao, Liming > > ; > > > Sriramkumar.Raju@dell.com > > > Subject: Re: [edk2] Conditional Compilation support in > > INF file > > > > > > I have same question. What flexibility is expected in > > INF? I see one > > > request in [Depex] section. So, PCD support in [Depex] > > is added. > > > > > > Edk2 INF is used to describe the source code behavior. > > > If the source uses Ppi/Protocol/Guid/Pcd, these > > information are always > > > required to be described in INF file. The compiler can > > optimize the > > > code and remove the unused Ppi/Protocol/Guid/Pcd. It > > doesn't need > > > developer specify the conditional statement. > > > > > > Thanks > > > Liming > > > > -----Original Message----- > > > > From: Laszlo Ersek [mailto:lersek@redhat.com] > > > > Sent: Thursday, January 10, 2019 8:54 PM > > > > To: KarunakarPoosapalli@Dell.com; Gao, Liming > > > ; edk2-devel@lists.01.org > > > > Cc: Sumanth.Vidyadhara@dell.com; > > > Sriramkumar.Raju@dell.com > > > > Subject: Re: [edk2] Conditional Compilation support > > in > > > INF file > > > > > > > > On 01/10/19 07:03, KarunakarPoosapalli@Dell.com > > wrote: > > > > > Hi All, > > > > > > > > > > I agree with providing the support like > > > "FixedAtBuild PCD in INF". And we need to modify or > > provide support in > > > BaseTools to support > > > > this feature. > > > > > > > > > > There are more use cases or flexibility to > > developer > > > if we support Conditional compilation support in INF. > > > > > As we're providing support in BaseTools for > > > FixedAtBuild PCD support in INF, Is there any > > challenges or drawbacks > > > in providing > > > > conditional compilation support in INF? > > > > > > > > This is not for me to say authoritatively, but I'm > > > unaware of any > > > > specific use case that cannot be solved without this > > > feature addition, > > > > and any further complexity to BaseTools should be > > > strongly justified. > > > > "More convenient" is too vague for me, and the > > > BaseTools code is already > > > > hard to read and debug. > > > > > > > > That's just my opinion, again. > > > > > > > > Thanks > > > > Laszlo > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel