2020-06-10 13:25:17

by Zhenzhong Duan

[permalink] [raw]
Subject: [PATCH] efi/libstub: Fix build error with libstub

Got below error during build:

In file included from drivers/firmware/efi/libstub/efi-stub-helper.c:16:0:
drivers/firmware/efi/libstub/efi-stub-helper.c: In function ‘efi_char16_puts’:
arch/x86/include/asm/efi.h:355:3: sorry, unimplemented: ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it
: __efi64_thunk_map(inst, func, inst, ##__VA_ARGS__))
^
drivers/firmware/efi/libstub/efi-stub-helper.c:37:2: note: in expansion of macro ‘efi_call_proto’
efi_call_proto(efi_table_attr(efi_system_table, con_out),
^
drivers/firmware/efi/libstub/efi-stub-helper.c:37: confused by earlier errors, bailing out

Fix it by adding -maccumulate-outgoing-args for efi libstub build
as suggested by gcc.

Signed-off-by: Zhenzhong Duan <[email protected]>
---
drivers/firmware/efi/libstub/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
index cce4a74..25e5d02 100644
--- a/drivers/firmware/efi/libstub/Makefile
+++ b/drivers/firmware/efi/libstub/Makefile
@@ -6,7 +6,7 @@
# enabled, even if doing so doesn't break the build.
#
cflags-$(CONFIG_X86_32) := -march=i386
-cflags-$(CONFIG_X86_64) := -mcmodel=small
+cflags-$(CONFIG_X86_64) := -mcmodel=small -maccumulate-outgoing-args
cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ \
-fPIC -fno-strict-aliasing -mno-red-zone \
-mno-mmx -mno-sse -fshort-wchar \
--
1.8.3.1