On 6 February 2018 at 23:01, Laszlo Ersek <ler...@redhat.com> wrote:
> "Platform.h" declares the AmdSevInitialize() function without EFIAPI, but
> the definition in "AmdSev.c" includes EFIAPI.
>
> GCC toolchains without LTO do not catch this error because "AmdSev.c" does
> not include "Platform.h"; i.e. the declaration used by callers such as
> "Platform.c" is not actually matched against the function definition at
> build time.
>
> With LTO enabled, the mismatch is found -- however, as a warning only, due
> to commit f8d0b9662993 ("BaseTools GCC5: disable warnings-as-errors for
> now", 2016-08-03).
>
> Include the header in the C file (which turns the issue into a hard build
> error on all GCC toolchains), plus sync the declaration from the header
> file to the C file.
>
> There's been no functional breakage because AmdSevInitialize() takes no
> parameters.
>
> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Cc: Brijesh Singh <brijesh.si...@amd.com>
> Cc: Jordan Justen <jordan.l.jus...@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>

Acked-by: Ard Biesheuvel <ard.biesheu...@linaro.org>

> ---
>  OvmfPkg/PlatformPei/AmdSev.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c
> index 1539e5b5cdce..ad31b69fb032 100644
> --- a/OvmfPkg/PlatformPei/AmdSev.c
> +++ b/OvmfPkg/PlatformPei/AmdSev.c
> @@ -23,6 +23,8 @@
>  #include <Register/Amd/Cpuid.h>
>  #include <Library/MemEncryptSevLib.h>
>
> +#include "Platform.h"
> +
>  /**
>
>    Function checks if SEV support is available, if present then it sets
> @@ -30,7 +32,6 @@
>
>    **/
>  VOID
> -EFIAPI
>  AmdSevInitialize (
>    VOID
>    )
> --
> 2.14.1.3.gb7cf6e02401b
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to