public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Andrew Fish" <afish@apple.com>
To: devel@edk2.groups.io, michael.d.kinney@intel.com
Cc: "Gao, Liming" <liming.gao@intel.com>,
	"Fu, Siyuan" <siyuan.fu@intel.com>, "Ni, Ray" <ray.ni@intel.com>,
	"Chaganty, Rangasai V" <rangasai.v.chaganty@intel.com>
Subject: Re: [edk2-devel] [Patch] IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build error.
Date: Thu, 27 Feb 2020 07:42:47 -0800	[thread overview]
Message-ID: <63C810E5-7643-4524-B4A5-14D78D912FD9@apple.com> (raw)
In-Reply-To: <E92EE9817A31E24EB0585FDF735412F5B9EC29B7@ORSMSX113.amr.corp.intel.com>

Mike,

Flexible array members must be the last element of a struct  but they can not be the only element.

This is non standard behavior from the compilers that are not throwing the error.

Why not just use a pointer?
> On Feb 26, 2020, at 10:03 PM, Michael D Kinney <michael.d.kinney@intel.com> wrote:
> 
> Liming,
> 
> This does not make sense.  Those compilers
> should support C99 flexible array members.
> 
> Structured PCDs also require use of flexible
> array members.
> 
> We need to make sure the compiler flags for
> those tool chain are correct to support flexible
> array members.
> 
> Mike
> 
>> -----Original Message-----
>> From: Gao, Liming <liming.gao@intel.com>
>> Sent: Wednesday, February 26, 2020 9:58 PM
>> To: devel@edk2.groups.io; Kinney, Michael D
>> <michael.d.kinney@intel.com>; Fu, Siyuan
>> <siyuan.fu@intel.com>
>> Cc: Ni, Ray <ray.ni@intel.com>; Chaganty, Rangasai V
>> <rangasai.v.chaganty@intel.com>
>> Subject: RE: [edk2-devel] [Patch]
>> IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build
>> error.
>> 
>> Mike:
>>  I find this issue on GCC5 tool chain tag with GCC 5.5
>> and CLANGPDB tool chain tag with CLANG 9.0.0
>> 
>> Thanks
>> Liming
>>> -----Original Message-----
>>> From: devel@edk2.groups.io <devel@edk2.groups.io> On
>> Behalf Of Michael D Kinney
>>> Sent: Thursday, February 27, 2020 1:54 PM
>>> To: Gao, Liming <liming.gao@intel.com>;
>> devel@edk2.groups.io; Fu, Siyuan <siyuan.fu@intel.com>;
>> Kinney, Michael D
>>> <michael.d.kinney@intel.com>
>>> Cc: Ni, Ray <ray.ni@intel.com>; Chaganty, Rangasai V
>> <rangasai.v.chaganty@intel.com>
>>> Subject: Re: [edk2-devel] [Patch]
>> IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build
>> error.
>>> 
>>> Which GCC and CLANG tool chain tags?
>>> 
>>> Flexible array member is a standard C feature
>>> documented in C99.
>>> 
>>> Mike
>>> 
>>>> -----Original Message-----
>>>> From: Gao, Liming <liming.gao@intel.com>
>>>> Sent: Wednesday, February 26, 2020 9:38 PM
>>>> To: Kinney, Michael D <michael.d.kinney@intel.com>;
>>>> devel@edk2.groups.io; Fu, Siyuan
>> <siyuan.fu@intel.com>
>>>> Cc: Ni, Ray <ray.ni@intel.com>; Chaganty, Rangasai
>> V
>>>> <rangasai.v.chaganty@intel.com>
>>>> Subject: RE: [edk2-devel] [Patch]
>>>> IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build
>>>> error.
>>>> 
>>>> Mike:
>>>>  I find GCC and CLANG will report the error for
>> the
>>>> empty struct.
>>>> 
>>>> d:\allpkg\edk2-
>>>> 
>> platforms\Silicon\Intel\IntelSiliconPkg\Include\Guid/Mi
>>>> crocodeShadowInfoHob.h:61:11: error: flexible array
>>>> member 'MicrocodeAddressInFlash' not allowed in
>>>> otherwise empty struct
>>>>  UINT64  MicrocodeAddressInFlash[];
>>>>          ^
>>>> 1 error generated.
>>>> 
>>>> Thanks
>>>> Liming
>>>>> -----Original Message-----
>>>>> From: Kinney, Michael D
>> <michael.d.kinney@intel.com>
>>>>> Sent: Thursday, February 27, 2020 1:25 PM
>>>>> To: devel@edk2.groups.io; Fu, Siyuan
>>>> <siyuan.fu@intel.com>; Kinney, Michael D
>>>> <michael.d.kinney@intel.com>
>>>>> Cc: Ni, Ray <ray.ni@intel.com>; Chaganty,
>> Rangasai V
>>>> <rangasai.v.chaganty@intel.com>; Gao, Liming
>>>> <liming.gao@intel.com>
>>>>> Subject: RE: [edk2-devel] [Patch]
>>>> IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build
>>>> error.
>>>>> 
>>>>> What compiler does not like the flexible array
>>>>> member syntax [].
>>>>> 
>>>>> Mike
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: devel@edk2.groups.io
>> <devel@edk2.groups.io>
>>>> On
>>>>>> Behalf Of Siyuan, Fu
>>>>>> Sent: Wednesday, February 26, 2020 5:58 PM
>>>>>> To: devel@edk2.groups.io
>>>>>> Cc: Ni, Ray <ray.ni@intel.com>; Chaganty,
>> Rangasai
>>>> V
>>>>>> <rangasai.v.chaganty@intel.com>; Gao, Liming
>>>>>> <liming.gao@intel.com>
>>>>>> Subject: [edk2-devel] [Patch]
>>>>>> IntelSiliconPkg/ShadowMicrocodePei: Fix GCC
>> build
>>>>>> error.
>>>>>> 
>>>>>> This patch fixes compiler error introduced by
>>>> commit
>>>>>> b0099a39bd.
>>>>>> 
>>>>>> BZ:
>>>>>> 
>>>> 
>> https://tianocore.acgmultimedia.com/show_bug.cgi?id=244
>>>>>> 9
>>>>>> Cc: Ray Ni <ray.ni@intel.com>
>>>>>> Cc: Rangasai V Chaganty
>>>> <rangasai.v.chaganty@intel.com>
>>>>>> Cc: Liming Gao <liming.gao@intel.com>
>>>>>> Signed-off-by: Siyuan Fu <siyuan.fu@intel.com>
>>>>>> ---
>>>>>> 
>> .../Feature/ShadowMicrocode/ShadowMicrocodePei.c
>>>>>> | 2 +-
>>>>>> 
>>>>>> 
>>>> 
>> .../Intel/IntelSiliconPkg/Include/Guid/MicrocodeShadowI
>>>>>> nfoHob.h | 2 +-
>>>>>> 2 files changed, 2 insertions(+), 2
>> deletions(-)
>>>>>> 
>>>>>> diff --git
>>>>>> 
>>>> 
>> a/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode
>>>>>> /ShadowMicrocodePei.c
>>>>>> 
>>>> 
>> b/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode
>>>>>> /ShadowMicrocodePei.c
>>>>>> index 7e4084247e..8d6574f667 100644
>>>>>> ---
>>>>>> 
>>>> 
>> a/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode
>>>>>> /ShadowMicrocodePei.c
>>>>>> +++
>>>>>> 
>>>> 
>> b/Silicon/Intel/IntelSiliconPkg/Feature/ShadowMicrocode
>>>>>> /ShadowMicrocodePei.c
>>>>>> @@ -247,7 +247,7 @@ ShadowMicrocodePatchWorker
>> (
>>>>>>       (VOID *) Patches[Index].Address,
>>>>>>       Patches[Index].Size
>>>>>>       );
>>>>>> -    MicrocodeAddressInMemory[Index] = (UINT64)
>>>> Walker;
>>>>>> +    MicrocodeAddressInMemory[Index] = (UINT64)
>>>> (UINTN)
>>>>>> Walker;
>>>>>>     Flashcontext-
>>> MicrocodeAddressInFlash[Index]
>>>> =
>>>>>> (UINT64) Patches[Index].Address;
>>>>>>     Walker += Patches[Index].Size;
>>>>>>   }
>>>>>> diff --git
>>>>>> 
>>>> 
>> a/Silicon/Intel/IntelSiliconPkg/Include/Guid/MicrocodeS
>>>>>> hadowInfoHob.h
>>>>>> 
>>>> 
>> b/Silicon/Intel/IntelSiliconPkg/Include/Guid/MicrocodeS
>>>>>> hadowInfoHob.h
>>>>>> index d887b39123..1daae1234a 100644
>>>>>> ---
>>>>>> 
>>>> 
>> a/Silicon/Intel/IntelSiliconPkg/Include/Guid/MicrocodeS
>>>>>> hadowInfoHob.h
>>>>>> +++
>>>>>> 
>>>> 
>> b/Silicon/Intel/IntelSiliconPkg/Include/Guid/MicrocodeS
>>>>>> hadowInfoHob.h
>>>>>> @@ -58,7 +58,7 @@ typedef struct {
>>>>>>   // microcode patch address on flash. The
>> address
>>>> is
>>>>>> placed in same
>>>>>>   // order as the microcode patches in
>>>>>> MicrocodeAddrInMemory.
>>>>>>   //
>>>>>> -  UINT64  MicrocodeAddressInFlash[];
>>>>>> +  UINT64  MicrocodeAddressInFlash[0];
>>>>>> } EFI_MICROCODE_STORAGE_TYPE_FLASH_CONTEXT;
>>>>>> 
>>>>>> #endif
>>>>>> --
>>>>>> 2.19.1.windows.1
>>>>>> 
>>>>>> 
>>>>>> 
>>> 
>>> 
>>> 
> 
> 
> 
> 

  parent reply	other threads:[~2020-02-27 15:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27  1:58 [Patch] IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build error Siyuan, Fu
2020-02-27  2:05 ` Liming Gao
2020-02-27  4:22 ` Ni, Ray
2020-02-27  5:25 ` [edk2-devel] " Michael D Kinney
2020-02-27  5:38   ` Liming Gao
2020-02-27  5:53     ` Michael D Kinney
2020-02-27  5:58       ` Liming Gao
2020-02-27  6:03         ` Michael D Kinney
2020-02-27  6:52           ` Liming Gao
2020-02-27 15:42           ` Andrew Fish [this message]
2020-03-01 23:41             ` Michael D Kinney
2020-03-02  3:47               ` Andrew Fish

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=63C810E5-7643-4524-B4A5-14D78D912FD9@apple.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox