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
>>>>>>
>>>>>>
>>>>>>
>>>
>>>
>>>
>
>
>
>
next prev 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