public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Liming Gao" <liming.gao@intel.com>
To: "Kinney, Michael D" <michael.d.kinney@intel.com>,
	"devel@edk2.groups.io" <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>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [edk2-devel] [Patch] IntelSiliconPkg/ShadowMicrocodePei: Fix GCC build error.
Date: Thu, 27 Feb 2020 06:52:28 +0000	[thread overview]
Message-ID: <5095593622094a70bd7a825d7e76e8bb@intel.com> (raw)
In-Reply-To: <E92EE9817A31E24EB0585FDF735412F5B9EC29B7@ORSMSX113.amr.corp.intel.com>

Mike:
  Current solution is to define the flexible structure array with zero. This style is supported by VS/GCC/CLANG compiler. StructurePcd also uses this solution (here is my example https://github.com/lgao4/edk2/blob/StructurePcd/TestPkg/Include/Guid/Test2.h#L32). Edk2 also have the similar usage. So, I suggest to use this solution and fix GCC failure in ShadowMicrocodePei now. Next, we can investigate the compiler flags in GCC5 and CLANGPDB for the empty flexible structure array.

Thanks
Liming
> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Thursday, February 27, 2020 2:04 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.
> 
> 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
> > > > > >
> > > > > >
> > > > > >
> > >
> > >
> > > 


  reply	other threads:[~2020-02-27  6:52 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 [this message]
2020-02-27 15:42           ` Andrew Fish
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=5095593622094a70bd7a825d7e76e8bb@intel.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