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.kin...@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....@intel.com> >> Sent: Wednesday, February 26, 2020 9:58 PM >> To: devel@edk2.groups.io; Kinney, Michael D >> <michael.d.kin...@intel.com>; Fu, Siyuan >> <siyuan...@intel.com> >> Cc: Ni, Ray <ray...@intel.com>; Chaganty, Rangasai V >> <rangasai.v.chaga...@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....@intel.com>; >> devel@edk2.groups.io; Fu, Siyuan <siyuan...@intel.com>; >> Kinney, Michael D >>> <michael.d.kin...@intel.com> >>> Cc: Ni, Ray <ray...@intel.com>; Chaganty, Rangasai V >> <rangasai.v.chaga...@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....@intel.com> >>>> Sent: Wednesday, February 26, 2020 9:38 PM >>>> To: Kinney, Michael D <michael.d.kin...@intel.com>; >>>> devel@edk2.groups.io; Fu, Siyuan >> <siyuan...@intel.com> >>>> Cc: Ni, Ray <ray...@intel.com>; Chaganty, Rangasai >> V >>>> <rangasai.v.chaga...@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.kin...@intel.com> >>>>> Sent: Thursday, February 27, 2020 1:25 PM >>>>> To: devel@edk2.groups.io; Fu, Siyuan >>>> <siyuan...@intel.com>; Kinney, Michael D >>>> <michael.d.kin...@intel.com> >>>>> Cc: Ni, Ray <ray...@intel.com>; Chaganty, >> Rangasai V >>>> <rangasai.v.chaga...@intel.com>; Gao, Liming >>>> <liming....@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...@intel.com>; Chaganty, >> Rangasai >>>> V >>>>>> <rangasai.v.chaga...@intel.com>; Gao, Liming >>>>>> <liming....@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...@intel.com> >>>>>> Cc: Rangasai V Chaganty >>>> <rangasai.v.chaga...@intel.com> >>>>>> Cc: Liming Gao <liming....@intel.com> >>>>>> Signed-off-by: Siyuan Fu <siyuan...@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 >>>>>> >>>>>> >>>>>> >>> >>> >>> > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#55021): https://edk2.groups.io/g/devel/message/55021 Mute This Topic: https://groups.io/mt/71579115/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-