Andrew: I got your point. Yes. The precedence rules can be updated to reflect their order.
Thanks Liming From: af...@apple.com [mailto:af...@apple.com] Sent: Wednesday, August 17, 2016 12:28 AM To: Gao, Liming <liming....@intel.com> Cc: Kurt Kennett <kurt.kenn...@microsoft.com>; edk2-devel <edk2-devel@lists.01.org> Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work > On Aug 16, 2016, at 9:21 AM, Gao, Liming wrote: > > Andrew: > arch value may be common. 3.3.1 Common Definitions, ::= {"IA32"} {"X64"} > {"IPF"} {"EBC"} {} {"common"}. > I agree [BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER should be supported. > We will look it. > I agree but precedence rules seem different for *.*.*.Edk2ModuleType. It should follow $(arch) overrides common pattern of the other examples? • Highest, DSC file’s component scoped for individual INF files. • [BuildOptions.$(arch).CodeBase.Edk2ModuleType] missing [BuildOptions.common.CodeBase.Edk2ModuleType] • [BuildOptions.$(arch).CodeBase] • [BuildOptions.common.CodeBase] • [BuildOptions.$(arch)] • [BuildOptions.common] • [BuildOptions] • INF File’s [BuildOptions] section • Lowest - tools_def.txt entry Thanks, Andrew Fish > Thanks > Liming > From: af...@apple.com<mailto:af...@apple.com> [mailto:af...@apple.com] > Sent: Tuesday, August 16, 2016 11:47 PM > To: Kurt Kennett > Cc: edk2-devel ; Gao, Liming > Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work > > >> On Aug 16, 2016, at 8:22 AM, Kurt Kennett wrote: >> >> Thanks for your help, Andre. I appreciate it. ☺ >> >> [BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER] >> Does not work. >> > > Can you file a bugzilla report on the tools, and another on the spec to > mention BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER > > Thanks, > > Andrew Fish > >> [BuildOptions.AARCH64.common.EDKII.DXE_RUNTIME_DRIVER] >> Does not work. >> >> [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] >> Works. >> >> >> K2 >> >> From: af...@apple.com<mailto:af...@apple.com> [mailto:af...@apple.com] >> Sent: Tuesday, August 16, 2016 8:15 AM >> To: Kurt Kennett >> Cc: Gao, Liming ; edk2-devel >> Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work >> >> >> On Aug 16, 2016, at 7:49 AM, Kurt Kennett >> <kurt.kenn...@microsoft.com<mailto:kurt.kenn...@microsoft.com>> wrote: >> >> Hi Liming. I’m a bit confused by your email. >> >> I my original email below, I reference directly: >> >>>> DSC spec (January 2016 1.26) says I can do this: >>>> >>>> (Section 3.6 pp 76) >> >> >> In this section it says: >> >> … >> Build options priority (appended from lowest to highest and/or highest >> replacement) is: >> • Highest, DSC file’s component scoped for individual INF files. >> • [BuildOptions.$(arch).CodeBase.Edk2ModuleType] >> • [BuildOptions.$(arch).CodeBase] >> • [BuildOptions.common.CodeBase] >> • [BuildOptions.$(arch)] >> • [BuildOptions.common] >> • [BuildOptions] >> • INF File’s [BuildOptions] section >> • Lowest - tools_def.txt entry >> >> In the “Prototype” section immediately below this (Page 79) is the grammar. >> >> There is no interpretation of the grammar corresponds to >> >> [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] >> >> Kurt, >> >> It looks like a bug in the spec as there is a missing Edk2ModuleType common >> type. >> • [BuildOptions.$(arch).CodeBase.Edk2ModuleType] >> • [BuildOptions.common.CodeBase.Edk2ModuleType] >> • [BuildOptions.$(arch).CodeBase] >> >> Or I guess you could interpret the spec that the last >> BuildOptions.$(arch).CodeBase.Edk2ModuleType wins either common or matching >> $(arch)? >> >> Did [BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER] not work? Did you try >> without the illegal entry >> [BuildOptions.AARCH64.common.EDKII.DXE_RUNTIME_DRIVER] >> >> Thanks, >> >> Andrew Fish >> >> >> >> Which is the format that actually works in the code. >> >> Is there some other section or interpretation that you are referring to? >> >> K2 >> >> From: Gao, Liming [mailto:liming....@intel.com] >> Sent: Monday, August 15, 2016 7:17 PM >> To: Kurt Kennett >> <kurt.kenn...@microsoft.com<mailto:kurt.kenn...@microsoft.com>>; >> af...@apple.com<mailto:af...@apple.com> >> Cc: edk2-devel <edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>> >> Subject: RE: [edk2] Setting BuildOptions by module type does not seem to work >> >> Hi, >> This style has been defined in DSC spec 1.26. It can be downloaded from >> https://github.com/tianocore/tianocore.github.io/wiki/EDK%20II%20Specifications >> >> Thanks >> Liming >> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Kurt >> Kennett >> Sent: Tuesday, August 16, 2016 1:56 AM >> To: af...@apple.com<mailto:af...@apple.com> >> Cc: edk2-devel <edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>> >> Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work >> >> Okay this seems to work: >> >> [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] >> >> Thanks Andrew. >> >> (doesn't match the spec though :) ) >> >> K2 >> >> -----Original Message----- >> From: af...@apple.com<mailto:af...@apple.com> [mailto:af...@apple.com] >> Sent: Monday, August 15, 2016 10:30 AM >> To: Kurt Kennett >> Cc: edk2-devel >> Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work >> >> >>> On Aug 15, 2016, at 9:34 AM, Kurt Kennett wrote: >>> >>> No, I had not tried that. I tried it now and it does not seem to work. >>> >>> I have: >>> >>> [BuildOptions.AARCH64.common] >>> *_VS2015x86_AARCH64_DLINK_FLAGS = /BORK >>> >>> [BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER] >>> *_VS2015x86_AARCH64_DLINK_FLAGS = /PLOR >>> >>> [BuildOptions.AARCH64.common.EDKII.DXE_RUNTIME_DRIVER] >>> *_VS2015x86_AARCH64_DLINK_FLAGS = /BONK >>> >>> And the only one that makes it to the command line is the /BORK one. >>> >>> (The tools do not complain about the specification of options as above). >>> >> >> I'm guessing the syntax checking is not very good? >> [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] >> [BuildOptions.AARCH64.common.EDKII.DXE_RUNTIME_DRIVER] >> >> I see the [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] form used in other >> places, but you have an extra .common? >> >> Thanks, >> >> Andrew Fish >> >>> K2 >>> >>> -----Original Message----- >>> From: af...@apple.com<mailto:af...@apple.com> [mailto:af...@apple.com] >>> Sent: Monday, August 15, 2016 9:22 AM >>> To: Kurt Kennett >>> Cc: edk2-devel >>> Subject: Re: [edk2] Setting BuildOptions by module type does not seem >>> to work >>> >>> >>>> On Aug 15, 2016, at 9:10 AM, Kurt Kennett wrote: >>>> >>>> DSC spec (January 2016 1.26) says I can do this: >>>> >>>> (Section 3.6 pp 76) >>>> >>>> ... >>>> * [BuildOptions.$(arch).CodeBase.Edk2ModuleType] >>>> ... >>>> >>>> And this works fine: >>>> >>>> [BuildOptions.AARCH64.common] >>>> *_VS2015x86_*_DLINK_FLAGS = /BORK >>>> >>>> But when I also do: >>>> >>>> [BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER] >>>> *_VS2015x86_*_DLINK_FLAGS = /PLOR >>>> >>>> The link flags are not affected on the command line - they get the /BORK >>>> for all module types, but not the /PLOR for DXE_RUNTIME_DRIVERs. >>>> >>> >>> Kurt, >>> >>> Have you tried [BuildOptions.AARCH64.EDKII.DXE_RUNTIME_DRIVER]? Do you need >>> EDK compatibility? >>> >>> I'm guessing that works given: >>> ~/work/src/edk2(master)>git grep "BuildOptions." -- *.dsc | grep >>> DXE_RUNTIME_DRIVER >>> OvmfPkg/OvmfPkgIa32.dsc:49:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIV >>> ER] >>> OvmfPkg/OvmfPkgIa32X64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_D >>> RIVER] >>> OvmfPkg/OvmfPkgX64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVE >>> R] >>> QuarkPlatformPkg/Quark.dsc:885:[BuildOptions.common.EDKII.DXE_RUNTIME_ >>> DRIVER] >>> >>> >>>> I'm not familiar with the DSC processing tools source. Anybody know where >>>> to look to see why not? >>>> >>> >>> It starts here: >>> https://github.com/tianocore/edk2/blob/master/BaseTools/Source/Python/ >>> build/build.py and uses some code from: >>> https://github.com/tianocore/edk2/tree/master/BaseTools/Source/Python/ >>> Common >>> >>> Thanks, >>> >>> Andrew Fish >>> >>>> K2 >>>> >>>> >>>> _______________________________________________ >>>> edk2-devel mailing list >>>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org> >>>> https://lists.01.org/mailman/listinfo/edk2-devel >>> >>> _______________________________________________ >>> edk2-devel mailing list >>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org> >>> https://lists.01.org/mailman/listinfo/edk2-devel >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org> >> https://lists.01.org/mailman/listinfo/edk2-devel >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org> >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org<mailto: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