diff --git a/musl/patches/elf.h-add-typedefs.patch b/musl/patches/elf.h-add-typedefs.patch new file mode 100644 index 0000000..b69017f --- /dev/null +++ b/musl/patches/elf.h-add-typedefs.patch @@ -0,0 +1,30 @@ +https://gitlab.alpinelinux.org/alpine/aports/-/raw/master/main/musl/0001-elf.h-add-typedefs-for-Elf-_Relr.patch + +From 981144ebc9ff30b085af107f1337543de7b0bf94 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Mon, 6 Nov 2023 12:29:16 +0100 +Subject: [PATCH] elf.h: add typedefs for Elf*_Relr + +Add typedefs for Elf32_Relr and Elf64_relr as a follow-up to commit +d32dadd60efb (ldso: support DT_RELR relative relocation format) +--- + include/elf.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/elf.h b/include/elf.h +index 23f2c4bc..aa186d9d 100644 +--- a/include/elf.h ++++ b/include/elf.h +@@ -32,6 +32,9 @@ typedef uint16_t Elf64_Section; + typedef Elf32_Half Elf32_Versym; + typedef Elf64_Half Elf64_Versym; + ++typedef Elf32_Word Elf32_Relr; ++typedef Elf64_Xword Elf64_Relr; ++ + #define EI_NIDENT (16) + + typedef struct { +-- +2.42.1 + diff --git a/musl/patches/revert-faccessat2.patch b/musl/patches/revert-faccessat2.patch new file mode 100644 index 0000000..c681683 --- /dev/null +++ b/musl/patches/revert-faccessat2.patch @@ -0,0 +1,40 @@ +From 6c7fb5f32ad0fb2558d50cdaa39ff7fb0e95c58b Mon Sep 17 00:00:00 2001 +From: Ariadne Conill +Date: Sat, 31 Oct 2020 06:26:46 -0600 +Subject: [PATCH] Revert "use new SYS_faccessat2 syscall to implement faccessat + with flags" + +This reverts commit 55fb9a177316aa46c639d93dd0323d9a9a8c160c. + +Causes too many problems on Alpine right now due to seccomp. +--- + src/unistd/faccessat.c | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) + +diff --git a/src/unistd/faccessat.c b/src/unistd/faccessat.c +index 557503eb..76bbd4c7 100644 +--- a/src/unistd/faccessat.c ++++ b/src/unistd/faccessat.c +@@ -25,17 +25,12 @@ static int checker(void *p) + + int faccessat(int fd, const char *filename, int amode, int flag) + { +- if (flag) { +- int ret = __syscall(SYS_faccessat2, fd, filename, amode, flag); +- if (ret != -ENOSYS) return __syscall_ret(ret); +- } ++ if (!flag || (flag==AT_EACCESS && getuid()==geteuid() && getgid()==getegid())) ++ return syscall(SYS_faccessat, fd, filename, amode, flag); + +- if (flag & ~AT_EACCESS) ++ if (flag != AT_EACCESS) + return __syscall_ret(-EINVAL); + +- if (!flag || (getuid()==geteuid() && getgid()==getegid())) +- return syscall(SYS_faccessat, fd, filename, amode); +- + char stack[1024]; + sigset_t set; + pid_t pid; +-- +2.29.2 diff --git a/musl/pkg.yaml b/musl/pkg.yaml index c8da4d6..227b0b0 100644 --- a/musl/pkg.yaml +++ b/musl/pkg.yaml @@ -16,7 +16,8 @@ steps: - | tar -xzf musl.tar.gz --strip-components=1 - patch -p1 < /pkg/patches/handle-aux-at-base.patch + patch -p1 < /pkg/patches/revert-faccessat2.patch + patch -p1 < /pkg/patches/elf.h-add-typedefs.patch mkdir build cd build