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