Subject: Re: [kvm-unit-tests PATCH v2 2/4] Makefile: Prepare for clang EFI builds

From: "Nicholas Piggin" <[email-masked]>
Date: Wed, 11 Sep 2024 10:21:39 +1000

On Wed Sep 4, 2024 at 8:50 PM AEST, Andrew Jones wrote:
> clang complains about GNU extensions such as variable sized types not
> being at the end of structs unless -Wno-gnu is used. We may
> eventually want -Wno-gnu, but for now let's just handle the warnings
> as they come. Add -Wno-gnu-variable-sized-type-not-at-end to avoid
> the warning issued for the initrd_dev_path struct.

You could also make a variant of struct efi_vendor_dev_path with no
vendordata just for initrd_dev_path?

It's taken from Linux or some efi upstream though so maybe it's annoying
to make such changes here. Okay in that case since it's limited to EFI.

Reviewed-by: Nicholas Piggin <[email-masked]>

>
> Signed-off-by: Andrew Jones <[email-masked]>
> ---
>  Makefile | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 3d51cb726120..7471f7285b78 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -50,6 +50,8 @@ EFI_CFLAGS += -fshort-wchar
>  # EFI applications use PIC as they are loaded to dynamic addresses, not a fixed
>  # starting address
>  EFI_CFLAGS += -fPIC
> +# Avoid error with the initrd_dev_path struct
> +EFI_CFLAGS += -Wno-gnu-variable-sized-type-not-at-end
>  # Create shared library
>  EFI_LDFLAGS := -Bsymbolic -shared -nostdlib
>  endif