diff options
Diffstat (limited to 'meta/recipes-bsp/gnu-efi')
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch | 34 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch | 32 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/lib-Makefile-fix-parallel-issue.patch | 38 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/no-werror.patch | 19 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch | 17 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi_3.0.17.bb (renamed from meta/recipes-bsp/gnu-efi/gnu-efi_3.0.14.bb) | 13 |
6 files changed, 103 insertions, 50 deletions
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch new file mode 100644 index 0000000000..3475606264 --- /dev/null +++ b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch @@ -0,0 +1,34 @@ +From 1de509497826faa0ad84b82f5e2c3d21ee613459 Mon Sep 17 00:00:00 2001 +From: Moody Liu <mooodyhunter@outlook.com> +Date: Sat, 13 May 2023 17:39:16 +0100 +Subject: [PATCH] riscv64: adjust type definitions + +CHAR8 needs to be defined while BOOLEAN should be removed +here to prevent typedef conflicts + +Upstream-Status: Backport [https://sourceforge.net/p/gnu-efi/code/ci/1de509497826faa0ad84b82f5e2c3d21ee613459/] +Signed-off-by: Moody Liu <mooodyhunter@outlook.com> +--- + inc/riscv64/efibind.h | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/inc/riscv64/efibind.h b/inc/riscv64/efibind.h +index 4fdf81d..d8b4f39 100644 +--- a/inc/riscv64/efibind.h ++++ b/inc/riscv64/efibind.h +@@ -32,11 +32,9 @@ typedef uint16_t UINT16; + typedef int16_t INT16; + typedef uint8_t UINT8; + typedef int8_t INT8; ++typedef char CHAR8; + typedef wchar_t CHAR16; + #define WCHAR CHAR16 +-#ifndef BOOLEAN +-typedef uint8_t BOOLEAN; +-#endif + #undef VOID + typedef void VOID; + typedef int64_t INTN; +-- +2.41.0 + diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch new file mode 100644 index 0000000000..5b3c152c5e --- /dev/null +++ b/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch @@ -0,0 +1,32 @@ +From 708f66acfec9a86f237726d45095cbd380fd83ca Mon Sep 17 00:00:00 2001 +From: Callum Farmer <gmbr3@opensuse.org> +Date: Wed, 21 Jun 2023 11:32:28 +0100 +Subject: [PATCH] riscv64: ignore unknown relocs + +Sometimes ld emits relocs such as R_RISCV_64 for unwind symbols +these don't need to be handled yet so just can be skipped otherwise +the binary will never load + +Upstream-Status: Backport [https://sourceforge.net/p/gnu-efi/code/ci/708f66acfec9a86f237726d45095cbd380fd83ca/] +Signed-off-by: Callum Farmer <gmbr3@opensuse.org> +--- + gnuefi/reloc_riscv64.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/gnuefi/reloc_riscv64.c b/gnuefi/reloc_riscv64.c +index 0b02d83..e429602 100644 +--- a/gnuefi/reloc_riscv64.c ++++ b/gnuefi/reloc_riscv64.c +@@ -81,8 +81,7 @@ EFI_STATUS EFIAPI _relocate(long ldbase, Elf_Dyn *dyn) + *addr = ldbase + rel->r_addend; + break; + default: +- /* Panic */ +- while (1) ; ++ break; + } + rel = (Elf_Rela *)((char *)rel + relent); + relsz -= relent; +-- +2.41.0 + diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/lib-Makefile-fix-parallel-issue.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/lib-Makefile-fix-parallel-issue.patch deleted file mode 100644 index dc00b8fa4d..0000000000 --- a/meta/recipes-bsp/gnu-efi/gnu-efi/lib-Makefile-fix-parallel-issue.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 3ec8c2a70304eabd5760937a4ec3fbc4068a77ed Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Thu, 23 Apr 2015 01:49:31 -0700 -Subject: [PATCH 2/3] lib/Makefile: fix parallel issue - -Fixed: -Assembler messages: -Fatal error: can't create runtime/rtlock.o: No such file or directory -Assembler messages: -Fatal error: can't create runtime/rtdata.o: No such file or directory -Assembler messages: -Fatal error: can't create runtime/vm.o: No such file or directory -Assembler messages: -Fatal error: can't create runtime/efirtlib.o: No such file or directory - -Upstream-Status: Pending - -Signed-off-by: Robert Yang <liezhi.yang@windriver.com> ---- - lib/Makefile | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/Makefile b/lib/Makefile -index 048751a..ed39bbb 100644 ---- a/lib/Makefile -+++ b/lib/Makefile -@@ -74,6 +74,8 @@ all: libsubdirs libefi.a - libsubdirs: - for sdir in $(SUBDIRS); do mkdir -p $$sdir; done - -+$(OBJS): libsubdirs -+ - libefi.a: $(OBJS) - $(AR) $(ARFLAGS) $@ $(OBJS) - --- -2.7.4 - diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/no-werror.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/no-werror.patch new file mode 100644 index 0000000000..db2bcf70b7 --- /dev/null +++ b/meta/recipes-bsp/gnu-efi/gnu-efi/no-werror.patch @@ -0,0 +1,19 @@ +Do not treat warnings as errors + +There are additional warnings found with musl which are +treated as errors and fails the build, we have more combinations +then upstream supports to handle + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Inappropriate [OE specific] +--- a/Make.defaults ++++ b/Make.defaults +@@ -187,7 +187,7 @@ CFLAGS += $(ARCH3264) -g -O2 -Wall -Wex + -funsigned-char -fshort-wchar -fno-strict-aliasing \ + -ffreestanding -fno-stack-protector + else +-CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign -Werror \ ++CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign \ + -funsigned-char -fshort-wchar -fno-strict-aliasing \ + -ffreestanding -fno-stack-protector -fno-stack-check \ + -fno-stack-check \ diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch index 8a0138bbe5..63d9b6fc31 100644 --- a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch +++ b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch @@ -1,7 +1,7 @@ -From 48b2cdbcd761105e8ebad412fcbf23db1ac4ef7c Mon Sep 17 00:00:00 2001 +From f56ddb00a656af2e84f839738fad19909ac65047 Mon Sep 17 00:00:00 2001 From: Saul Wold <sgw@linux.intel.com> Date: Sun, 9 Mar 2014 15:22:15 +0200 -Subject: [PATCH 1/3] Fix parallel make failure for archives +Subject: [PATCH] Fix parallel make failure for archives Upstream-Status: Pending @@ -20,12 +20,16 @@ Signed-off-by: California Sullivan <california.l.sullivan@intel.com> [Rebased for 3.0.8] Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + lib/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + diff --git a/lib/Makefile b/lib/Makefile -index 0e6410d..048751a 100644 +index 1fc6a47..54b0ca7 100644 --- a/lib/Makefile +++ b/lib/Makefile -@@ -75,7 +75,7 @@ libsubdirs: - for sdir in $(SUBDIRS); do mkdir -p $$sdir; done +@@ -77,7 +77,7 @@ libsubdirs: + $(OBJS): libsubdirs libefi.a: $(OBJS) - $(AR) $(ARFLAGS) $@ $^ @@ -33,6 +37,3 @@ index 0e6410d..048751a 100644 clean: rm -f libefi.a *~ $(OBJS) */*.o --- -2.7.4 - diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.14.bb b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.17.bb index 36d10354ed..43b7cc7529 100644 --- a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.14.bb +++ b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.17.bb @@ -14,11 +14,12 @@ LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/files/${BP}.tar.bz2 \ file://parallel-make-archives.patch \ - file://lib-Makefile-fix-parallel-issue.patch \ file://gnu-efi-3.0.9-fix-clang-build.patch \ + file://0001-riscv64-adjust-type-definitions.patch \ + file://0001-riscv64-ignore-unknown-relocs.patch \ + file://no-werror.patch \ " - -SRC_URI[sha256sum] = "b73b643a0d5697d1f396d7431448e886dd805668789578e3e1a28277c9528435" +SRC_URI[sha256sum] = "7807e903349343a7a142ebb934703a2872235e89688cf586c032b0a1087bcaf4" COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*|riscv64.*)-linux" COMPATIBLE_HOST:armv4 = 'null' @@ -35,6 +36,10 @@ def gnu_efi_arch(d): return "ia32" return tarch +do_compile:prepend() { + unset LDFLAGS +} + EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \ 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \ " @@ -47,7 +52,7 @@ do_install() { oe_runmake install INSTALLROOT="${D}" } -FILES:${PN} += "${libdir}/*.lds" +FILES:${PN} += "${libdir}/*.lds ${libdir}/gnuefi/apps" # 64-bit binaries are expected for EFI when targeting X32 INSANE_SKIP:${PN}-dev:append:linux-gnux32 = " arch" |