> On Aug 16, 2016, at 7:49 AM, Kurt Kennett <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 <BuildOptions> 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>; af...@apple.com > Cc: edk2-devel <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 > > <https://github.com/tianocore/tianocore.github.io/wiki/EDK%20II%20Specifications> > > Thanks > Liming > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org > <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 > <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 > > <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/ > > <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/ > > <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 > >> <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 > > <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 > <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