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