package/gnu-efi: bump version to 4.0.4

https://github.com/ncroxon/gnu-efi/releases/tag/4.0.1
https://github.com/ncroxon/gnu-efi/releases/tag/4.0.2
https://github.com/ncroxon/gnu-efi/releases/tag/4.0.3
https://github.com/ncroxon/gnu-efi/releases/tag/4.0.4

Removed patch due to upstream commit
f3ececb9eb
which contains a different fix.

Added patch to fix build errors with syslinux:
build/syslinux-6.03/com32/lib/exit.c:57:(.text+0x19):
 undefined reference to `longjmp'
build/syslinux-6.03/com32/lib/sys/module/exec.c:206:(.text+0xdc):
 undefined reference to `setjmp'

LICENSE was clarified and new license files were added in:
71d5d1746b

licenses/LICENSE.efilib was updated in:
71b05279b1

This commit reflects those changes by updating _LICENSE_FILES and
adding the new license hashes.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Bernd Kuhls
2026-03-28 20:15:21 +01:00
committed by Julien Olivain
parent 62c7bd4887
commit 6561290de5
5 changed files with 271 additions and 39 deletions

View File

@@ -401,7 +401,6 @@ package/gerbera/S99gerbera lib_sysv.Indent
package/git-crypt/0001-fix-build-with-libressl-3.5.0.patch lib_patch.Upstream
package/glorytun/0001-Add-support-for-Apple-silicon.patch lib_patch.Upstream
package/glorytun/0002-aegis256.c-fix-aarch64-build-with-uclibc.patch lib_patch.Upstream
package/gnu-efi/0001-Make.defaults-don-t-override-ARCH-when-cross-compili.patch lib_patch.Upstream
package/gnupg/0001-build-Always-use-EXTERN_UNLESS_MAIN_MODULE-pattern.patch lib_patch.Upstream
package/gnuplot/0001-configure-add-without-demo-option.patch lib_patch.Upstream
package/go/go-src/0001-build.go-explicit-option-for-crosscompilation.patch lib_patch.Upstream

View File

