public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Setting BuildOptions by module type does not seem to work
@ 2016-08-15 16:10 Kurt Kennett
  2016-08-15 16:21 ` Andrew Fish
  0 siblings, 1 reply; 13+ messages in thread
From: Kurt Kennett @ 2016-08-15 16:10 UTC (permalink / raw)
  To: edk2-devel

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.

I'm not familiar with the DSC processing tools source.  Anybody know where to look to see why not?

K2




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-15 16:10 Setting BuildOptions by module type does not seem to work Kurt Kennett
@ 2016-08-15 16:21 ` Andrew Fish
  2016-08-15 16:34   ` Kurt Kennett
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Fish @ 2016-08-15 16:21 UTC (permalink / raw)
  To: Kurt Kennett; +Cc: edk2-devel


> On Aug 15, 2016, at 9:10 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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_DRIVER]
OvmfPkg/OvmfPkgIa32X64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
OvmfPkg/OvmfPkgX64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
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
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-15 16:21 ` Andrew Fish
@ 2016-08-15 16:34   ` Kurt Kennett
  2016-08-15 17:29     ` Andrew Fish
  0 siblings, 1 reply; 13+ messages in thread
From: Kurt Kennett @ 2016-08-15 16:34 UTC (permalink / raw)
  To: afish@apple.com; +Cc: edk2-devel

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).

K2

-----Original Message-----
From: afish@apple.com [mailto:afish@apple.com] 
Sent: Monday, August 15, 2016 9:22 AM
To: Kurt Kennett <Kurt.Kennett@microsoft.com>
Cc: edk2-devel <edk2-devel@lists.01.org>
Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work


> On Aug 15, 2016, at 9:10 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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_DRIVER]
OvmfPkg/OvmfPkgIa32X64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
OvmfPkg/OvmfPkgX64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
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
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-15 16:34   ` Kurt Kennett
@ 2016-08-15 17:29     ` Andrew Fish
  2016-08-15 17:55       ` Kurt Kennett
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Fish @ 2016-08-15 17:29 UTC (permalink / raw)
  To: Kurt Kennett; +Cc: edk2-devel


> On Aug 15, 2016, at 9:34 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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: afish@apple.com [mailto:afish@apple.com] 
> Sent: Monday, August 15, 2016 9:22 AM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com>
> Cc: edk2-devel <edk2-devel@lists.01.org>
> Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work
> 
> 
>> On Aug 15, 2016, at 9:10 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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_DRIVER]
> OvmfPkg/OvmfPkgIa32X64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
> OvmfPkg/OvmfPkgX64.dsc:54:[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
> 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
>> 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



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-15 17:29     ` Andrew Fish
@ 2016-08-15 17:55       ` Kurt Kennett
  2016-08-16  2:16         ` Gao, Liming
  0 siblings, 1 reply; 13+ messages in thread
From: Kurt Kennett @ 2016-08-15 17:55 UTC (permalink / raw)
  To: afish@apple.com; +Cc: edk2-devel

Okay this seems to work:

[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]

Thanks Andrew.

(doesn't match the spec though :) )

K2

-----Original Message-----
From: afish@apple.com [mailto:afish@apple.com] 
Sent: Monday, August 15, 2016 10:30 AM
To: Kurt Kennett <Kurt.Kennett@microsoft.com>
Cc: edk2-devel <edk2-devel@lists.01.org>
Subject: Re: [edk2] Setting BuildOptions by module type does not seem to work


> On Aug 15, 2016, at 9:34 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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: afish@apple.com [mailto:afish@apple.com]
> Sent: Monday, August 15, 2016 9:22 AM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com>
> Cc: edk2-devel <edk2-devel@lists.01.org>
> Subject: Re: [edk2] Setting BuildOptions by module type does not seem 
> to work
> 
> 
>> On Aug 15, 2016, at 9:10 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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
>> 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



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-15 17:55       ` Kurt Kennett
@ 2016-08-16  2:16         ` Gao, Liming
  2016-08-16 14:49           ` Kurt Kennett
  0 siblings, 1 reply; 13+ messages in thread
From: Gao, Liming @ 2016-08-16  2:16 UTC (permalink / raw)
  To: Kurt Kennett, afish@apple.com; +Cc: edk2-devel

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-bounces@lists.01.org] On Behalf Of Kurt Kennett
Sent: Tuesday, August 16, 2016 1:56 AM
To: afish@apple.com
Cc: edk2-devel <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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16  2:16         ` Gao, Liming
@ 2016-08-16 14:49           ` Kurt Kennett
  2016-08-16 15:15             ` Andrew Fish
  0 siblings, 1 reply; 13+ messages in thread
From: Kurt Kennett @ 2016-08-16 14:49 UTC (permalink / raw)
  To: Gao, Liming, afish@apple.com; +Cc: edk2-devel

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]

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.gao@intel.com]
Sent: Monday, August 15, 2016 7:17 PM
To: Kurt Kennett <Kurt.Kennett@microsoft.com>; afish@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

