Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] musl
@ 2022-12-26  6:05 CameronNemo
  2022-12-26 15:45 ` musl JamiKettunen
                   ` (20 more replies)
  0 siblings, 21 replies; 24+ messages in thread
From: CameronNemo @ 2022-12-26  6:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1299 bytes --]

There is a new pull request by CameronNemo against master on the void-packages repository

https://github.com/CameronNemo/void-packages musl
https://github.com/void-linux/void-packages/pull/41295

musl
- musl: update to 1.2.3
- base-chroot: bump musl-devel version
- base-devel: bump musl-devel version

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **NO**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/41295.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-musl-41295.patch --]
[-- Type: text/x-diff, Size: 52331 bytes --]

From 3471cdc5407933160e29cd2c4e770120dcddeb7a Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cam@nohom.org>
Date: Sun, 25 Dec 2022 21:36:42 -0800
Subject: [PATCH 1/3] musl: update to 1.2.3

---
 common/shlibs                                 |   2 +-
 ...ist_unlink_in_pthread_exit_after_all.patch |  56 -----
 ...hreads_minus_1_as_relaxed_atomic_for.patch |  78 -------
 ...own_size_of_some_libc_struct_members.patch |  30 ---
 ...pping_for_processes_that_return_to_s.patch | 102 --------
 ...098a885feae3ae8c32b407350d8ca85dd178.patch | 113 ---------
 srcpkgs/musl/patches/CVE-2020-28928.patch     |  64 -----
 srcpkgs/musl/patches/aarch64-fregs.patch      |  37 ---
 ...d-support-for-SIGEV_THREAD_ID-timers.patch |  74 ------
 srcpkgs/musl/patches/epoll_cp.patch           |  28 ---
 .../musl/patches/fix-pi-mutex-cond-1.patch    |  56 -----
 .../musl/patches/fix-pi-mutex-cond-2.patch    |  48 ----
 .../musl/patches/fix-pi-mutex-cond-3.patch    |  28 ---
 srcpkgs/musl/patches/gettid.patch             |  49 ----
 ...tly_instead_of_using_procfs_readlink.patch | 219 ------------------
 srcpkgs/musl/patches/isascii.patch            |  21 --
 srcpkgs/musl/patches/ppc-pt_regs.patch        |  38 ---
 srcpkgs/musl/patches/ppc64-fpregset_t.patch   |  31 ---
 srcpkgs/musl/patches/ppcle.patch              |  24 --
 srcpkgs/musl/patches/reallocarray.patch       |  42 ----
 ...in_readlink_syscall_with_zero_buffer.patch |  59 -----
 srcpkgs/musl/template                         |   7 +-
 22 files changed, 4 insertions(+), 1202 deletions(-)
 delete mode 100644 srcpkgs/musl/patches/0001_reorder_thread_list_unlink_in_pthread_exit_after_all.patch
 delete mode 100644 srcpkgs/musl/patches/0002_don_t_use_libc_threads_minus_1_as_relaxed_atomic_for.patch
 delete mode 100644 srcpkgs/musl/patches/0003_cut_down_size_of_some_libc_struct_members.patch
 delete mode 100644 srcpkgs/musl/patches/0004_restore_lock_skipping_for_processes_that_return_to_s.patch
 delete mode 100644 srcpkgs/musl/patches/99d5098a885feae3ae8c32b407350d8ca85dd178.patch
 delete mode 100644 srcpkgs/musl/patches/CVE-2020-28928.patch
 delete mode 100644 srcpkgs/musl/patches/aarch64-fregs.patch
 delete mode 100644 srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
 delete mode 100644 srcpkgs/musl/patches/epoll_cp.patch
 delete mode 100644 srcpkgs/musl/patches/fix-pi-mutex-cond-1.patch
 delete mode 100644 srcpkgs/musl/patches/fix-pi-mutex-cond-2.patch
 delete mode 100644 srcpkgs/musl/patches/fix-pi-mutex-cond-3.patch
 delete mode 100644 srcpkgs/musl/patches/gettid.patch
 delete mode 100644 srcpkgs/musl/patches/implement_realpath_directly_instead_of_using_procfs_readlink.patch
 delete mode 100644 srcpkgs/musl/patches/isascii.patch
 delete mode 100644 srcpkgs/musl/patches/ppc-pt_regs.patch
 delete mode 100644 srcpkgs/musl/patches/ppc64-fpregset_t.patch
 delete mode 100644 srcpkgs/musl/patches/ppcle.patch
 delete mode 100644 srcpkgs/musl/patches/reallocarray.patch
 delete mode 100644 srcpkgs/musl/patches/work_around_linux_bug_in_readlink_syscall_with_zero_buffer.patch

diff --git a/common/shlibs b/common/shlibs
index 11ef64e0cc7f..c2d15801cc2f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -16,7 +16,7 @@
 # PLEASE NOTE: when multiple packages provide the same SONAME, the first
 # one (order top->bottom) is preferred over the next ones.
 #
-libc.so musl-1.1.24_7
+libc.so musl-1.2.3_1
 libc.so.6 glibc-2.36_1
 libm.so.6 glibc-2.36_1
 libpthread.so.0 glibc-2.36_1