@@ -1,32 +0,0 @@
From 893a75202407e8ff3d75b217813a5df87da7c807 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sun, 20 Jan 2019 21:07:11 +0100
Subject: [PATCH] Make.defaults: don't override ARCH when cross-compiling
Don't override the user-provided ARCH when cross-compiling otherwise
ARCH won't be correct for armv5, aarch64 and x86_64
Fixes:
- http://autobuild.buildroot.org/results/2dfc0e10da25a8382a43557420d7dc3444c02dbb
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Make.defaults | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Make.defaults b/Make.defaults
index 1347aca..bb21874 100755
--- a/Make.defaults
+++ b/Make.defaults
@@ -99,7 +99,7 @@ ARCH ?= $(shell $(HOSTCC) -dumpmachine | cut -f1 -d- | sed -e s,i[34567
# Get ARCH from the compiler if cross compiling
ifneq ($(CROSS_COMPILE),)
- override ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv[67].*,arm,' )
+ ARCH := $(shell $(CC) -dumpmachine | cut -f1 -d-| sed -e s,i[3456789]86,ia32, -e 's,armv[67].*,arm,' )
endif
# FreeBSD (and possibly others) reports amd64 instead of x86_64
--
2.47.1

View File

@@ -0,0 +1,250 @@
From 2e3092703698657703e0af9d463c289d78c3c195 Mon Sep 17 00:00:00 2001
From: lzcunt <lzcunt@rawr.fun>
Date: Tue, 9 Dec 2025 15:37:03 +0300
Subject: [PATCH] Revert setjmp/longjmp ABI break in #77
aa27c28 introduced an ABI break in a minor version which broke syslinux.
syslinux externs the setjmp/longjmp implementation of GNU-EFI, therefore
depends on the symbol name.
Let's alias base_setjmp and base_longjmp to setjmp and longjmp
respectively so syslinux builds again.
Signed-off-by: lzcunt <lzcunt@rawr.fun>
Upstream: https://github.com/ncroxon/gnu-efi/pull/77#ref-commit-2e30927
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
lib/aarch64/setjmp.S | 6 ++++++
lib/arm/setjmp.S | 6 ++++++
lib/ia32/setjmp.S | 14 +++++++++++---
lib/ia64/setjmp.S | 6 ++++++
lib/loongarch64/setjmp.S | 7 ++++++-
lib/mips64el/setjmp.S | 6 ++++++
lib/riscv64/setjmp.S | 6 ++++++
lib/x86_64/setjmp.S | 8 ++++++++
8 files changed, 55 insertions(+), 4 deletions(-)
diff --git a/lib/aarch64/setjmp.S b/lib/aarch64/setjmp.S
index a83eb88e..27acce71 100644
--- a/lib/aarch64/setjmp.S
+++ b/lib/aarch64/setjmp.S
@@ -33,6 +33,9 @@ BASIS,
#define REG_PAIR(REG1, REG2, OFFS) stp REG1, REG2, [x0, OFFS]
#define REG_ONE(REG1, OFFS) str REG1, [x0, OFFS]
+ .globl setjmp
+ .type setjmp, @function
+setjmp:
.globl base_setjmp
.type base_setjmp, @function
base_setjmp:
@@ -48,6 +51,9 @@ base_setjmp:
#define REG_PAIR(REG1, REG2, OFFS) ldp REG1, REG2, [x0, OFFS]
#define REG_ONE(REG1, OFFS) ldr REG1, [x0, OFFS]
+ .globl longjmp
+ .type longjmp, @function
+longjmp:
.globl base_longjmp
.type base_longjmp, @function
base_longjmp:
diff --git a/lib/arm/setjmp.S b/lib/arm/setjmp.S
index 2f0b9543..8fe3a439 100644
--- a/lib/arm/setjmp.S
+++ b/lib/arm/setjmp.S
@@ -11,6 +11,9 @@
*/
.text
.arm
+ .globl setjmp
+ .type setjmp, %function
+setjmp:
.globl base_setjmp
.type base_setjmp, %function
base_setjmp:
@@ -19,6 +22,9 @@ base_setjmp:
eor r0, r0, r0
bx lr
+ .globl longjmp
+ .type longjmp, %function
+longjmp:
.globl base_longjmp
.type base_longjmp, %function
base_longjmp:
diff --git a/lib/ia32/setjmp.S b/lib/ia32/setjmp.S
index b59e7391..2708d1a7 100644
--- a/lib/ia32/setjmp.S
+++ b/lib/ia32/setjmp.S
@@ -13,12 +13,16 @@ BASIS,
* IMPLIED.
*/
.text
+ .globl setjmp
.globl base_setjmp
#ifndef __MINGW32__
- .type base_setjmp, @function
+ .type setjmp, @function
+ .type base_setjmp, @function
#else
- .def base_setjmp; .scl 2; .type 32; .endef
+ .def setjmp; .scl 2; .type 32; .endef
+ .def base_setjmp; .scl 2; .type 32; .endef
#endif
+setjmp:
base_setjmp:
pop %ecx
movl (%esp), %edx
@@ -30,12 +34,16 @@ base_setjmp:
xorl %eax, %eax
jmp *%ecx
+ .globl longjmp
.globl base_longjmp
#ifndef __MINGW32__
+ .type longjmp, @function
.type base_longjmp, @function
#else
- .def base_longjmp; .scl 2; .type 32; .endef
+ .def longjmp; .scl 2; .type 32; .endef
+ .def base_longjmp; .scl 2; .type 32; .endef
#endif
+longjmp:
base_longjmp:
pop %eax
pop %edx
diff --git a/lib/ia64/setjmp.S b/lib/ia64/setjmp.S
index 3ab9a153..26d35530 100644
--- a/lib/ia64/setjmp.S
+++ b/lib/ia64/setjmp.S
@@ -13,6 +13,9 @@ BASIS,
* IMPLIED.
*/
.text
+ .globl setjmp
+ .type setjmp, @function
+setjmp:
.globl base_setjmp
.type base_setjmp, @function
base_setjmp:
@@ -96,6 +99,9 @@ base_setjmp:
br.ret.sptk b0
;;
+ .globl longjmp
+ .type longjmp, @function
+longjmp:
.globl base_longjmp
.type base_longjmp, @function
.regstk 2, 0, 0, 0
diff --git a/lib/loongarch64/setjmp.S b/lib/loongarch64/setjmp.S
index 42f411e0..9f043593 100644
--- a/lib/loongarch64/setjmp.S
+++ b/lib/loongarch64/setjmp.S
@@ -20,7 +20,9 @@
.text
.p2align 3
-
+ .globl setjmp
+ .type setjmp, @function
+setjmp:
.globl base_setjmp
.type base_setjmp, @function
base_setjmp:
@@ -40,6 +42,9 @@ base_setjmp:
move $a0, $zero
jr $ra
+ .globl longjmp
+ .type longjmp, @function
+longjmp:
.globl base_longjmp
.type base_longjmp, @function
base_longjmp:
diff --git a/lib/mips64el/setjmp.S b/lib/mips64el/setjmp.S
index c07e239d..5bbbed5f 100644
--- a/lib/mips64el/setjmp.S
+++ b/lib/mips64el/setjmp.S
@@ -18,6 +18,9 @@ BASIS,
.text
.p2align 3
+ .globl setjmp
+ .type setjmp, @function
+setjmp:
.globl base_setjmp
.type base_setjmp, @function
base_setjmp:
@@ -54,6 +57,9 @@ base_setjmp:
move $v0, $zero
jr $ra
+ .globl longjmp
+ .type longjmp, @function
+longjmp:
.globl base_longjmp
.type base_longjmp, @function
base_longjmp:
diff --git a/lib/riscv64/setjmp.S b/lib/riscv64/setjmp.S
index 2f96e18d..f9552b55 100644
--- a/lib/riscv64/setjmp.S
+++ b/lib/riscv64/setjmp.S
@@ -39,6 +39,9 @@
#define REG_ONE(R, P) sd R, P(a0)
#define FREG_ONE(R, P) fsd R, P(a0)
+ .globl setjmp
+ .type setjmp, @function
+setjmp:
.globl base_setjmp
.type base_setjmp, @function
@@ -56,6 +59,9 @@ base_setjmp:
#define REG_ONE(R, P) ld R, P(a0)
#define FREG_ONE(R, P) fld R, P(a0)
+ .globl longjmp
+ .type lobgjmp, @function
+longjmp:
.globl base_longjmp
.type base_longjmp, @function
diff --git a/lib/x86_64/setjmp.S b/lib/x86_64/setjmp.S
index 719b0219..bf320c83 100644
--- a/lib/x86_64/setjmp.S
+++ b/lib/x86_64/setjmp.S
@@ -1,10 +1,14 @@
.text
+ .globl setjmp
.globl base_setjmp
#ifndef __MINGW32__
+ .type setjmp, @function
.type base_setjmp, @function
#else
.def base_setjmp; .scl 2; .type 32; .endef
+ .def setjmp; .scl 2; .type 32; .endef
#endif
+setjmp:
base_setjmp:
pop %rsi
movq %rbx,0x00(%rdi)
@@ -19,12 +23,16 @@ base_setjmp:
xor %rax,%rax
ret
+ .globl longjmp
.globl base_longjmp
#ifndef __MINGW32__
+ .type longjmp, @function
.type base_longjmp, @function
#else
+ .def longjmp; .scl 2; .type 32; .endef
.def base_longjmp; .scl 2; .type 32; .endef
#endif
+longjmp:
base_longjmp:
movl %esi, %eax
movq 0x00(%rdi), %rbx

View File

@@ -1,5 +1,9 @@
# Locally computed
sha256 a2e5dfd25e7fc0cd2027d75dc2517b4c74d94f801ff4784eca557ac1b9835899 gnu-efi-4.0.0.tar.gz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE
sha256 42d352e9c28dd446fd0209cd6f75588c8e41f0934540bb382bbd61c752360265 licenses/LICENSE.efilib
sha256 40b61e842a4efcbf80f3e53b2f220c044e8cfe46eb4dd6396c83b751240b1c0d gnu-efi-4.0.4.tar.gz
sha256 e2b4e4a370f19dfdb3c84256ccb1d545ee98329faa20adbb5a06797119c3cd55 LICENSE
sha256 01852478a0585ed9955de5d674f417ced8ef8934c300f124ab66a8cf251c46d8 licenses/LICENSE.BSD-3-Clause
sha256 7aa278b6f1a2125d0a0c596fa537caca5a41e7b03f7d2dd0489905f65ffdb984 licenses/LICENSE.edk2
sha256 146958d2c66a609a6ea72f73017ca626023e0cb3ecbfd9f55722f493427253e7 licenses/LICENSE.efilib
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licenses/LICENSE.GPL-2.0-or-later
sha256 4796125347fa98a7f3f056117fff04191712538ab9d9ab797075daad808bb538 licenses/LICENSE.GPL-3.0-or-later
sha256 c0e22e2ea9fe4e12448ab248194a3d53703a13f67a4bb7a412715cb05cd1b274 licenses/LICENSE.LGPL-3.0-or-later

View File

@@ -4,11 +4,22 @@
#
################################################################################
GNU_EFI_VERSION = 4.0.0
GNU_EFI_VERSION = 4.0.4
GNU_EFI_SITE = $(call github,ncroxon,gnu-efi,$(GNU_EFI_VERSION))
GNU_EFI_INSTALL_STAGING = YES
GNU_EFI_LICENSE = BSD-3-Clause and/or GPL-2.0+ (gnuefi), BSD-3-Clause (efilib), BSD-2-Clause-Patent (EDK2 routines)
GNU_EFI_LICENSE_FILES = LICENSE licenses/LICENSE.edk2 licenses/LICENSE.efilib
GNU_EFI_LICENSE = \
BSD-3-Clause and/or GPL-2.0+ (gnuefi), \
BSD-3-Clause (efilib), \
BSD-2-Clause-Patent (EDK2 routines)
GNU_EFI_LICENSE_FILES = \
LICENSE \
licenses/LICENSE.BSD-3-Clause \
licenses/LICENSE.edk2 \
licenses/LICENSE.efilib \
licenses/LICENSE.GPL-2.0-or-later \
licenses/LICENSE.GPL-3.0-or-later \
licenses/LICENSE.LGPL-3.0-or-later
# gnu-efi is a set of library and header files used to build
# standalone EFI applications such as bootloaders. There is no point