From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org 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 6979F2194D3B8 for ; Wed, 30 Jan 2019 22:56:42 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Jan 2019 22:56:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,543,1539673200"; d="scan'208";a="130366518" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga002.jf.intel.com with ESMTP; 30 Jan 2019 22:56:41 -0800 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 30 Jan 2019 22:56:41 -0800 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 30 Jan 2019 22:56:40 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.102]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.232]) with mapi id 14.03.0415.000; Thu, 31 Jan 2019 14:56:38 +0800 From: "Gao, Liming" To: "KarunakarPoosapalli@Dell.com" , "Kinney, Michael D" , "lersek@redhat.com" , "edk2-devel@lists.01.org" , stephano CC: "Sumanth.Vidyadhara@dell.com" , "Shekar.Babu.S@dell.com" , "Sriramkumar.Raju@dell.com" , "Anand.Joshi@dell.com" Thread-Topic: [edk2] Conditional Compilation support in INF file Thread-Index: AdSn6DwaFQapYNOqQoKF9n2RWq0Njf//6EQAgAAcnoD//oKZUIADExOAgAAwnwCAABIYAP/+wVwwgALyzwCABgrHAP/rs8Fw/9dXkXD/qhlsUA== Date: Thu, 31 Jan 2019 06:56:37 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3D4146@SHSMSX104.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> <4A89E2EF3DFEDB4C8BFDE51014F606A14E3B25BC@SHSMSX152.ccr.corp.intel.com> <7d93c4d2e8a94833a06a4c31db3f852b@BLRX13MDC432.AMER.DELL.COM> In-Reply-To: <7d93c4d2e8a94833a06a4c31db3f852b@BLRX13MDC432.AMER.DELL.COM> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjZmYzNiN2MtOWFmZi00MWMzLTgxMzUtNzUxYWUwNWU4NGQyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidUF3MSs3RHhVNFJKVXV5cjNNY3hjYkhPVWpTTHBNZTFjZXJmelMwSlc1YjZFS05ZRmY3SVFMWk1Ua2hvM0tzQSJ9 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: Thu, 31 Jan 2019 06:56:42 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Karunakar: There is one BZ https://bugzilla.tianocore.org/show_bug.cgi?id=3D1446 on = Feature Flag expression in INF. INF spec has listed the syntax for it. But,= BaseTools doesn't support it now. If you have the similar request, please = add the information in BZ (including the usage model and expected edk2 rele= ase). And, stephano are working on Public Design and Bug Scrub Meetings. Th= en, we can talk the fix plan in public bug scrub meeting. Thanks Liming > -----Original Message----- > From: KarunakarPoosapalli@Dell.com [mailto:KarunakarPoosapalli@Dell.com] > Sent: Monday, January 28, 2019 4:36 PM > To: Gao, Liming ; Kinney, Michael D ; lersek@redhat.com; edk2-devel@lists.01.org > Cc: Sumanth.Vidyadhara@dell.com; Shekar.Babu.S@dell.com; Sriramkumar.Raju= @dell.com; Anand.Joshi@dell.com > Subject: RE: [edk2] Conditional Compilation support in INF file >=20 > +Team. >=20 > -----Original Message----- > From: Poosapalli, Karunakar > Sent: Monday, January 28, 2019 1:20 PM > To: 'Gao, Liming'; Kinney, Michael D; lersek@redhat.com; edk2-devel@lists= .01.org > Cc: Vidyadhara, Sumanth; S, Shekar Babu; Raju, SriramKumar > Subject: RE: [edk2] Conditional Compilation support in INF file >=20 > Hi Liming/Mike and All, >=20 > 1. Is there any plan for adding 'Feature Flag Expressions' support to B= asetools? > Please let me know if you want to me to create ticket in BugZilla = and work on it. > 2. If Feature Flag Expressions is NOT supported in current INF version,= Can we update INF spec until we provide this support. > Please let me know to initiate the process for updatin= g the INF spec or let me know to create the ECR. > 3. Thanks for giving alternative ways to achieve the goal. > If we're planning to provide the Feature Flag Expressions support, = I would like to suggest to add 'Conditional compilation' > support to BaseTools, So that it can provide all the requirements. >=20 > Thanks & Regards, > Karunakar >=20 > -----Original Message----- > From: Gao, Liming [mailto:liming.gao@intel.com] > Sent: Tuesday, January 15, 2019 8:40 PM > To: Kinney, Michael D; Poosapalli, Karunakar; lersek@redhat.com; edk2-dev= el@lists.01.org > Cc: Vidyadhara, Sumanth; S, Shekar Babu; Raju, SriramKumar > Subject: RE: [edk2] Conditional Compilation support in INF file >=20 >=20 > [EXTERNAL EMAIL] >=20 > Karunakar and Mike: > Basetools doesn't support Feature Flag Expressions in INF file. It jus= t ignores them. Because there are other solutions, I would like to > propose to update INF spec to remove Feature Flag Expressions and avoid t= he confuse. >=20 > Thanks > Liming > > -----Original Message----- > > From: Kinney, Michael D > > Sent: Saturday, January 12, 2019 2:54 AM > > To: KarunakarPoosapalli@Dell.com; Gao, Liming ; > > lersek@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 > > > > Karunakar, > > > > 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: > > > > 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. > > > > 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: > > > > ## 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.PcdDebugPropert= yMask & 0xC0) =3D=3D 0 > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0|UINT8|0x00000005 > > > > 3c: Another approach is to use multiple INF files and select > > the one needed for debug/release in DSC file. > > > > 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. > > > > Thanks, > > > > Mike > > > > > -----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