xref: /OK3568_Linux_fs/buildroot/boot/syslinux/0015-efi-main.c-include-efisetjmp.h.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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