diff --git a/srcpkgs/musl/patches/0001_reorder_thread_list_unlink_in_pthread_exit_after_all.patch b/srcpkgs/musl/patches/0001_reorder_thread_list_unlink_in_pthread_exit_after_all.patch
deleted file mode 100644
index 7c1a55bc85e3..000000000000
--- a/srcpkgs/musl/patches/0001_reorder_thread_list_unlink_in_pthread_exit_after_all.patch
+++ /dev/null
@@ -1,56 +0,0 @@
->From 4d5aa20a94a2d3fae3e69289dc23ecafbd0c16c4 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Fri, 22 May 2020 17:35:14 -0400
-Subject: [PATCH 1/4] reorder thread list unlink in pthread_exit after all
- locks
-
-since the backend for LOCK() skips locking if single-threaded, it's
-unsafe to make the process appear single-threaded before the last use
-of lock.
-
-this fixes potential unsynchronized access to a linked list via
-__dl_thread_cleanup.
----
- src/thread/pthread_create.c | 19 +++++++++++--------
- 1 file changed, 11 insertions(+), 8 deletions(-)
-
-diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
-index 5f491092..6a3b0c21 100644
---- a/src/thread/pthread_create.c
-+++ b/src/thread/pthread_create.c
-@@ -90,14 +90,7 @@ _Noreturn void __pthread_exit(void *result)
- 		exit(0);
- 	}
- 
--	/* At this point we are committed to thread termination. Unlink
--	 * the thread from the list. This change will not be visible
--	 * until the lock is released, which only happens after SYS_exit
--	 * has been called, via the exit futex address pointing at the lock. */
--	libc.threads_minus_1--;
--	self->next->prev = self->prev;
--	self->prev->next = self->next;
--	self->prev = self->next = self;
-+	/* At this point we are committed to thread termination. */
- 
- 	/* Process robust list in userspace to handle non-pshared mutexes
- 	 * and the detached thread case where the robust list head will
-@@ -121,6 +114,16 @@ _Noreturn void __pthread_exit(void *result)
- 	__do_orphaned_stdio_locks();
- 	__dl_thread_cleanup();
- 
-+	/* Last, unlink thread from the list. This change will not be visible
-+	 * until the lock is released, which only happens after SYS_exit
-+	 * has been called, via the exit futex address pointing at the lock.
-+	 * This needs to happen after any possible calls to LOCK() that might
-+	 * skip locking if libc.threads_minus_1 is zero. */
-+	libc.threads_minus_1--;
-+	self->next->prev = self->prev;
-+	self->prev->next = self->next;
-+	self->prev = self->next = self;
-+
- 	/* This atomic potentially competes with a concurrent pthread_detach
- 	 * call; the loser is responsible for freeing thread resources. */
- 	int state = a_cas(&self->detach_state, DT_JOINABLE, DT_EXITING);
--- 
-2.21.0
-
diff --git a/srcpkgs/musl/patches/0002_don_t_use_libc_threads_minus_1_as_relaxed_atomic_for.patch b/srcpkgs/musl/patches/0002_don_t_use_libc_threads_minus_1_as_relaxed_atomic_for.patch
deleted file mode 100644
index e060762e99a6..000000000000
--- a/srcpkgs/musl/patches/0002_don_t_use_libc_threads_minus_1_as_relaxed_atomic_for.patch
+++ /dev/null
@@ -1,78 +0,0 @@
->From e01b5939b38aea5ecbe41670643199825874b26c Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Thu, 21 May 2020 23:32:45 -0400
-Subject: [PATCH 2/4] don't use libc.threads_minus_1 as relaxed atomic for
- skipping locks
-
-after all but the last thread exits, the next thread to observe
-libc.threads_minus_1==0 and conclude that it can skip locking fails to
-synchronize with any changes to memory that were made by the
-last-exiting thread. this can produce data races.
-
-on some archs, at least x86, memory synchronization is unlikely to be
-a problem; however, with the inline locks in malloc, skipping the lock
-also eliminated the compiler barrier, and caused code that needed to
-re-check chunk in-use bits after obtaining the lock to reuse a stale
-value, possibly from before the process became single-threaded. this
-in turn produced corruption of the heap state.
-
-some uses of libc.threads_minus_1 remain, especially for allocation of
-new TLS in the dynamic linker; otherwise, it could be removed
-entirely. it's made non-volatile to reflect that the remaining
-accesses are only made under lock on the thread list.
-
-instead of libc.threads_minus_1, libc.threaded is now used for
-skipping locks. the difference is that libc.threaded is permanently
-true once an additional thread has been created. this will produce
-some performance regression in processes that are mostly
-single-threaded but occasionally creating threads. in the future it
-may be possible to bring back the full lock-skipping, but more care
-needs to be taken to produce a safe design.
----
- src/internal/libc.h | 2 +-
- src/malloc/malloc.c | 2 +-
- src/thread/__lock.c | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/internal/libc.h b/src/internal/libc.h
-index ac97dc7e..c0614852 100644
---- a/src/internal/libc.h
-+++ b/src/internal/libc.h
-@@ -21,7 +21,7 @@ struct __libc {
- 	int can_do_threads;
- 	int threaded;
- 	int secure;
--	volatile int threads_minus_1;
-+	int threads_minus_1;
- 	size_t *auxv;
- 	struct tls_module *tls_head;
- 	size_t tls_size, tls_align, tls_cnt;
-diff --git a/src/malloc/malloc.c b/src/malloc/malloc.c
-index 96982596..2553a62e 100644
---- a/src/malloc/malloc.c
-+++ b/src/malloc/malloc.c
-@@ -26,7 +26,7 @@ int __malloc_replaced;
- 
- static inline void lock(volatile int *lk)
- {
--	if (libc.threads_minus_1)
-+	if (libc.threaded)
- 		while(a_swap(lk, 1)) __wait(lk, lk+1, 1, 1);
- }
- 
-diff --git a/src/thread/__lock.c b/src/thread/__lock.c
-index 45557c88..5b9b144e 100644
---- a/src/thread/__lock.c
-+++ b/src/thread/__lock.c
-@@ -18,7 +18,7 @@
- 
- void __lock(volatile int *l)
- {
--	if (!libc.threads_minus_1) return;
-+	if (!libc.threaded) return;
- 	/* fast path: INT_MIN for the lock, +1 for the congestion */
- 	int current = a_cas(l, 0, INT_MIN + 1);
- 	if (!current) return;
--- 
-2.21.0
-
diff --git a/srcpkgs/musl/patches/0003_cut_down_size_of_some_libc_struct_members.patch b/srcpkgs/musl/patches/0003_cut_down_size_of_some_libc_struct_members.patch
deleted file mode 100644
index 540c5d950195..000000000000
--- a/srcpkgs/musl/patches/0003_cut_down_size_of_some_libc_struct_members.patch
+++ /dev/null
@@ -1,30 +0,0 @@
->From f12888e9eb9eed60cc266b899dcafecb4752964a Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Fri, 22 May 2020 17:25:38 -0400
-Subject: [PATCH 3/4] cut down size of some libc struct members
-
-these are all flags that can be single-byte values.
----
- src/internal/libc.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/internal/libc.h b/src/internal/libc.h
-index c0614852..d47f58e0 100644
---- a/src/internal/libc.h
-+++ b/src/internal/libc.h
-@@ -18,9 +18,9 @@ struct tls_module {
- };
- 
- struct __libc {
--	int can_do_threads;
--	int threaded;
--	int secure;
-+	char can_do_threads;
-+	char threaded;
-+	char secure;
- 	int threads_minus_1;
- 	size_t *auxv;
- 	struct tls_module *tls_head;
--- 
-2.21.0
-
diff --git a/srcpkgs/musl/patches/0004_restore_lock_skipping_for_processes_that_return_to_s.patch b/srcpkgs/musl/patches/0004_restore_lock_skipping_for_processes_that_return_to_s.patch
deleted file mode 100644
index e703c1f403c5..000000000000
--- a/srcpkgs/musl/patches/0004_restore_lock_skipping_for_processes_that_return_to_s.patch
+++ /dev/null
@@ -1,102 +0,0 @@
->From 8d81ba8c0bc6fe31136cb15c9c82ef4c24965040 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Fri, 22 May 2020 17:45:47 -0400
-Subject: [PATCH 4/4] restore lock-skipping for processes that return to
- single-threaded state
-
-the design used here relies on the barrier provided by the first lock
-operation after the process returns to single-threaded state to
-synchronize with actions by the last thread that exited. by storing
-the intent to change modes in the same object used to detect whether
-locking is needed, it's possible to avoid an extra (possibly costly)
-memory load after the lock is taken.
----
- src/internal/libc.h         | 1 +
- src/malloc/malloc.c         | 5 ++++-
- src/thread/__lock.c         | 4 +++-
- src/thread/pthread_create.c | 8 ++++----
- 4 files changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/src/internal/libc.h b/src/internal/libc.h
-index d47f58e0..619bba86 100644
---- a/src/internal/libc.h
-+++ b/src/internal/libc.h
-@@ -21,6 +21,7 @@ struct __libc {
- 	char can_do_threads;
- 	char threaded;
- 	char secure;
-+	volatile signed char need_locks;
- 	int threads_minus_1;
- 	size_t *auxv;
- 	struct tls_module *tls_head;
-diff --git a/src/malloc/malloc.c b/src/malloc/malloc.c
-index 2553a62e..a803d4c9 100644
---- a/src/malloc/malloc.c
-+++ b/src/malloc/malloc.c
-@@ -26,8 +26,11 @@ int __malloc_replaced;
- 
- static inline void lock(volatile int *lk)
- {
--	if (libc.threaded)
-+	int need_locks = libc.need_locks;
-+	if (need_locks) {
- 		while(a_swap(lk, 1)) __wait(lk, lk+1, 1, 1);
-+		if (need_locks < 0) libc.need_locks = 0;
-+	}
- }
- 
- static inline void unlock(volatile int *lk)
-diff --git a/src/thread/__lock.c b/src/thread/__lock.c
-index 5b9b144e..60eece49 100644
---- a/src/thread/__lock.c
-+++ b/src/thread/__lock.c
-@@ -18,9 +18,11 @@
- 
- void __lock(volatile int *l)
- {
--	if (!libc.threaded) return;
-+	int need_locks = libc.need_locks;
-+	if (!need_locks) return;
- 	/* fast path: INT_MIN for the lock, +1 for the congestion */
- 	int current = a_cas(l, 0, INT_MIN + 1);
-+	if (need_locks < 0) libc.need_locks = 0;
- 	if (!current) return;
- 	/* A first spin loop, for medium congestion. */
- 	for (unsigned i = 0; i < 10; ++i) {
-diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
-index 6a3b0c21..6bdfb44f 100644
---- a/src/thread/pthread_create.c
-+++ b/src/thread/pthread_create.c
-@@ -118,8 +118,8 @@ _Noreturn void __pthread_exit(void *result)
- 	 * until the lock is released, which only happens after SYS_exit
- 	 * has been called, via the exit futex address pointing at the lock.
- 	 * This needs to happen after any possible calls to LOCK() that might
--	 * skip locking if libc.threads_minus_1 is zero. */
--	libc.threads_minus_1--;
-+	 * skip locking if process appears single-threaded. */
-+	if (!--libc.threads_minus_1) libc.need_locks = -1;
- 	self->next->prev = self->prev;
- 	self->prev->next = self->next;
- 	self->prev = self->next = self;
-@@ -339,7 +339,7 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
- 		~(1UL<<((SIGCANCEL-1)%(8*sizeof(long))));
- 
- 	__tl_lock();
--	libc.threads_minus_1++;
-+	if (!libc.threads_minus_1++) libc.need_locks = 1;
- 	ret = __clone((c11 ? start_c11 : start), stack, flags, args, &new->tid, TP_ADJ(new), &__thread_list_lock);
- 
- 	/* All clone failures translate to EAGAIN. If explicit scheduling
-@@ -363,7 +363,7 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
- 		new->next->prev = new;
- 		new->prev->next = new;
- 	} else {
--		libc.threads_minus_1--;
-+		if (!--libc.threads_minus_1) libc.need_locks = 0;
- 	}
- 	__tl_unlock();
- 	__restore_sigs(&set);
--- 
-2.21.0
-
-
diff --git a/srcpkgs/musl/patches/99d5098a885feae3ae8c32b407350d8ca85dd178.patch b/srcpkgs/musl/patches/99d5098a885feae3ae8c32b407350d8ca85dd178.patch
deleted file mode 100644
index 4e03ad1607ce..000000000000
--- a/srcpkgs/musl/patches/99d5098a885feae3ae8c32b407350d8ca85dd178.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 99d5098a885feae3ae8c32b407350d8ca85dd178 Mon Sep 17 00:00:00 2001
-From: Julien Ramseier <j.ramseier@gmail.com>
-Date: Sun, 18 Oct 2020 12:15:06 -0400
-Subject: update crypt_blowfish to support $2b$ prefix
-
-Merge changes from Solar Designer's crypt_blowfish v1.3. This makes
-crypt_blowfish fully compatible with OpenBSD's bcrypt by adding
-support for the $2b$ prefix (which behaves the same as
-crypt_blowfish's $2y$).
----
- src/crypt/crypt_blowfish.c | 38 +++++++++++++++++++++++---------------
- 1 file changed, 23 insertions(+), 15 deletions(-)
-
-(limited to 'src/crypt/crypt_blowfish.c')
-
-diff --git a/src/crypt/crypt_blowfish.c b/src/crypt/crypt_blowfish.c
-index d3f79851..d722607b 100644
---- a/src/crypt/crypt_blowfish.c
-+++ b/src/crypt/crypt_blowfish.c
-@@ -15,7 +15,7 @@
-  * No copyright is claimed, and the software is hereby placed in the public
-  * domain.  In case this attempt to disclaim copyright and place the software
-  * in the public domain is deemed null and void, then the software is
-- * Copyright (c) 1998-2012 Solar Designer and it is hereby released to the
-+ * Copyright (c) 1998-2014 Solar Designer and it is hereby released to the
-  * general public under the following terms:
-  *
-  * Redistribution and use in source and binary forms, with or without
-@@ -31,12 +31,12 @@
-  * you place this code and any modifications you make under a license
-  * of your choice.
-  *
-- * This implementation is mostly compatible with OpenBSD's bcrypt.c (prefix
-- * "$2a$") by Niels Provos <provos at citi.umich.edu>, and uses some of his
-- * ideas.  The password hashing algorithm was designed by David Mazieres
-- * <dm at lcs.mit.edu>.  For more information on the level of compatibility,
-- * please refer to the comments in BF_set_key() below and to the included
-- * crypt(3) man page.
-+ * This implementation is fully compatible with OpenBSD's bcrypt.c for prefix
-+ * "$2b$", originally by Niels Provos <provos at citi.umich.edu>, and it uses
-+ * some of his ideas.  The password hashing algorithm was designed by David
-+ * Mazieres <dm at lcs.mit.edu>.  For information on the level of
-+ * compatibility for bcrypt hash prefixes other than "$2b$", please refer to
-+ * the comments in BF_set_key() below and to the included crypt(3) man page.
-  *
-  * There's a paper on the algorithm that explains its design decisions:
-  *
-@@ -533,6 +533,7 @@ static void BF_set_key(const char *key, BF_key expanded, BF_key initial,
-  * Valid combinations of settings are:
-  *
-  * Prefix "$2a$": bug = 0, safety = 0x10000
-+ * Prefix "$2b$": bug = 0, safety = 0
-  * Prefix "$2x$": bug = 1, safety = 0
-  * Prefix "$2y$": bug = 0, safety = 0
-  */
-@@ -596,12 +597,14 @@ static void BF_set_key(const char *key, BF_key expanded, BF_key initial,
- 	initial[0] ^= sign;
- }
- 
-+static const unsigned char flags_by_subtype[26] = {
-+	2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0
-+};
-+
- static char *BF_crypt(const char *key, const char *setting,
- 	char *output, BF_word min)
- {
--	static const unsigned char flags_by_subtype[26] =
--		{2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
--		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0};
- 	struct {
- 		BF_ctx ctx;
- 		BF_key expanded_key;
-@@ -746,9 +749,11 @@ char *__crypt_blowfish(const char *key, const char *setting, char *output)
- {
- 	const char *test_key = "8b \xd0\xc1\xd2\xcf\xcc\xd8";
- 	const char *test_setting = "$2a$00$abcdefghijklmnopqrstuu";
--	static const char test_hash[2][34] =
--		{"VUrPmXD6q/nVSSp7pNDhCR9071IfIRe\0\x55", /* $2x$ */
--		"i1D709vfamulimlGcq0qq3UvuUasvEa\0\x55"}; /* $2a$, $2y$ */
-+	static const char test_hashes[2][34] = {
-+		"i1D709vfamulimlGcq0qq3UvuUasvEa\0\x55", /* 'a', 'b', 'y' */
-+		"VUrPmXD6q/nVSSp7pNDhCR9071IfIRe\0\x55", /* 'x' */
-+	};
-+	const char *test_hash = test_hashes[0];
- 	char *retval;
- 	const char *p;
- 	int ok;
-@@ -768,8 +773,11 @@ char *__crypt_blowfish(const char *key, const char *setting, char *output)
-  * detected by the self-test.
-  */
- 	memcpy(buf.s, test_setting, sizeof(buf.s));
--	if (retval)
-+	if (retval) {
-+		unsigned int flags = flags_by_subtype[setting[2] - 'a'];
-+		test_hash = test_hashes[flags & 1];
- 		buf.s[2] = setting[2];
-+	}
- 	memset(buf.o, 0x55, sizeof(buf.o));
- 	buf.o[sizeof(buf.o) - 1] = 0;
- 	p = BF_crypt(test_key, buf.s, buf.o, 1);
-@@ -777,7 +785,7 @@ char *__crypt_blowfish(const char *key, const char *setting, char *output)
- 	ok = (p == buf.o &&
- 	    !memcmp(p, buf.s, 7 + 22) &&
- 	    !memcmp(p + (7 + 22),
--	    test_hash[buf.s[2] & 1],
-+	    test_hash,
- 	    31 + 1 + 1 + 1));
- 
- 	{
--- 
-cgit v1.2.1
-
diff --git a/srcpkgs/musl/patches/CVE-2020-28928.patch b/srcpkgs/musl/patches/CVE-2020-28928.patch
deleted file mode 100644
index b3ff3b4ee08f..000000000000
--- a/srcpkgs/musl/patches/CVE-2020-28928.patch
+++ /dev/null
@@ -1,64 +0,0 @@
---- a/src/multibyte/wcsnrtombs.c
-+++ b/src/multibyte/wcsnrtombs.c
-@@ -1,41 +1,33 @@
- #include <wchar.h>
-+#include <limits.h>
-+#include <string.h>
- 
- size_t wcsnrtombs(char *restrict dst, const wchar_t **restrict wcs, size_t wn, size_t n, mbstate_t *restrict st)
- {
--	size_t l, cnt=0, n2;
--	char *s, buf[256];
- 	const wchar_t *ws = *wcs;
--	const wchar_t *tmp_ws;
--
--	if (!dst) s = buf, n = sizeof buf;
--	else s = dst;
--
--	while ( ws && n && ( (n2=wn)>=n || n2>32 ) ) {
--		if (n2>=n) n2=n;
--		tmp_ws = ws;
--		l = wcsrtombs(s, &ws, n2, 0);
--		if (!(l+1)) {
--			cnt = l;
--			n = 0;
-+	size_t cnt = 0;
-+	if (!dst) n=0;
-+	while (ws && wn) {
-+		char tmp[MB_LEN_MAX];
-+		size_t l = wcrtomb(n<MB_LEN_MAX ? tmp : dst, *ws, 0);
-+		if (l==-1) {
-+			cnt = -1;
- 			break;
- 		}
--		if (s != buf) {
--			s += l;
-+		if (dst) {
-+			if (n<MB_LEN_MAX) {
-+				if (l>n) break;
-+				memcpy(dst, tmp, l);
-+			}
-+			dst += l;
- 			n -= l;
- 		}
--		wn = ws ? wn - (ws - tmp_ws) : 0;
--		cnt += l;
--	}
--	if (ws) while (n && wn) {
--		l = wcrtomb(s, *ws, 0);
--		if ((l+1)<=1) {
--			if (!l) ws = 0;
--			else cnt = l;
-+		if (!*ws) {
-+			ws = 0;
- 			break;
- 		}
--		ws++; wn--;
--		/* safe - this loop runs fewer than sizeof(buf) times */
--		s+=l; n-=l;
-+		ws++;
-+		wn--;
- 		cnt += l;
- 	}
- 	if (dst) *wcs = ws;
-
diff --git a/srcpkgs/musl/patches/aarch64-fregs.patch b/srcpkgs/musl/patches/aarch64-fregs.patch
deleted file mode 100644
index 024eed11a8e5..000000000000
--- a/srcpkgs/musl/patches/aarch64-fregs.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Use types compatible with glibc/kernel headers.
-
-diff --git a/arch/aarch64/bits/signal.h b/arch/aarch64/bits/signal.h
-index b71261f5..5098c734 100644
---- a/arch/aarch64/bits/signal.h
-+++ b/arch/aarch64/bits/signal.h
-@@ -11,7 +11,7 @@ typedef unsigned long greg_t;
- typedef unsigned long gregset_t[34];
- 
- typedef struct {
--	long double vregs[32];
-+	__uint128_t vregs[32];
- 	unsigned int fpsr;
- 	unsigned int fpcr;
- } fpregset_t;
-@@ -34,7 +34,7 @@ struct fpsimd_context {
- 	struct _aarch64_ctx head;
- 	unsigned int fpsr;
- 	unsigned int fpcr;
--	long double vregs[32];
-+	__uint128_t vregs[32];
- };
- struct esr_context {
- 	struct _aarch64_ctx head;
-diff --git a/arch/aarch64/bits/user.h b/arch/aarch64/bits/user.h
-index d12cdf7f..8a1002aa 100644
---- a/arch/aarch64/bits/user.h
-+++ b/arch/aarch64/bits/user.h
-@@ -6,7 +6,7 @@ struct user_regs_struct {
- };
- 
- struct user_fpsimd_struct {
--	long double vregs[32];
-+	__uint128_t vregs[32];
- 	unsigned int fpsr;
- 	unsigned int fpcr;
- };
diff --git a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch b/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
deleted file mode 100644
index e20dff5ba0d4..000000000000
--- a/srcpkgs/musl/patches/add-support-for-SIGEV_THREAD_ID-timers.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 7c71792e87691451f2a6b76348e83ad1889f1dcb Mon Sep 17 00:00:00 2001
-From: James Y Knight <jyknight@google.com>
-Date: Sun, 30 Jun 2019 21:55:20 -0400
-Subject: [PATCH] add support for SIGEV_THREAD_ID timers
-
-This is like SIGEV_SIGNAL, but targeted to a particular thread's
-tid, rather than the process.
----
- include/signal.h        | 16 +++++++++++++---
- src/time/timer_create.c |  8 ++++++--
- 2 files changed, 19 insertions(+), 5 deletions(-)
-
-diff --git a/include/signal.h b/include/signal.h
-index fbdf667b2..9ed929e4f 100644
---- a/include/signal.h
-+++ b/include/signal.h
-@@ -180,14 +180,24 @@ struct sigevent {
- 	union sigval sigev_value;
- 	int sigev_signo;
- 	int sigev_notify;
--	void (*sigev_notify_function)(union sigval);
--	pthread_attr_t *sigev_notify_attributes;
--	char __pad[56-3*sizeof(long)];
-+	union {
-+		char __pad[64 - 2*sizeof(int) - sizeof(union sigval)];
-+		pid_t sigev_notify_thread_id;
-+		struct {
-+			void (*sigev_notify_function)(union sigval);
-+			pthread_attr_t *sigev_notify_attributes;
-+		} __sev_thread;
-+	} __sev_fields;
- };
- 
-+#define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id
-+#define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function
-+#define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes
-+
- #define SIGEV_SIGNAL 0
- #define SIGEV_NONE 1
- #define SIGEV_THREAD 2
-+#define SIGEV_THREAD_ID 4
- 
- int __libc_current_sigrtmin(void);
- int __libc_current_sigrtmax(void);
-diff --git a/src/time/timer_create.c b/src/time/timer_create.c
-index 5ddfda278..4bef23905 100644
---- a/src/time/timer_create.c
-+++ b/src/time/timer_create.c
-@@ -71,11 +71,15 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
- 	switch (evp ? evp->sigev_notify : SIGEV_SIGNAL) {
- 	case SIGEV_NONE:
- 	case SIGEV_SIGNAL:
-+	case SIGEV_THREAD_ID:
- 		if (evp) {
- 			ksev.sigev_value = evp->sigev_value;
- 			ksev.sigev_signo = evp->sigev_signo;
- 			ksev.sigev_notify = evp->sigev_notify;
--			ksev.sigev_tid = 0;
-+			if (evp->sigev_notify == SIGEV_THREAD_ID)
-+				ksev.sigev_tid = evp->sigev_notify_thread_id;
-+			else
-+				ksev.sigev_tid = 0;
- 			ksevp = &ksev;
- 		}
- 		if (syscall(SYS_timer_create, clk, ksevp, &timerid) < 0)
-@@ -107,7 +111,7 @@ int timer_create(clockid_t clk, struct sigevent *restrict evp, timer_t *restrict
- 
- 		ksev.sigev_value.sival_ptr = 0;
- 		ksev.sigev_signo = SIGTIMER;
--		ksev.sigev_notify = 4; /* SIGEV_THREAD_ID */
-+		ksev.sigev_notify = SIGEV_THREAD_ID;
- 		ksev.sigev_tid = td->tid;
- 		if (syscall(SYS_timer_create, clk, &ksev, &timerid) < 0)
- 			timerid = -1;
diff --git a/srcpkgs/musl/patches/epoll_cp.patch b/srcpkgs/musl/patches/epoll_cp.patch
deleted file mode 100644
index 92f47551ad8e..000000000000
--- a/srcpkgs/musl/patches/epoll_cp.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 2c00f95c1ac7dd50f53d9e361847ebd2513c8da0 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Sat, 3 Apr 2021 21:16:41 -0400
-Subject: [PATCH] make epoll_[p]wait a cancellation point
-
-this is a Linux-specific function and not covered by POSIX's
-requirements for which interfaces are cancellation points, but glibc
-makes it one and existing software relies on it being one.
-
-at some point a review for similar functions that should be made
-cancellation points should be done.
-
-diff --git src/linux/epoll.c src/linux/epoll.c
-index deff5b10..93baa814 100644
---- a/src/linux/epoll.c
-+++ b/src/linux/epoll.c
-@@ -24,9 +24,9 @@ int epoll_ctl(int fd, int op, int fd2, struct epoll_event *ev)
- 
- int epoll_pwait(int fd, struct epoll_event *ev, int cnt, int to, const sigset_t *sigs)
- {
--	int r = __syscall(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG/8);
-+	int r = __syscall_cp(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG/8);
- #ifdef SYS_epoll_wait
--	if (r==-ENOSYS && !sigs) r = __syscall(SYS_epoll_wait, fd, ev, cnt, to);
-+	if (r==-ENOSYS && !sigs) r = __syscall_cp(SYS_epoll_wait, fd, ev, cnt, to);
- #endif
- 	return __syscall_ret(r);
- }
diff --git a/srcpkgs/musl/patches/fix-pi-mutex-cond-1.patch b/srcpkgs/musl/patches/fix-pi-mutex-cond-1.patch
deleted file mode 100644
index 39af72b0c5f9..000000000000
--- a/srcpkgs/musl/patches/fix-pi-mutex-cond-1.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 2d0bbe6c788938d1332609c014eeebc1dff966ac Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Mon, 26 Oct 2020 15:56:25 -0400
-Subject: fix pthread_cond_wait paired with with priority-inheritance mutex
-
-pthread_cond_wait arranged for requeued waiters to wake when the mutex
-is unlocked by temporarily adjusting the mutex's waiter count. commit
-54ca677983d47529bab8752315ac1a2b49888870 broke this when introducing
-PI mutexes by repurposing the waiter count field of the mutex
-structure. since then, for PI mutexes, the waiter count adjustment was
-misinterpreted by the mutex locking code as indicating that the mutex
-is non a non-recoverable state.
-
-it would be possible to special-case PI mutexes here, but instead just
-drop all adjustment of the waiters count, and instead use the lock
-word waiters bit for all mutex types. since the mutex is either held
-by the caller or in unrecoverable state at the time the bit is set, it
-will necessarily still be set at the time of any subsequent valid
-unlock operation, and this will produce the desired effect of waking
-the next waiter.
-
-if waiter counts are entirely dropped at some point in the future this
-code should still work without modification.
----
- src/thread/pthread_cond_timedwait.c | 11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-(limited to 'src/thread/pthread_cond_timedwait.c')
-
-diff --git a/src/thread/pthread_cond_timedwait.c b/src/thread/pthread_cond_timedwait.c
-index d1501240..f5f37af1 100644
---- a/src/thread/pthread_cond_timedwait.c
-+++ b/src/thread/pthread_cond_timedwait.c
-@@ -146,14 +146,13 @@ relock:
- 
- 	if (oldstate == WAITING) goto done;
- 
--	if (!node.next) a_inc(&m->_m_waiters);
--
- 	/* Unlock the barrier that's holding back the next waiter, and
- 	 * either wake it or requeue it to the mutex. */
--	if (node.prev)
--		unlock_requeue(&node.prev->barrier, &m->_m_lock, m->_m_type & 128);
--	else
--		a_dec(&m->_m_waiters);
-+	if (node.prev) {
-+		int val = m->_m_lock;
-+		if (val>0) a_cas(&m->_m_lock, val, val|0x80000000);
-+		unlock_requeue(&node.prev->barrier, &m->_m_lock, m->_m_type & (8|128));
-+	}
- 
- 	/* Since a signal was consumed, cancellation is not permitted. */
- 	if (e == ECANCELED) e = 0;
--- 
-cgit v1.2.1
-
diff --git a/srcpkgs/musl/patches/fix-pi-mutex-cond-2.patch b/srcpkgs/musl/patches/fix-pi-mutex-cond-2.patch
deleted file mode 100644
index b356e38b61f8..000000000000
--- a/srcpkgs/musl/patches/fix-pi-mutex-cond-2.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 27b2fc9d6db956359727a66c262f1e69995660aa Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Fri, 30 Oct 2020 11:21:06 -0400
-Subject: fix missing-wake regression in pthread_cond_wait
-
-the reasoning in commit 2d0bbe6c788938d1332609c014eeebc1dff966ac was
-not entirely correct. while it's true that setting the waiters flag
-ensures that the next unlock will perform a wake, it's possible that
-the wake is consumed by a mutex waiter that has no relationship with
-the condvar wait queue being processed, which then takes the mutex.
-when that thread subsequently unlocks, it sees no waiters, and leaves
-the rest of the condvar queue stuck.
-
-bring back the waiter count adjustment, but skip it for PI mutexes,
-for which a successful lock-after-waiting always sets the waiters bit.
-if future changes are made to bring this same waiters-bit contract to
-all lock types, this can be reverted.
----
- src/thread/pthread_cond_timedwait.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-(limited to 'src/thread/pthread_cond_timedwait.c')
-
-diff --git a/src/thread/pthread_cond_timedwait.c b/src/thread/pthread_cond_timedwait.c
-index f5f37af1..a0cd4904 100644
---- a/src/thread/pthread_cond_timedwait.c
-+++ b/src/thread/pthread_cond_timedwait.c
-@@ -146,12 +146,17 @@ relock:
- 
- 	if (oldstate == WAITING) goto done;
- 
-+	if (!node.next && !(m->_m_type & 8))
-+		a_inc(&m->_m_waiters);
-+
- 	/* Unlock the barrier that's holding back the next waiter, and
- 	 * either wake it or requeue it to the mutex. */
- 	if (node.prev) {
- 		int val = m->_m_lock;
- 		if (val>0) a_cas(&m->_m_lock, val, val|0x80000000);
- 		unlock_requeue(&node.prev->barrier, &m->_m_lock, m->_m_type & (8|128));
-+	} else if (!!(m->_m_type & 8)) {
-+		a_dec(&m->_m_waiters);		
- 	}
- 
- 	/* Since a signal was consumed, cancellation is not permitted. */
--- 
-cgit v1.2.1
-
diff --git a/srcpkgs/musl/patches/fix-pi-mutex-cond-3.patch b/srcpkgs/musl/patches/fix-pi-mutex-cond-3.patch
deleted file mode 100644
index 2cc943f26f6a..000000000000
--- a/srcpkgs/musl/patches/fix-pi-mutex-cond-3.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d91a6cf6e369a79587c5665fce9635e5634ca201 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Fri, 30 Oct 2020 16:50:08 -0400
-Subject: fix erroneous pthread_cond_wait mutex waiter count logic due to typo
-
-introduced in commit 27b2fc9d6db956359727a66c262f1e69995660aa.
----
- src/thread/pthread_cond_timedwait.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-(limited to 'src/thread/pthread_cond_timedwait.c')
-
-diff --git a/src/thread/pthread_cond_timedwait.c b/src/thread/pthread_cond_timedwait.c
-index a0cd4904..6b761455 100644
---- a/src/thread/pthread_cond_timedwait.c
-+++ b/src/thread/pthread_cond_timedwait.c
-@@ -155,7 +155,7 @@ relock:
- 		int val = m->_m_lock;
- 		if (val>0) a_cas(&m->_m_lock, val, val|0x80000000);
- 		unlock_requeue(&node.prev->barrier, &m->_m_lock, m->_m_type & (8|128));
--	} else if (!!(m->_m_type & 8)) {
-+	} else if (!(m->_m_type & 8)) {
- 		a_dec(&m->_m_waiters);		
- 	}
- 
--- 
-cgit v1.2.1
-
diff --git a/srcpkgs/musl/patches/gettid.patch b/srcpkgs/musl/patches/gettid.patch
deleted file mode 100644
index bb8bf5905b88..000000000000
--- a/srcpkgs/musl/patches/gettid.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From d49cf07541bb54a5ac7aec1feec8514db33db8ea Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Mon, 17 Aug 2020 20:12:53 -0400
-Subject: [PATCH] add gettid function
-
-this is a prerequisite for addition of other interfaces that use
-kernel tids, including futex and SIGEV_THREAD_ID.
-
-there is some ambiguity as to whether the semantic return type should
-be int or pid_t. either way, futex API imposes a contract that the
-values fit in int (excluding some upper reserved bits). glibc used
-pid_t, so in the interest of not having gratuitous mismatch (the
-underlying types are the same anyway), pid_t is used here as well.
-
-while conceptually this is a syscall, the copy stored in the thread
-structure is always valid in all contexts where it's valid to call
-libc functions, so it's used to avoid the syscall.
----
- include/unistd.h   | 1 +
- src/linux/gettid.c | 8 ++++++++
- 2 files changed, 9 insertions(+)
- create mode 100644 src/linux/gettid.c
-
-diff --git a/include/unistd.h b/include/unistd.h
-index 7bcbff943..07584a23e 100644
---- a/include/unistd.h
-+++ b/include/unistd.h
-@@ -190,6 +190,7 @@ int syncfs(int);
- int euidaccess(const char *, int);
- int eaccess(const char *, int);
- ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);
-+pid_t gettid(void);
- #endif
- 
- #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
-diff --git a/src/linux/gettid.c b/src/linux/gettid.c
-new file mode 100644
-index 000000000..70767137e
---- /dev/null
-+++ b/src/linux/gettid.c
-@@ -0,0 +1,8 @@
-+#define _GNU_SOURCE
-+#include <unistd.h>
-+#include "pthread_impl.h"
-+
-+pid_t gettid(void)
-+{
-+	return __pthread_self()->tid;
-+}
diff --git a/srcpkgs/musl/patches/implement_realpath_directly_instead_of_using_procfs_readlink.patch b/srcpkgs/musl/patches/implement_realpath_directly_instead_of_using_procfs_readlink.patch
deleted file mode 100644
index 569a1f52c7cd..000000000000
--- a/srcpkgs/musl/patches/implement_realpath_directly_instead_of_using_procfs_readlink.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From 29ff7599a448232f2527841c2362643d246cee36 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Mon, 30 Nov 2020 12:14:47 -0500
-Subject: [PATCH] implement realpath directly instead of using procfs readlink
-
-inability to use realpath in chroot/container without procfs access
-and at early boot prior to mount of /proc has been an ongoing issue,
-and it turns out realpath was one of the last remaining interfaces
-that needed procfs for its core functionality. during investigation
-while reimplementing, it was determined that there were also serious
-problems with the procfs-based implementation. most seriously it was
-unsafe on pre-O_PATH kernels, and unlike other places where O_PATH was
-used, the unsafety was hard or impossible to fix because O_NOFOLLOW
-can't be used (since the whole purpose was to follow symlinks).
-
-the new implementation is a direct one, performing readlink on each
-path component to resolve it. an explicit stack, as opposed to
-recursion, is used to represent the remaining components to be
-processed. the stack starts out holding just the input string, and
-reading a link pushes the link contents onto the stack.
-
-unlike many other implementations, this one does not call getcwd
-initially for relative pathnames. instead it accumulates initial ..
-components to be applied to the working directory if the result is
-still a relative path. this avoids calling getcwd (which may fail) at
-all when symlink traversal will eventually yield an absolute path. it
-also doesn't use any form of stat operation; instead it arranges for
-readlink to tell it when a non-directory is used in a context where a
-directory is needed. this minimizes the number of syscalls needed,
-avoids accessing inodes when the directory table suffices, and reduces
-the amount of code pulled in for static linking.
----
- src/misc/realpath.c | 159 +++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 136 insertions(+), 23 deletions(-)
-
-diff --git a/src/misc/realpath.c b/src/misc/realpath.c
-index d2708e59d..db8b74dc8 100644
---- a/src/misc/realpath.c
-+++ b/src/misc/realpath.c
-@@ -1,43 +1,156 @@
- #include <stdlib.h>
- #include <limits.h>
--#include <sys/stat.h>
--#include <fcntl.h>
- #include <errno.h>
- #include <unistd.h>
- #include <string.h>
--#include "syscall.h"
-+
-+static size_t slash_len(const char *s)
-+{
-+	const char *s0 = s;
-+	while (*s == '/') s++;
-+	return s-s0;
-+}
- 
- char *realpath(const char *restrict filename, char *restrict resolved)
- {
--	int fd;
--	ssize_t r;
--	struct stat st1, st2;
--	char buf[15+3*sizeof(int)];
--	char tmp[PATH_MAX];
-+	char stack[PATH_MAX+1];
-+	char output[PATH_MAX];
-+	size_t p, q, l, l0, cnt=0, nup=0;
-+	int check_dir=0;
- 
- 	if (!filename) {
- 		errno = EINVAL;
- 		return 0;
- 	}
-+	l = strnlen(filename, sizeof stack);
-+	if (!l) {
-+		errno = ENOENT;
-+		return 0;
-+	}
-+	if (l >= PATH_MAX) goto toolong;
-+	p = sizeof stack - l - 1;
-+	q = 0;
-+	memcpy(stack+p, filename, l+1);
-+
-+	/* Main loop. Each iteration pops the next part from stack of
-+	 * remaining path components and consumes any slashes that follow.
-+	 * If not a link, it's moved to output; if a link, contents are
-+	 * pushed to the stack. */
-+restart:
-+	for (; ; p+=slash_len(stack+p)) {
-+		/* If stack starts with /, the whole component is / or //
-+		 * and the output state must be reset. */
-+		if (stack[p] == '/') {
-+			check_dir=0;
-+			nup=0;
-+			q=0;
-+			output[q++] = '/';
-+			p++;
-+			/* Initial // is special. */
-+			if (stack[p] == '/' && stack[p+1] != '/')
-+				output[q++] = '/';
-+			continue;
-+		}
-+
-+		char *z = __strchrnul(stack+p, '/');
-+		l0 = l = z-(stack+p);
- 
--	fd = sys_open(filename, O_PATH|O_NONBLOCK|O_CLOEXEC);
--	if (fd < 0) return 0;
--	__procfdname(buf, fd);
-+		if (!l && !check_dir) break;
- 
--	r = readlink(buf, tmp, sizeof tmp - 1);
--	if (r < 0) goto err;
--	tmp[r] = 0;
-+		/* Skip any . component but preserve check_dir status. */
-+		if (l==1 && stack[p]=='.') {
-+			p += l;
-+			continue;
-+		}
- 
--	fstat(fd, &st1);
--	r = stat(tmp, &st2);
--	if (r<0 || st1.st_dev != st2.st_dev || st1.st_ino != st2.st_ino) {
--		if (!r) errno = ELOOP;
--		goto err;
-+		/* Copy next component onto output at least temporarily, to
-+		 * call readlink, but wait to advance output position until
-+		 * determining it's not a link. */
-+		if (q && output[q-1] != '/') {
-+			if (!p) goto toolong;
-+			stack[--p] = '/';
-+			l++;
-+		}
-+		if (q+l >= PATH_MAX) goto toolong;
-+		memcpy(output+q, stack+p, l);
-+		output[q+l] = 0;
-+		p += l;
-+
-+		int up = 0;
-+		if (l0==2 && stack[p-2]=='.' && stack[p-1]=='.') {
-+			up = 1;
-+			/* Any non-.. path components we could cancel start
-+			 * after nup repetitions of the 3-byte string "../";
-+			 * if there are none, accumulate .. components to
-+			 * later apply to cwd, if needed. */
-+			if (q <= 3*nup) {
-+				nup++;
-+				q += l;
-+				continue;
-+			}
-+			/* When previous components are already known to be
-+			 * directories, processing .. can skip readlink. */
-+			if (!check_dir) goto skip_readlink;
-+		}
-+		ssize_t k = readlink(output, stack, p);
-+		if (k==p) goto toolong;
-+		if (!k) {
-+			errno = ENOENT;
-+			return 0;
-+		}
-+		if (k<0) {
-+			if (errno != EINVAL) return 0;
-+skip_readlink:
-+			check_dir = 0;
-+			if (up) {
-+				while(q && output[q-1]!='/') q--;
-+				if (q>1 && (q>2 || output[0]!='/')) q--;
-+				continue;
-+			}
-+			if (l0) q += l;
-+			check_dir = stack[p];
-+			continue;
-+		}
-+		if (++cnt == SYMLOOP_MAX) {
-+			errno = ELOOP;
-+			return 0;
-+		}
-+
-+		/* If link contents end in /, strip any slashes already on
-+		 * stack to avoid /->// or //->/// or spurious toolong. */
-+		if (stack[k-1]=='/') while (stack[p]=='/') p++;
-+		p -= k;
-+		memmove(stack+p, stack, k);
-+
-+		/* Skip the stack advancement in case we have a new
-+		 * absolute base path. */
-+		goto restart;
- 	}
- 
--	__syscall(SYS_close, fd);
--	return resolved ? strcpy(resolved, tmp) : strdup(tmp);
--err:
--	__syscall(SYS_close, fd);
-+ 	output[q] = 0;
-+
-+	if (output[0] != '/') {
-+		if (!getcwd(stack, sizeof stack)) return 0;
-+		l = strlen(stack);
-+		/* Cancel any initial .. components. */
-+		p = 0;
-+		while (nup--) {
-+			while(l>1 && stack[l-1]!='/') l--;
-+			if (l>1) l--;
-+			p += 2;
-+			if (p<q) p++;
-+		}
-+		if (q-p && stack[l-1]!='/') stack[l++] = '/';
-+		if (l + (q-p) + 1 >= PATH_MAX) goto toolong;
-+		memmove(output + l, output + p, q - p + 1);
-+		memcpy(output, stack, l);
-+		q = l + q-p;
-+	}
-+
-+	if (resolved) return memcpy(resolved, output, q+1);
-+	else return strdup(output);
-+
-+toolong:
-+	errno = ENAMETOOLONG;
- 	return 0;
- }
diff --git a/srcpkgs/musl/patches/isascii.patch b/srcpkgs/musl/patches/isascii.patch
deleted file mode 100644
index 6719d2ee188f..000000000000
--- a/srcpkgs/musl/patches/isascii.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From e48e99c112246fb580596404074445cb25d7858d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=89rico=20Rolim?= <ericonr@disroot.org>
-Date: Mon, 4 Jan 2021 22:48:34 -0300
-Subject: [PATCH] suppress isascii() macro for C++
-
-analogous to commit a60457c84a4b59ab564d7f4abb660a70283ba98d.
-
-diff --git include/ctype.h include/ctype.h
-index 7936536f..32bcef4d 100644
---- a/include/ctype.h
-+++ b/include/ctype.h
-@@ -64,7 +64,9 @@ int   isascii(int);
- int   toascii(int);
- #define _tolower(a) ((a)|0x20)
- #define _toupper(a) ((a)&0x5f)
-+#ifndef __cplusplus
- #define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128)
-+#endif
- 
- #endif
- 
diff --git a/srcpkgs/musl/patches/ppc-pt_regs.patch b/srcpkgs/musl/patches/ppc-pt_regs.patch
deleted file mode 100644
index 45815321bf0f..000000000000
--- a/srcpkgs/musl/patches/ppc-pt_regs.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
-Author: Rich Felker <dalias@aerifal.cx>
-Date:   Sat Oct 19 15:53:43 2019 -0400
-
-    use struct pt_regs * rather than void * for powerpc[64] sigcontext regs
-    
-    this is to match the kernel and glibc interfaces. here, struct pt_regs
-    is an incomplete type, but that's harmless, and if it's completed by
-    inclusion of another header then members of the struct pointed to by
-    the regs member can be accessed directly without going through a cast
-    or intermediate pointer object.
-
-diff --git a/arch/powerpc/bits/signal.h b/arch/powerpc/bits/signal.h
-index 06efb11c..c1bf3caf 100644
---- a/arch/powerpc/bits/signal.h
-+++ b/arch/powerpc/bits/signal.h
-@@ -28,7 +28,7 @@ struct sigcontext {
- 	int signal;
- 	unsigned long handler;
- 	unsigned long oldmask;
--	void *regs;
-+	struct pt_regs *regs;
- };
- 
- typedef struct {
-diff --git a/arch/powerpc64/bits/signal.h b/arch/powerpc64/bits/signal.h
-index 4dec22a5..d5493b18 100644
---- a/arch/powerpc64/bits/signal.h
-+++ b/arch/powerpc64/bits/signal.h
-@@ -32,7 +32,7 @@ typedef struct sigcontext {
- 	int _pad0;
- 	unsigned long handler;
- 	unsigned long oldmask;
--	void *regs;
-+	struct pt_regs *regs;
- 	gregset_t gp_regs;
- 	fpregset_t fp_regs;
- 	vrregset_t *v_regs;
diff --git a/srcpkgs/musl/patches/ppc64-fpregset_t.patch b/srcpkgs/musl/patches/ppc64-fpregset_t.patch
deleted file mode 100644
index 12617ba0ef7d..000000000000
--- a/srcpkgs/musl/patches/ppc64-fpregset_t.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-commit c9f48cde0a22641ce3daf54596a9ecebdab91435
-Author: Rich Felker <dalias@aerifal.cx>
-Date:   Sat Oct 19 15:39:45 2019 -0400
-
-    fix fpregset_t type on powerpc64
-    
-    the userspace ucontext API has this as an array rather than a
-    structure.
-    
-    commit 3c59a868956636bc8adafb1b168d090897692532 fixed the
-    corresponding mistake for vrregset_t, namely that the original
-    powerpc64 port used a mix of types from 32-bit powerpc and powerpc64
-    rather than matching the 64-bit types.
-
-diff --git a/arch/powerpc64/bits/signal.h b/arch/powerpc64/bits/signal.h
-index 2cc0604c..4dec22a5 100644
---- a/arch/powerpc64/bits/signal.h
-+++ b/arch/powerpc64/bits/signal.h
-@@ -9,11 +9,7 @@
- #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
- 
- typedef unsigned long greg_t, gregset_t[48];
--
--typedef struct {
--	double fpregs[32];
--	double fpscr;
--} fpregset_t;
-+typedef double fpregset_t[33];
- 
- typedef struct {
- #ifdef __GNUC__
diff --git a/srcpkgs/musl/patches/ppcle.patch b/srcpkgs/musl/patches/ppcle.patch
deleted file mode 100644
index 7d49338a5a0f..000000000000
--- a/srcpkgs/musl/patches/ppcle.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 20dfc2002482a21b955b710af119a01aecee784b Mon Sep 17 00:00:00 2001
-From: Daniel Kolesa <daniel@octaforge.org>
-Date: Tue, 15 Dec 2020 20:42:17 +0100
-Subject: [PATCH] add ppc32 le subarch
-
----
- configure | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git configure configure
-index 8680128..f1ca58e 100755
---- a/configure
-+++ b/configure
-@@ -645,6 +645,7 @@ fi
- if test "$ARCH" = "powerpc" ; then
- trycppif "__NO_FPRS__ && !_SOFT_FLOAT" "$t" && fail \
-   "$0: error: compiler's floating point configuration is unsupported"
-+trycppif __LITTLE_ENDIAN__ "$t" && SUBARCH=${SUBARCH}le
- trycppif _SOFT_FLOAT "$t" && SUBARCH=${SUBARCH}-sf
- fi
- 
--- 
-2.29.2
-
diff --git a/srcpkgs/musl/patches/reallocarray.patch b/srcpkgs/musl/patches/reallocarray.patch
deleted file mode 100644
index cfaab330e89a..000000000000
--- a/srcpkgs/musl/patches/reallocarray.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 821083ac7b54eaa040d5a8ddc67c6206a175e0ca Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Sat, 1 Aug 2020 08:26:35 -0600
-Subject: [PATCH] implement reallocarray
-
-reallocarray is an extension introduced by OpenBSD, which introduces
-calloc overflow checking to realloc.
-
-glibc 2.28 introduced support for this function behind _GNU_SOURCE,
-while glibc 2.29 allows its usage in _DEFAULT_SOURCE.
-
-diff --git a/include/stdlib.h b/include/stdlib.h
-index 194c2033..b54a051f 100644
---- a/include/stdlib.h
-+++ b/include/stdlib.h
-@@ -145,6 +145,7 @@ int getloadavg(double *, int);
- int clearenv(void);
- #define WCOREDUMP(s) ((s) & 0x80)
- #define WIFCONTINUED(s) ((s) == 0xffff)
-+void *reallocarray (void *, size_t, size_t);
- #endif
- 
- #ifdef _GNU_SOURCE
-diff --git a/src/malloc/reallocarray.c b/src/malloc/reallocarray.c
-new file mode 100644
-index 00000000..4a6ebe46
---- /dev/null
-+++ b/src/malloc/reallocarray.c
-@@ -0,0 +1,13 @@
-+#define _BSD_SOURCE
-+#include <errno.h>
-+#include <stdlib.h>
-+
-+void *reallocarray(void *ptr, size_t m, size_t n)
-+{
-+	if (n && m > -1 / n) {
-+		errno = ENOMEM;
-+		return 0;
-+	}
-+
-+	return realloc(ptr, m * n);
-+}
diff --git a/srcpkgs/musl/patches/work_around_linux_bug_in_readlink_syscall_with_zero_buffer.patch b/srcpkgs/musl/patches/work_around_linux_bug_in_readlink_syscall_with_zero_buffer.patch
deleted file mode 100644
index 3286432ebea2..000000000000
--- a/srcpkgs/musl/patches/work_around_linux_bug_in_readlink_syscall_with_zero_buffer.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From e2fa720be7024cce4fc489f3877476d35da48ee2 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Mon, 23 Nov 2020 19:44:19 -0500
-Subject: [PATCH] work around linux bug in readlink syscall with zero buffer
- size
-
-linux fails with EINVAL when a zero buffer size is passed to the
-syscall. this is non-conforming because POSIX already defines EINVAL
-with a significantly different meaning: the target is not a symlink.
-
-since the request is semantically valid, patch it up by using a dummy
-buffer of length one, and truncating the return value to zero if it
-succeeds.
----
- src/unistd/readlink.c   | 11 +++++++++--
- src/unistd/readlinkat.c |  9 ++++++++-
- 2 files changed, 17 insertions(+), 3 deletions(-)
-
-diff --git a/src/unistd/readlink.c b/src/unistd/readlink.c
-index a152d5249..32f4537f9 100644
---- a/src/unistd/readlink.c
-+++ b/src/unistd/readlink.c
-@@ -4,9 +4,16 @@
- 
- ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize)
- {
-+	char dummy[1];
-+	if (!bufsize) {
-+		buf = dummy;
-+		bufsize = 1;
-+	}
- #ifdef SYS_readlink
--	return syscall(SYS_readlink, path, buf, bufsize);
-+	int r = __syscall(SYS_readlink, path, buf, bufsize);
- #else
--	return syscall(SYS_readlinkat, AT_FDCWD, path, buf, bufsize);
-+	int r = __syscall(SYS_readlinkat, AT_FDCWD, path, buf, bufsize);
- #endif
-+	if (buf == dummy && r > 0) r = 0;
-+	return __syscall_ret(r);
- }
-diff --git a/src/unistd/readlinkat.c b/src/unistd/readlinkat.c
-index 9af45cd5a..f79d3d142 100644
---- a/src/unistd/readlinkat.c
-+++ b/src/unistd/readlinkat.c
-@@ -3,5 +3,12 @@
- 
- ssize_t readlinkat(int fd, const char *restrict path, char *restrict buf, size_t bufsize)
- {
--	return syscall(SYS_readlinkat, fd, path, buf, bufsize);
-+	char dummy[1];
-+	if (!bufsize) {
-+		buf = dummy;
-+		bufsize = 1;
-+	}
-+	int r = __syscall(SYS_readlinkat, fd, path, buf, bufsize);
-+	if (buf == dummy && r > 0) r = 0;
-+	return __syscall_ret(r);
- }
diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template
index afb33cd868b5..bb8c8bc592b6 100644
--- a/srcpkgs/musl/template
+++ b/srcpkgs/musl/template
@@ -1,8 +1,7 @@
 # Template file for 'musl'
 pkgname=musl
-reverts="1.2.0_1"
-version=1.1.24
-revision=12
+version=1.2.3
+revision=1
 archs="*-musl"
 bootstrap=yes
 build_style=gnu-configure
@@ -12,7 +11,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="MIT"
 homepage="http://www.musl-libc.org/"
 distfiles="http://www.musl-libc.org/releases/musl-${version}.tar.gz"
-checksum=1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3
+checksum=7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4
 
 nostrip_files="libc.so"
 shlib_provides="libc.so"

From 1a0df9d2e5609158b9947c807887db43a0b89e2a Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cam@nohom.org>
Date: Sun, 25 Dec 2022 22:04:34 -0800
Subject: [PATCH 2/3] base-chroot: bump musl-devel version

---
 srcpkgs/base-chroot/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/base-chroot/template b/srcpkgs/base-chroot/template
index 40c76bedd417..0c839bfc851d 100644
--- a/srcpkgs/base-chroot/template
+++ b/srcpkgs/base-chroot/template
@@ -1,6 +1,6 @@
 # Template file for 'base-chroot'
 pkgname=base-chroot
-version=0.67
+version=0.68
 revision=1
 bootstrap=yes
 build_style=meta
@@ -10,7 +10,7 @@ license="Public Domain"
 homepage="http://www.voidlinux.org"
 
 case "$XBPS_TARGET_LIBC" in
-	musl) depends="musl-devel";;
+	musl) depends="musl-devel>=1.2.3_1";;
 	*) depends="glibc-devel glibc-locales";;
 esac
 

From 339e239ddbf955a61773c42d6c57bf5d1d20ec77 Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cam@nohom.org>
Date: Sun, 25 Dec 2022 22:05:04 -0800
Subject: [PATCH 3/3] base-devel: bump musl-devel version

---
 srcpkgs/base-devel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/base-devel/template b/srcpkgs/base-devel/template
index 570f699ca960..56101385c4f7 100644
--- a/srcpkgs/base-devel/template
+++ b/srcpkgs/base-devel/template
@@ -1,7 +1,7 @@
 # Template file for 'base-devel'
 pkgname=base-devel
 version=20181003
-revision=2
+revision=3
 build_style=meta
 depends="autoconf automake bc binutils bison ed flex gcc gettext
  groff libtool m4 make patch pkg-config texinfo unzip xz"
@@ -12,6 +12,6 @@ homepage="http://www.voidlinux.org/"
 lib32disabled=yes
 
 case "$XBPS_TARGET_MACHINE" in
-	*-musl) depends+=" musl-devel";;
+	*-musl) depends+=" musl-devel>=1.2.3_1";;
 	*) depends+=" glibc-devel";;
 esac

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
@ 2022-12-26 15:45 ` JamiKettunen
  2022-12-26 19:33 ` musl CameronNemo
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: JamiKettunen @ 2022-12-26 15:45 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 237 bytes --]

New comment by JamiKettunen on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365255907

Comment:
Related: https://github.com/void-linux/xbps/pull/331 (and other things linking to that PR)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
  2022-12-26 15:45 ` musl JamiKettunen
@ 2022-12-26 19:33 ` CameronNemo
  2022-12-26 21:51 ` musl oreo639
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: CameronNemo @ 2022-12-26 19:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 927 bytes --]

New comment by CameronNemo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365400724

Comment:
Build failures on cross musl seem at least tangentially libssp related:

```
Trying to install dependants of base-chroot:
Trying to install dependants of base-devel:
Trying to install dependants of musl-devel:
ccache-4.6.3_1: broken, unresolvable shlib `libgcc_s.so.1'
nghttp2-1.51.0_1: broken, unresolvable shlib `libgcc_s.so.1'
libxbps-0.59.1_7: broken, unresolvable shlib `libssp.so.0'
xbps-0.59.1_7: broken, unresolvable shlib `libssp.so.0'
ccache-4.6.3_1: broken, unresolvable shlib `libstdc++.so.6'
nghttp2-1.51.0_1: broken, unresolvable shlib `libstdc++.so.6'
Transaction aborted due to unresolved shlibs.
Failed to install 'musl-devel' and 'base-chroot-0.68_1'
Error: Process completed with exit code 1.
```

Curiously, both of those builds worked locally.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
  2022-12-26 15:45 ` musl JamiKettunen
  2022-12-26 19:33 ` musl CameronNemo
@ 2022-12-26 21:51 ` oreo639
  2022-12-26 21:53 ` musl oreo639
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: oreo639 @ 2022-12-26 21:51 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 327 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365478315

Comment:
> Build failures on cross musl seem at least tangentially libssp related

Those aren't build failures those are supposedly broken packages. (although idk if those are false positives)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (2 preceding siblings ...)
  2022-12-26 21:51 ` musl oreo639
@ 2022-12-26 21:53 ` oreo639
  2022-12-26 21:53 ` musl oreo639
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: oreo639 @ 2022-12-26 21:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 316 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365478315

Comment:
> Build failures on cross musl seem at least tangentially libssp related

Those aren't build failures those are broken packages. (although idk if those are false positives)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (3 preceding siblings ...)
  2022-12-26 21:53 ` musl oreo639
@ 2022-12-26 21:53 ` oreo639
  2022-12-26 21:53 ` musl oreo639
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: oreo639 @ 2022-12-26 21:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 315 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365478315

Comment:
> Build failures on cross musl seem at least tangentially libssp related

Those aren't build failures they are broken packages. (although idk if those are false positives)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (4 preceding siblings ...)
  2022-12-26 21:53 ` musl oreo639
@ 2022-12-26 21:53 ` oreo639
  2022-12-26 21:54 ` musl oreo639
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: oreo639 @ 2022-12-26 21:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 271 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365478315

Comment:
> Build failures on cross musl seem at least tangentially libssp related

Those aren't build failures they are broken packages.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (5 preceding siblings ...)
  2022-12-26 21:53 ` musl oreo639
@ 2022-12-26 21:54 ` oreo639
  2022-12-26 21:56 ` musl oreo639
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: oreo639 @ 2022-12-26 21:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 291 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365478315

Comment:
> Build failures on cross musl seem at least tangentially libssp related

Those aren't build failures they are broken packages that depend on musl.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (6 preceding siblings ...)
  2022-12-26 21:54 ` musl oreo639
@ 2022-12-26 21:56 ` oreo639
  2022-12-27 17:22 ` musl dkwo
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: oreo639 @ 2022-12-26 21:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 338 bytes --]

New comment by oreo639 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1365478315

Comment:
> Build failures on cross musl seem at least tangentially libssp related

Those aren't build failures they are broken packages that depend on musl. (Sometimes false positives can show up though)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (7 preceding siblings ...)
  2022-12-26 21:56 ` musl oreo639
@ 2022-12-27 17:22 ` dkwo
  2022-12-27 17:33 ` musl CameronNemo
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2022-12-27 17:22 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 268 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1366060108

Comment:
I've been using musl-1.2.3, with no issues. You may want to rebuild firefox, thunderbird, zathura, maybe others (due to sandbox).

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (8 preceding siblings ...)
  2022-12-27 17:22 ` musl dkwo
@ 2022-12-27 17:33 ` CameronNemo
  2022-12-27 17:36 ` musl nekopsykose
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: CameronNemo @ 2022-12-27 17:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 452 bytes --]

New comment by CameronNemo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1366065932

Comment:
@dkwo are you using aarch64? I specifically was going to set up an armv7l-musl chroot on my rock64 or PBP, install (and test running) various packages, and rebuild all of them with musl 1.2.3. Then I was going to try a full system (potentially offline) upgrade of a full armv7l system running on my rock64.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (9 preceding siblings ...)
  2022-12-27 17:33 ` musl CameronNemo
@ 2022-12-27 17:36 ` nekopsykose
  2022-12-27 17:39 ` musl paper42
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: nekopsykose @ 2022-12-27 17:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 281 bytes --]

New comment by nekopsykose on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1366067711

Comment:
it's technically abi breaking for 32-bit, so everything has to be rebuilt, not just those. but on 64 you wouldnt notice anything indeed

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (10 preceding siblings ...)
  2022-12-27 17:36 ` musl nekopsykose
@ 2022-12-27 17:39 ` paper42
  2022-12-27 17:57 ` musl dkwo
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: paper42 @ 2022-12-27 17:39 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 429 bytes --]

New comment by paper42 on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1366069093

Comment:
> it's technically abi breaking for 32-bit, so everything has to be rebuilt, not just those. but on 64 you wouldnt notice anything indeed

We are aware of that and that's why this PR is marked as a draft and waiting for https://github.com/void-linux/xbps/pull/331 or something similar.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (11 preceding siblings ...)
  2022-12-27 17:39 ` musl paper42
@ 2022-12-27 17:57 ` dkwo
  2022-12-27 17:58 ` musl dkwo
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2022-12-27 17:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 268 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1366078662

Comment:
@CameronNemo That was on `x86_64`. I have an `aarhc64` laptop where I can test this natively, but I'm away from it until mid Jan.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (12 preceding siblings ...)
  2022-12-27 17:57 ` musl dkwo
@ 2022-12-27 17:58 ` dkwo
  2023-01-27 18:29 ` musl dkwo
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2022-12-27 17:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 268 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1366078662

Comment:
@CameronNemo That was on `x86_64`. I have an `aarch64` laptop where I can test this natively, but I'm away from it until mid Jan.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (13 preceding siblings ...)
  2022-12-27 17:58 ` musl dkwo
@ 2023-01-27 18:29 ` dkwo
  2023-01-27 18:29 ` musl dkwo
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2023-01-27 18:29 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 649 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1406921964

Comment:
@CameronNemo I've built this natively on aarhc64. I'm not going to rebuild the whole world for now, but if there's a few packages that you want to test, let me know.
@nekopsykose Those packages I mentioned need rebuild also on 64 (e.g. O_LARGEFILE, sandbox issues).
@paper Instead of waiting forever for abi support, wouldn't it be more practical to rebuild everything for all archs? you may have a week or two of freezing, but at least from my user perspective that's much better than the current situation.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (14 preceding siblings ...)
  2023-01-27 18:29 ` musl dkwo
@ 2023-01-27 18:29 ` dkwo
  2023-01-27 20:12 ` musl CameronNemo
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2023-01-27 18:29 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 652 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1406921964

Comment:
@CameronNemo I've built this natively on aarhc64. I'm not going to rebuild the whole world for now, but if there's a few packages that you want to test, let me know.
@nekopsykose Those packages I mentioned need rebuild also on 64 (e.g. O_LARGEFILE, sandbox issues).
@paper42  Instead of waiting forever for abi support, wouldn't it be more practical to rebuild everything for all archs? you may have a week or two of freezing, but at least from my user perspective that's much better than the current situation.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (15 preceding siblings ...)
  2023-01-27 18:29 ` musl dkwo
@ 2023-01-27 20:12 ` CameronNemo
  2023-01-28 15:56 ` musl dkwo
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: CameronNemo @ 2023-01-27 20:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 247 bytes --]

New comment by CameronNemo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1407027144

Comment:
@dkwo the hard part is not so much rebuilding, as it is re-installing every package in an atomic way.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (16 preceding siblings ...)
  2023-01-27 20:12 ` musl CameronNemo
@ 2023-01-28 15:56 ` dkwo
  2023-03-15 17:50 ` musl dkwo
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2023-01-28 15:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 252 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1407427360

Comment:
@CameronNemo Thanks, I wasn't aware of that. Does any other package manager, like Alpine's apk, solve this issue?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (17 preceding siblings ...)
  2023-01-28 15:56 ` musl dkwo
@ 2023-03-15 17:50 ` dkwo
  2023-03-20 16:10 ` [PR PATCH] [Closed]: musl CameronNemo
  2023-03-20 16:10 ` musl CameronNemo
  20 siblings, 0 replies; 24+ messages in thread
From: dkwo @ 2023-03-15 17:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 234 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1470490550

Comment:
Maybe you also want to update the `_musl_version` in the various `cross-*-linux-musl` packages?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PR PATCH] [Closed]: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (18 preceding siblings ...)
  2023-03-15 17:50 ` musl dkwo
@ 2023-03-20 16:10 ` CameronNemo
  2023-03-20 16:10 ` musl CameronNemo
  20 siblings, 0 replies; 24+ messages in thread
From: CameronNemo @ 2023-03-20 16:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1143 bytes --]

There's a closed pull request on the void-packages repository

musl
https://github.com/void-linux/void-packages/pull/41295

Description:
- musl: update to 1.2.3
- base-chroot: bump musl-devel version
- base-devel: bump musl-devel version

<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **NO**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2022-12-26  6:05 [PR PATCH] musl CameronNemo
                   ` (19 preceding siblings ...)
  2023-03-20 16:10 ` [PR PATCH] [Closed]: musl CameronNemo
@ 2023-03-20 16:10 ` CameronNemo
  20 siblings, 0 replies; 24+ messages in thread
From: CameronNemo @ 2023-03-20 16:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 194 bytes --]

New comment by CameronNemo on void-packages repository

https://github.com/void-linux/void-packages/pull/41295#issuecomment-1476528080

Comment:
This is too much work and I have too much to do.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2023-03-29 19:35 [PR PATCH] musl dkwo
  2023-03-29 19:36 ` musl dkwo
@ 2023-03-29 20:04 ` dkwo
  1 sibling, 0 replies; 24+ messages in thread
From: dkwo @ 2023-03-29 20:04 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 787 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/43106#issuecomment-1489191432

Comment:
ref for self:
```
for a in cross-aarch64-linux-musl cross-arm-linux-musleabi cross-arm-linux-musleabihf cross-armv7l-linux-musleabihf cross-i686-linux-musl cross-mipsel-linux-musl cross-mipsel-linux-muslhf cross-mips-linux-musl cross-mips-linux-muslhf cross-powerpc64le-linux-musl cross-powerpc64-linux-musl cross-powerpcle-linux-musl cross-powerpc-linux-musl cross-x86_64-linux-musl; do
	sed -i s/1.1.24/1.2.3/ srcpkgs/$a/template
        sed -i s/1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3/7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4/ srcpkgs/$a/template
	xrevbump "bump musl version" $a
done
```

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: musl
  2023-03-29 19:35 [PR PATCH] musl dkwo
@ 2023-03-29 19:36 ` dkwo
  2023-03-29 20:04 ` musl dkwo
  1 sibling, 0 replies; 24+ messages in thread
From: dkwo @ 2023-03-29 19:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 618 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/43106#issuecomment-1489191432

Comment:
ref for self:
```
for a in cross-aarch64-linux-musl cross-arm-linux-musleabi cross-arm-linux-musleabihf cross-armv7l-linux-musleabihf cross-i686-linux-musl cross-mipsel-linux-musl cross-mipsel-linux-muslhf cross-mips-linux-musl cross-mips-linux-muslhf cross-powerpc64le-linux-musl cross-powerpc64-linux-musl cross-powerpcle-linux-musl cross-powerpc-linux-musl cross-x86_64-linux-musl; do
	sed -i s/1.1.24/1.2.3/ srcpkgs/$a/template
	xrevbump "bump musl version" $a
done
```

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2023-03-29 20:04 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-26  6:05 [PR PATCH] musl CameronNemo
2022-12-26 15:45 ` musl JamiKettunen
2022-12-26 19:33 ` musl CameronNemo
2022-12-26 21:51 ` musl oreo639
2022-12-26 21:53 ` musl oreo639
2022-12-26 21:53 ` musl oreo639
2022-12-26 21:53 ` musl oreo639
2022-12-26 21:54 ` musl oreo639
2022-12-26 21:56 ` musl oreo639
2022-12-27 17:22 ` musl dkwo
2022-12-27 17:33 ` musl CameronNemo
2022-12-27 17:36 ` musl nekopsykose
2022-12-27 17:39 ` musl paper42
2022-12-27 17:57 ` musl dkwo
2022-12-27 17:58 ` musl dkwo
2023-01-27 18:29 ` musl dkwo
2023-01-27 18:29 ` musl dkwo
2023-01-27 20:12 ` musl CameronNemo
2023-01-28 15:56 ` musl dkwo
2023-03-15 17:50 ` musl dkwo
2023-03-20 16:10 ` [PR PATCH] [Closed]: musl CameronNemo
2023-03-20 16:10 ` musl CameronNemo
2023-03-29 19:35 [PR PATCH] musl dkwo
2023-03-29 19:36 ` musl dkwo
2023-03-29 20:04 ` musl dkwo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).