Thanks
Liming
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Kurt Kennett
Sent: Tuesday, August 16, 2016 1:56 AM
To: afish@apple.com<mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16 14:49           ` Kurt Kennett
@ 2016-08-16 15:15             ` Andrew Fish
  2016-08-16 15:22               ` Kurt Kennett
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Fish @ 2016-08-16 15:15 UTC (permalink / raw)
  To: Kurt Kennett; +Cc: Gao, Liming, edk2-devel


> On Aug 16, 2016, at 7:49 AM, Kurt Kennett <Kurt.Kennett@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.gao@intel.com] 
> Sent: Monday, August 15, 2016 7:17 PM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com>; afish@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-bounces@lists.01.org <mailto:edk2-devel-bounces@lists.01.org>] On Behalf Of Kurt Kennett
> Sent: Tuesday, August 16, 2016 1:56 AM
> To: afish@apple.com <mailto:afish@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: afish@apple.com <mailto:afish@apple.com> [mailto:afish@apple.com <mailto:afish@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: afish@apple.com <mailto:afish@apple.com> [mailto:afish@apple.com <mailto:afish@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>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16 15:15             ` Andrew Fish
@ 2016-08-16 15:22               ` Kurt Kennett
  2016-08-16 15:47                 ` Andrew Fish
  0 siblings, 1 reply; 13+ messages in thread
From: Kurt Kennett @ 2016-08-16 15:22 UTC (permalink / raw)
  To: afish@apple.com; +Cc: Gao, Liming, edk2-devel

Thanks for your help, Andre. I appreciate it. ☺

[BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER]
Does not work.

[BuildOptions.AARCH64.common.EDKII.DXE_RUNTIME_DRIVER]
Does not work.

[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
Works.


K2

From: afish@apple.com [mailto:afish@apple.com]
Sent: Tuesday, August 16, 2016 8:15 AM
To: Kurt Kennett <Kurt.Kennett@microsoft.com>
Cc: Gao, Liming <liming.gao@intel.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 7:49 AM, Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@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.gao@intel.com]
Sent: Monday, August 15, 2016 7:17 PM
To: Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@microsoft.com>>; afish@apple.com<mailto:afish@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-bounces@lists.01.org] On Behalf Of Kurt Kennett
Sent: Tuesday, August 16, 2016 1:56 AM
To: afish@apple.com<mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16 15:22               ` Kurt Kennett
@ 2016-08-16 15:47                 ` Andrew Fish
  2016-08-16 16:21                   ` Gao, Liming
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Fish @ 2016-08-16 15:47 UTC (permalink / raw)
  To: Kurt Kennett; +Cc: edk2-devel, Gao, Liming


> On Aug 16, 2016, at 8:22 AM, Kurt Kennett <Kurt.Kennett@microsoft.com> 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: afish@apple.com [mailto:afish@apple.com]
> Sent: Tuesday, August 16, 2016 8:15 AM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com>
> Cc: Gao, Liming <liming.gao@intel.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 7:49 AM, Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@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.gao@intel.com]
> Sent: Monday, August 15, 2016 7:17 PM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@microsoft.com>>; afish@apple.com<mailto:afish@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-bounces@lists.01.org] On Behalf Of Kurt Kennett
> Sent: Tuesday, August 16, 2016 1:56 AM
> To: afish@apple.com<mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16 15:47                 ` Andrew Fish
@ 2016-08-16 16:21                   ` Gao, Liming
  2016-08-16 16:27                     ` Andrew Fish
  0 siblings, 1 reply; 13+ messages in thread
From: Gao, Liming @ 2016-08-16 16:21 UTC (permalink / raw)
  To: 'afish@apple.com', Kurt Kennett; +Cc: edk2-devel

