[edk2-devel] [PATCH] OvmfPkg/X86QemuLoadImageLib: add dummy assignment to work around GCC

Ard Biesheuvel posted 1 patch 1 week ago
Failed in applying to current master (apply log)
OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c | 5 +++++
1 file changed, 5 insertions(+)

[edk2-devel] [PATCH] OvmfPkg/X86QemuLoadImageLib: add dummy assignment to work around GCC

Posted by Ard Biesheuvel 1 week ago
GCC 4.8 or 4.9 may throw the following error when building OVMF:

  Edk2/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c:
      In function ‘QemuLoadKernelImage’:
  Edk2/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c:416:30:
      error: ‘CommandLine’ may be used uninitialized in this function
                                               [-Werror=maybe-uninitialized]
        UnicodeSPrintAsciiFormat (
        cc1: all warnings being treated as errors

This is due to the fact that older GCCs fail to infer that CommandLine is
never actually used unless it has been assigned. So add a redundant NULL
assignment to help these older GCCs understand this.

Link: https://bugzilla.tianocore.org/show_bug.cgi?id=2630
Fixes: 7c47d89003a6f ("OvmfPkg: implement QEMU loader library for X86 with ...")
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
index c5bd6862b265..52b14a4462d8 100644
--- a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
+++ b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
@@ -291,6 +291,11 @@ QemuLoadKernelImage (
   CHAR8                     *CommandLine;
   UINTN                     InitrdSize;
 
+  //
+  // Redundant assignment to work around GCC48/GCC49 limitations.
+  //
+  CommandLine = NULL;
+
   //
   // Load the image. This should call back into the QEMU EFI loader file system.
   //
-- 
2.17.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#56260): https://edk2.groups.io/g/devel/message/56260
Mute This Topic: https://groups.io/mt/72537049/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] OvmfPkg/X86QemuLoadImageLib: add dummy assignment to work around GCC

Posted by Laszlo Ersek 1 week ago
On 03/25/20 10:12, Ard Biesheuvel wrote:
> GCC 4.8 or 4.9 may throw the following error when building OVMF:
> 
>   Edk2/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c:
>       In function ‘QemuLoadKernelImage’:
>   Edk2/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c:416:30:
>       error: ‘CommandLine’ may be used uninitialized in this function
>                                                [-Werror=maybe-uninitialized]
>         UnicodeSPrintAsciiFormat (
>         cc1: all warnings being treated as errors
> 
> This is due to the fact that older GCCs fail to infer that CommandLine is
> never actually used unless it has been assigned. So add a redundant NULL
> assignment to help these older GCCs understand this.
> 
> Link: https://bugzilla.tianocore.org/show_bug.cgi?id=2630
> Fixes: 7c47d89003a6f ("OvmfPkg: implement QEMU loader library for X86 with ...")
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
> index c5bd6862b265..52b14a4462d8 100644
> --- a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
> +++ b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
> @@ -291,6 +291,11 @@ QemuLoadKernelImage (
>    CHAR8                     *CommandLine;
>    UINTN                     InitrdSize;
>  
> +  //
> +  // Redundant assignment to work around GCC48/GCC49 limitations.
> +  //
> +  CommandLine = NULL;
> +
>    //
>    // Load the image. This should call back into the QEMU EFI loader file system.
>    //
> 

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Thanks,
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#56337): https://edk2.groups.io/g/devel/message/56337
Mute This Topic: https://groups.io/mt/72537049/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] OvmfPkg/X86QemuLoadImageLib: add dummy assignment to work around GCC

Posted by Ard Biesheuvel 1 week ago
On Wed, 25 Mar 2020 at 20:08, Laszlo Ersek <lersek@redhat.com> wrote:
>
> On 03/25/20 10:12, Ard Biesheuvel wrote:
> > GCC 4.8 or 4.9 may throw the following error when building OVMF:
> >
> >   Edk2/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c:
> >       In function ‘QemuLoadKernelImage’:
> >   Edk2/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c:416:30:
> >       error: ‘CommandLine’ may be used uninitialized in this function
> >                                                [-Werror=maybe-uninitialized]
> >         UnicodeSPrintAsciiFormat (
> >         cc1: all warnings being treated as errors
> >
> > This is due to the fact that older GCCs fail to infer that CommandLine is
> > never actually used unless it has been assigned. So add a redundant NULL
> > assignment to help these older GCCs understand this.
> >
> > Link: https://bugzilla.tianocore.org/show_bug.cgi?id=2630
> > Fixes: 7c47d89003a6f ("OvmfPkg: implement QEMU loader library for X86 with ...")
> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > ---
> >  OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
> > index c5bd6862b265..52b14a4462d8 100644
> > --- a/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
> > +++ b/OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.c
> > @@ -291,6 +291,11 @@ QemuLoadKernelImage (
> >    CHAR8                     *CommandLine;
> >    UINTN                     InitrdSize;
> >
> > +  //
> > +  // Redundant assignment to work around GCC48/GCC49 limitations.
> > +  //
> > +  CommandLine = NULL;
> > +
> >    //
> >    // Load the image. This should call back into the QEMU EFI loader file system.
> >    //
> >
>
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
>

Pushed, thanks.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#56379): https://edk2.groups.io/g/devel/message/56379
Mute This Topic: https://groups.io/mt/72537049/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-