"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> Fixes: 13b5d743c87a22dfcd94e8475d943dee5712b62d Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <ler...@redhat.com> Reviewed-by: Brijesh Singh <brijesh.si...@amd.com> Reviewed-by: Jaben Carsey <jaben.car...@intel.com> Acked-by: Ard Biesheuvel <ard.biesheu...@linaro.org> --- Notes: v2: - no code changes, just pick up feedback tags - add "Fixes:" tag to the commit message 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