Andrew:
  arch value may be common. 3.3.1 Common Definitions, <arch> ::= {"IA32"} {"X64"} {"IPF"} {"EBC"} {<OA>} {"common"}.
  I agree [BuildOptions.AARCH64.common.DXE_RUNTIME_DRIVER should be supported. We will look it.

Thanks
Liming
From: afish@apple.com [mailto:afish@apple.com]
Sent: Tuesday, August 16, 2016 11:47 PM
To: Kurt Kennett <Kurt.Kennett@microsoft.com>
Cc: edk2-devel <edk2-devel@lists.01.org>; Gao, Liming <liming.gao@intel.com>
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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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.Kennett@microsoft.com<mailto:Kurt.Kennett@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.gao@intel.com]
> Sent: Monday, August 15, 2016 7:17 PM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@microsoft.com>>; afish@apple.com<mailto:afish@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-bounces@lists.01.org] On Behalf Of Kurt Kennett
> Sent: Tuesday, August 16, 2016 1:56 AM
> To: afish@apple.com<mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16 16:21                   ` Gao, Liming
@ 2016-08-16 16:27                     ` Andrew Fish
  2016-08-16 16:50                       ` Gao, Liming
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Fish @ 2016-08-16 16:27 UTC (permalink / raw)
  To: Gao, Liming; +Cc: Kurt Kennett, edk2-devel


> On Aug 16, 2016, at 9:21 AM, Gao, Liming <liming.gao@intel.com> wrote:
> 
> Andrew:
>  arch value may be common. 3.3.1 Common Definitions, <arch> ::= {"IA32"} {"X64"} {"IPF"} {"EBC"} {<OA>} {"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: afish@apple.com [mailto:afish@apple.com]
> Sent: Tuesday, August 16, 2016 11:47 PM
> To: Kurt Kennett <Kurt.Kennett@microsoft.com>
> Cc: edk2-devel <edk2-devel@lists.01.org>; Gao, Liming <liming.gao@intel.com>
> 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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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.Kennett@microsoft.com<mailto:Kurt.Kennett@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.gao@intel.com]
>> Sent: Monday, August 15, 2016 7:17 PM
>> To: Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@microsoft.com>>; afish@apple.com<mailto:afish@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-bounces@lists.01.org] On Behalf Of Kurt Kennett
>> Sent: Tuesday, August 16, 2016 1:56 AM
>> To: afish@apple.com<mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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
> https://lists.01.org/mailman/listinfo/edk2-devel



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Setting BuildOptions by module type does not seem to work
  2016-08-16 16:27                     ` Andrew Fish
@ 2016-08-16 16:50                       ` Gao, Liming
  0 siblings, 0 replies; 13+ messages in thread
From: Gao, Liming @ 2016-08-16 16:50 UTC (permalink / raw)
  To: afish@apple.com; +Cc: Kurt Kennett, edk2-devel

Andrew:
  I got your point. Yes. The precedence rules can be updated to reflect their order.

Thanks
Liming
From: afish@apple.com [mailto:afish@apple.com]
Sent: Wednesday, August 17, 2016 12:28 AM
To: Gao, Liming <liming.gao@intel.com>
Cc: Kurt Kennett <Kurt.Kennett@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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.Kennett@microsoft.com<mailto:Kurt.Kennett@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.gao@intel.com]
>> Sent: Monday, August 15, 2016 7:17 PM
>> To: Kurt Kennett <Kurt.Kennett@microsoft.com<mailto:Kurt.Kennett@microsoft.com>>; afish@apple.com<mailto:afish@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-bounces@lists.01.org] On Behalf Of Kurt Kennett
>> Sent: Tuesday, August 16, 2016 1:56 AM
>> To: afish@apple.com<mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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: afish@apple.com<mailto:afish@apple.com> [mailto:afish@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-08-16 16:50 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-15 16:10 Setting BuildOptions by module type does not seem to work Kurt Kennett
2016-08-15 16:21 ` Andrew Fish
2016-08-15 16:34   ` Kurt Kennett
2016-08-15 17:29     ` Andrew Fish
2016-08-15 17:55       ` Kurt Kennett
2016-08-16  2:16         ` Gao, Liming
2016-08-16 14:49           ` Kurt Kennett
2016-08-16 15:15             ` Andrew Fish
2016-08-16 15:22               ` Kurt Kennett
2016-08-16 15:47                 ` Andrew Fish
2016-08-16 16:21                   ` Gao, Liming
2016-08-16 16:27                     ` Andrew Fish
2016-08-16 16:50                       ` Gao, Liming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox