diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template index fd437f4a707394..0348a2cfc14a50 100644 --- a/srcpkgs/cross-arm-linux-musleabihf/template +++ b/srcpkgs/cross-arm-linux-musleabihf/template @@ -6,7 +6,7 @@ _linux_version=6.14 _libucontext_version=1.3.3 pkgname=cross-arm-linux-musleabihf version=0.37 -revision=5 +revision=6 build_style=void-cross configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-autolink-libatomic" diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template index e14f0a1b704414..f1fa207e8675f6 100644 --- a/srcpkgs/cross-armv7l-linux-musleabihf/template +++ b/srcpkgs/cross-armv7l-linux-musleabihf/template @@ -6,7 +6,7 @@ _linux_version=6.14 _libucontext_version=1.3.3 pkgname=cross-armv7l-linux-musleabihf version=0.37 -revision=4 +revision=5 build_style=void-cross configure_args="--with-arch=armv7-a --with-fpu=vfpv3 --with-float=hard" hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" diff --git a/srcpkgs/musl1.1/patches/mte-sigsegv.patch b/srcpkgs/musl1.1/patches/mte-sigsegv.patch new file mode 100644 index 00000000000000..eeff9e7302edfa --- /dev/null +++ b/srcpkgs/musl1.1/patches/mte-sigsegv.patch @@ -0,0 +1,26 @@ +From 87b8f14811abe5b707ebe109296bcb0efbebcce2 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 19 Dec 2020 22:12:50 +0000 +Subject: [PATCH] signal.h: add MTE specific SIGSEGV codes from linux v5.10 + +add synchronouse and asynchronous tag check failure codes, see + + linux commit 74f1082487feb90bbf880af14beb8e29c3030c9f + arm64: mte: Add specific SIGSEGV codes +--- + include/signal.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/signal.h b/include/signal.h +index 9ed929e4..f270a594 100644 +--- a/include/signal.h ++++ b/include/signal.h +@@ -75,6 +75,8 @@ typedef struct sigaltstack stack_t; + #define SEGV_ACCERR 2 + #define SEGV_BNDERR 3 + #define SEGV_PKUERR 4 ++#define SEGV_MTEAERR 8 ++#define SEGV_MTESERR 9 + + #define BUS_ADRALN 1 + #define BUS_ADRERR 2 diff --git a/srcpkgs/musl1.1/patches/renameat2.patch b/srcpkgs/musl1.1/patches/renameat2.patch new file mode 100644 index 00000000000000..0174246a29392f --- /dev/null +++ b/srcpkgs/musl1.1/patches/renameat2.patch @@ -0,0 +1,52 @@ +From 05ce67fea99ca09cd4b6625cff7aec9cc222dd5a Mon Sep 17 00:00:00 2001 +From: Tony Ambardar +Date: Mon, 6 May 2024 20:28:32 -0700 +Subject: [PATCH] add renameat2 linux syscall wrapper + +This syscall is available since Linux 3.15 and also implemented in +glibc from version 2.28. It is commonly used in filesystem or security +contexts. + +Constants RENAME_NOREPLACE, RENAME_EXCHANGE, RENAME_WHITEOUT are +guarded by _GNU_SOURCE as with glibc. +--- + include/stdio.h | 7 +++++++ + src/linux/renameat2.c | 11 +++++++++++ + 2 files changed, 18 insertions(+) + create mode 100644 src/linux/renameat2.c + +diff --git a/include/stdio.h b/include/stdio.h +index cb858618..4ea4c170 100644 +--- a/include/stdio.h ++++ b/include/stdio.h +@@ -158,6 +158,13 @@ char *ctermid(char *); + #define L_ctermid 20 + #endif + ++#if defined(_GNU_SOURCE) ++#define RENAME_NOREPLACE (1 << 0) ++#define RENAME_EXCHANGE (1 << 1) ++#define RENAME_WHITEOUT (1 << 2) ++ ++int renameat2(int, const char *, int, const char *, unsigned); ++#endif + + #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +diff --git a/src/linux/renameat2.c b/src/linux/renameat2.c +new file mode 100644 +index 00000000..b8060388 +--- /dev/null ++++ b/src/linux/renameat2.c +@@ -0,0 +1,11 @@ ++#define _GNU_SOURCE ++#include ++#include "syscall.h" ++ ++int renameat2(int oldfd, const char *old, int newfd, const char *new, unsigned flags) ++{ ++#ifdef SYS_renameat ++ if (!flags) return syscall(SYS_renameat, oldfd, old, newfd, new); ++#endif ++ return syscall(SYS_renameat2, oldfd, old, newfd, new, flags); ++} diff --git a/srcpkgs/musl1.1/patches/statx.patch b/srcpkgs/musl1.1/patches/statx.patch index 7af4571b08b124..03f74c37f10ac7 100644 --- a/srcpkgs/musl1.1/patches/statx.patch +++ b/srcpkgs/musl1.1/patches/statx.patch @@ -131,6 +131,77 @@ index 00000000..4616bff4 + return 0; +} +From cbf1c7b605d979bb7fdde8b8e6a66acdba18c6b0 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Wed, 24 Apr 2024 13:26:03 -0400 +Subject: [PATCH] add missing STATX_ATTR_* macros omitted when statx was added + +commit b817541f1cfd38e4b81257b3215e276ea9d0fc61 added statx and the +mask constant macros, but not the stx_attributes[_mask] ones. +--- + include/sys/stat.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 6690192d..57d640d7 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -121,6 +121,16 @@ int lchmod(const char *, mode_t); + #define STATX_BTIME 0x800U + #define STATX_ALL 0xfffU + ++#define STATX_ATTR_COMPRESSED 0x4 ++#define STATX_ATTR_IMMUTABLE 0x10 ++#define STATX_ATTR_APPEND 0x20 ++#define STATX_ATTR_NODUMP 0x40 ++#define STATX_ATTR_ENCRYPTED 0x800 ++#define STATX_ATTR_AUTOMOUNT 0x1000 ++#define STATX_ATTR_MOUNT_ROOT 0x2000 ++#define STATX_ATTR_VERITY 0x100000 ++#define STATX_ATTR_DAX 0x200000 ++ + struct statx_timestamp { + int64_t tv_sec; + uint32_t tv_nsec, __pad; + +From 23ab04a8630225371455d5f4538fd078665bb646 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Fri, 13 Sep 2024 17:21:17 -0400 +Subject: [PATCH] statx: add new struct statx fields and corresponding mask + macros + +--- + include/sys/stat.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 57d640d7..0c10dc21 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -120,6 +120,9 @@ int lchmod(const char *, mode_t); + #define STATX_BASIC_STATS 0x7ffU + #define STATX_BTIME 0x800U + #define STATX_ALL 0xfffU ++#define STATX_MNT_ID 0x1000U ++#define STATX_DIOALIGN 0x2000U ++#define STATX_MNT_ID_UNIQUE 0x4000U + + #define STATX_ATTR_COMPRESSED 0x4 + #define STATX_ATTR_IMMUTABLE 0x10 +@@ -157,7 +160,11 @@ struct statx { + uint32_t stx_rdev_minor; + uint32_t stx_dev_major; + uint32_t stx_dev_minor; +- uint64_t __pad1[14]; ++ uint64_t stx_mnt_id; ++ uint32_t stx_dio_mem_align; ++ uint32_t stx_dio_offet_align; ++ uint64_t stx_subvol; ++ uint64_t __pad1[11]; + }; + + int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict); + From 251cbb6366403a056b39638264932c82d18ec610 Mon Sep 17 00:00:00 2001 From: Gabriel Ravier Date: Fri, 13 Sep 2024 22:00:15 +0200 @@ -199,3 +270,75 @@ index 5f6dde92..4fb96e4b 100644 stx->stx_mask = STATX_BASIC_STATS; return 0; + +From 047a16398b29d2702a41a0d6d15370d54b9d723c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 12 Oct 2024 16:51:51 -0700 +Subject: [PATCH] sys/stat.h: fix typo in statx member name + stx_dio_offset_align + +This was added in 23ab04a8630225371455d5f4538fd078665bb646 +--- + include/sys/stat.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 0c10dc21..c924ce2f 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -162,7 +162,7 @@ struct statx { + uint32_t stx_dev_minor; + uint64_t stx_mnt_id; + uint32_t stx_dio_mem_align; +- uint32_t stx_dio_offet_align; ++ uint32_t stx_dio_offset_align; + uint64_t stx_subvol; + uint64_t __pad1[11]; + }; + +From fcdff46a3203400e08a2264c34b3c7fb62bf6969 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= +Date: Thu, 24 Oct 2024 01:19:30 +0200 +Subject: [PATCH] statx: add Linux 6.11 fields/constants + +As of Linux 6.11, these fields and mask macros have been added to +include/uapi/linux/stat.h. +--- + include/sys/stat.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index c924ce2f..4f7dc2b1 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -123,6 +123,8 @@ int lchmod(const char *, mode_t); + #define STATX_MNT_ID 0x1000U + #define STATX_DIOALIGN 0x2000U + #define STATX_MNT_ID_UNIQUE 0x4000U ++#define STATX_SUBVOL 0x8000U ++#define STATX_WRITE_ATOMIC 0x10000U + + #define STATX_ATTR_COMPRESSED 0x4 + #define STATX_ATTR_IMMUTABLE 0x10 +@@ -133,6 +135,7 @@ int lchmod(const char *, mode_t); + #define STATX_ATTR_MOUNT_ROOT 0x2000 + #define STATX_ATTR_VERITY 0x100000 + #define STATX_ATTR_DAX 0x200000 ++#define STATX_ATTR_WRITE_ATOMIC 0x400000 + + struct statx_timestamp { + int64_t tv_sec; +@@ -164,7 +167,12 @@ struct statx { + uint32_t stx_dio_mem_align; + uint32_t stx_dio_offset_align; + uint64_t stx_subvol; +- uint64_t __pad1[11]; ++ uint32_t stx_atomic_write_unit_min; ++ uint32_t stx_atomic_write_unit_max; ++ uint32_t stx_atomic_write_segments_max; ++ uint32_t __pad1[1]; ++ uint64_t __pad2[9]; ++ + }; + + int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict); diff --git a/srcpkgs/musl1.1/template b/srcpkgs/musl1.1/template index dc50eaaff211cc..4498eca839177f 100644 --- a/srcpkgs/musl1.1/template +++ b/srcpkgs/musl1.1/template @@ -1,7 +1,7 @@ # Template file for 'musl1.1' pkgname=musl1.1 version=1.1.24 -revision=10 +revision=11 archs="*-musl" bootstrap=yes build_style=gnu-configure