From 9050e4cce90cb3609439c2f3bd5055010c4d1ab3 Mon Sep 17 00:00:00 2001 From: Owen Rafferty Date: Thu, 3 Aug 2023 23:16:39 -0500 Subject: [PATCH] efivar: lfs64 fix --- extra/efivar/build | 2 ++ extra/efivar/checksums | 1 + extra/efivar/patches/lfs64.patch | 46 ++++++++++++++++++++++++++++++++ extra/efivar/sources | 1 + 4 files changed, 50 insertions(+) create mode 100644 extra/efivar/patches/lfs64.patch diff --git a/extra/efivar/build b/extra/efivar/build index f35ec3b8..bde6db6f 100755 --- a/extra/efivar/build +++ b/extra/efivar/build @@ -1,5 +1,7 @@ #!/bin/sh -e +patch -p1 < lfs64.patch + # Remove mandoc build dependency mv docs/efisecdb.1.mdoc docs/efisecdb.1 diff --git a/extra/efivar/checksums b/extra/efivar/checksums index 6c41c149..06a65f67 100644 --- a/extra/efivar/checksums +++ b/extra/efivar/checksums @@ -1 +1,2 @@ ce6a320aefd210a5328ec0a3f866b6daf42b868120bae828b31ce27388be3448c0 +51d82a03d5e8d19d51d84e38a6a63172f84869f1b74e861e0b7efe5b567a7078fb diff --git a/extra/efivar/patches/lfs64.patch b/extra/efivar/patches/lfs64.patch new file mode 100644 index 00000000..b84e91aa --- /dev/null +++ b/extra/efivar/patches/lfs64.patch @@ -0,0 +1,46 @@ +Patch-Source: https://github.com/rhboot/efivar/commit/914c686cc54b2405dab08bff77cd60827aab54b1 +-- +From 914c686cc54b2405dab08bff77cd60827aab54b1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 14 Dec 2022 16:55:51 -0800 +Subject: [PATCH] Use off_t instead of off64_t + +Pass _FILE_OFFSET_BITS=64 to ensure 64bit off_t + +This helps building efivar for 32bit arches on systems using musl C +library. It works with glibc since _GNU_SOURCE defines +_LARGEFILE64_SOURCE as well, this feature test macro enables the 64bit +interfaces which were done as intermediate steps when transition to +66-bit off_t was done as part olf LFS64 support. + +Signed-off-by: Khem Raj +--- + src/error.c | 2 +- + src/include/defaults.mk | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/error.c b/src/error.c +index fcbba0d6..9530e22c 100644 +--- a/src/error.c ++++ b/src/error.c +@@ -191,7 +191,7 @@ dbglog_write(void *cookie, const char *buf, size_t size) + } + + static int +-dbglog_seek(void *cookie UNUSED, off64_t *offset, int whence) ++dbglog_seek(void *cookie UNUSED, off_t *offset, int whence) + { + FILE *log = efi_errlog ? efi_errlog : stderr; + int rc; +diff --git a/src/include/defaults.mk b/src/include/defaults.mk +index 42bd3d6e..bb9c997f 100644 +--- a/src/include/defaults.mk ++++ b/src/include/defaults.mk +@@ -34,6 +34,7 @@ CPPFLAGS ?= + override _CPPFLAGS := $(CPPFLAGS) + override CPPFLAGS = $(_CPPFLAGS) -DLIBEFIVAR_VERSION=$(VERSION) \ + -D_GNU_SOURCE \ ++ -D_FILE_OFFSET_BITS=64 \ + -I$(TOPDIR)/src/include/ + CFLAGS ?= $(OPTIMIZE) $(DEBUGINFO) $(WARNINGS) $(ERRORS) + CFLAGS_GCC ?= -specs=$(TOPDIR)/src/include/gcc.specs \ diff --git a/extra/efivar/sources b/extra/efivar/sources index 139dfeb6..4fadcca3 100644 --- a/extra/efivar/sources +++ b/extra/efivar/sources @@ -1 +1,2 @@ https://github.com/rhboot/efivar/archive/bc65d63ebf8fe6ac8a099ff15ca200986dba1565.tar.gz +patches/lfs64.patch