"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

Reply via email to