From b4fe37fce49494e378fd72fddac38f7e76f93cb5 Mon Sep 17 00:00:00 2001 From: Lindsay Zhou Date: Thu, 8 Aug 2024 09:54:11 +0800 Subject: [PATCH] main/efitools: fix build with gcc 14 --- main/efitools/003-fix-wchar_t.patch | 22 +++++++++------------- main/efitools/APKBUILD | 4 ++-- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/main/efitools/003-fix-wchar_t.patch b/main/efitools/003-fix-wchar_t.patch index 049d52fd7a9..b01a47202fb 100644 --- a/main/efitools/003-fix-wchar_t.patch +++ b/main/efitools/003-fix-wchar_t.patch @@ -1,16 +1,12 @@ -diff --git a/Make.rules b/Make.rules -index 903a5a4..3de81c7 100644 ---- a/Make.rules -+++ b/Make.rules -@@ -15,7 +15,7 @@ $(error unknown architecture $(ARCH)) - endif - INCDIR = -I$(TOPDIR)include/ -I/usr/include/efi -I/usr/include/efi/$(ARCH) -I/usr/include/efi/protocol - CPPFLAGS = -DCONFIG_$(ARCH) --CFLAGS = -O2 -g $(ARCH3264) -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check -+CFLAGS = -O2 -g $(ARCH3264) -fpic -Wall -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check - LDFLAGS = -nostdlib - CRTOBJ = crt0-efi-$(ARCH).o - CRTPATHS = /lib /lib64 /lib/efi /lib64/efi /usr/lib /usr/lib64 /usr/lib/efi /usr/lib64/efi /usr/lib/gnuefi /usr/lib64/gnuefi +efitools expects 16-bit wchat_t, while musl always treats wchar_t as 32-bit. +So we replace the wchar_t type with uint16_t. + +But we keep "-fshort-wchar" cflag in the Make.rules file. +Because efitools uses L-prefixed strings to call methods imported from gnu-efi. +These methods require 16-bit strings. +Reserve "-fshort-wchar" to generate 16-bit L-prefixed strings instead of 32-bit. + +--- diff --git a/cert-to-efi-hash-list.c b/cert-to-efi-hash-list.c index 8a5468a..c6b1e8e 100644 --- a/cert-to-efi-hash-list.c diff --git a/main/efitools/APKBUILD b/main/efitools/APKBUILD index 69eb62c5972..03b766a35b3 100644 --- a/main/efitools/APKBUILD +++ b/main/efitools/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Timo Teräs pkgname=efitools pkgver=1.9.2 -pkgrel=9 +pkgrel=10 pkgdesc="EFI tools" url="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git" # riscv64: fails to build @@ -41,7 +41,7 @@ sha512sums=" 77e0ad7e865814ed388ff6daabe0f4b49ba51672bf2cbb98b7905e209cbd28f9ede2f73213ce45af8a978c1e67dba24ec88a1188661317cc22317b47e575cde8 efitools-1.9.2.tar.gz cd72161a99b26472909a8da834c08a1f88b54d35291a6646562b03a6616fa5fb61e49d4fb3c780861689d23823c101709890dd245dd8aa9f51dca40ac1b2d369 001-datatypes.patch 7afe87e9b44ed3e10200770d3079e4e14b6d39c54c05538031e93d021631427fed47781b016b46f58b8fe6d21f1f3c78667b2b502aa20b99516aa980303aa2ad 002-fix-parallel-make.patch -bd31e51c6d80ab3fdfe0e7abea1cd6f982d63a96a345c0e75f438f6a219bf64b1510f0dabdcc49d24cc788c06ff4ccfbccde0c1aead9c00b65eaf2977e87e742 003-fix-wchar_t.patch +dafe620f7eb3cbfe9538659da0936d704b11e176dbf544d12233c04c4d0edc7e46ebd4388edf886e907da7ba68dbd98828001369149b9fe3dfc7cba3f41ebea6 003-fix-wchar_t.patch e34d4d8f420a29cfc50a9f98dcbb048016f2fc535ddb3e39482e58f44b37db672410ffab24392751818d72b1e914d77644cae8f7a92bb9af7fe2a9f726a230e9 004-typo.patch 630587b00bee4e65e9258f56d0e66677e36063c83659f394c5fcb766683d704f63e8e2acf72f69f6bfef77dd84471c28ab21ef15f10389d8c2151fa2e46229c4 005-riscv64.patch "