1From 7d68fa68cd9f2987bd85339f3391913a8b0e58c7 Mon Sep 17 00:00:00 2001 2From: Thomas Petazzoni <thomas.petazzoni@bootlin.com> 3Date: Tue, 24 Mar 2020 10:21:27 +0100 4Subject: [PATCH] efi/main.c: include <efisetjmp.h> 5MIME-Version: 1.0 6Content-Type: text/plain; charset=UTF-8 7Content-Transfer-Encoding: 8bit 8 9Building syslinux against gnu-efi 3.0.10 currently fails with: 10 11syslinux/efi/main.c:33:8: error: unknown type name ‘jmp_buf’ 12 33 | static jmp_buf load_error_buf; 13 | ^~~~~~~ 14syslinux/efi/main.c: In function ‘local_boot’: 15syslinux/efi/main.c:189:5: warning: implicit declaration of function ‘longjmp’ [-Wimplicit-function-declaration] 16 189 | longjmp(&load_error_buf, 1); 17 | ^~~~~~~ 18syslinux/efi/main.c: In function ‘build_gdt’: 19syslinux/efi/main.c:907:75: warning: taking address of packed member of ‘struct dt_desc’ may result in an unaligned pointer value [-Waddress-of-packed-member] 20 907 | status = emalloc(gdt.limit, __SIZEOF_POINTER__ , (EFI_PHYSICAL_ADDRESS *)&gdt.base); 21 | ^~~~~~~~~ 22syslinux/efi/main.c: In function ‘efi_main’: 23syslinux/efi/main.c:1390:7: warning: implicit declaration of function ‘setjmp’ [-Wimplicit-function-declaration] 24 1390 | if (!setjmp(&load_error_buf)) 25 | ^~~~~~ 26make[3]: *** [syslinux/mk/efi.mk:63: main.o] Error 1 27 28This is due to gnu-efi commit 486ba3c3bdd147b7d98159b9e650be60bce0f027 29("Do not include efisetjmp.h on efi.h"), in which they state: 30 31 Do not include efisetjmp.h on efi.h 32 33 People than really want to use efisetjmp implementation can include 34 the header on their own. 35 36 Signed-off-by: leo <leo.sartre@geebol.fr> 37 38So we act as specified, and include <efisetjmp.h> from efi/main.c. 39 40Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> 41Upstream: https://www.syslinux.org/archives/2020-March/026621.html 42--- 43 efi/main.c | 1 + 44 1 file changed, 1 insertion(+) 45 46diff --git a/efi/main.c b/efi/main.c 47index 6a748412..e924cfb1 100644 48--- a/efi/main.c 49+++ b/efi/main.c 50@@ -12,6 +12,7 @@ 51 #include <sys/ansi.h> 52 53 #include "efi.h" 54+#include <efisetjmp.h> 55 #include "fio.h" 56 #include "version.h" 57 #include "efi_pxe.h" 58-- 592.25.1 60 61