From b7f20f3bf93316ef9ab125a7d5b10922835642a1 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 22 Feb 2026 12:53:28 -0800 Subject: [PATCH 01/42] musl: enable on non-armv* architectures --- srcpkgs/musl/template | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/srcpkgs/musl/template b/srcpkgs/musl/template index 8e6e97291bbf5d..0fb0e51050b8d6 100644 --- a/srcpkgs/musl/template +++ b/srcpkgs/musl/template @@ -16,9 +16,10 @@ checksum=a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 nostrip_files="libc.so" shlib_provides="libc.so" -if [ "$XBPS_TARGET_WORDSIZE" -eq 32 ]; then - broken="use musl1.1" -fi +case "$XBPS_TARGET_MACHINE" in + armv*) broken="use musl1.1" ;; + *) ;; +esac post_build() { $CC $CFLAGS $LDFLAGS -fpie ${FILESDIR}/getent.c -o getent From 743345df58f4c8770a06fda80a89362fbe578174 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 22 Feb 2026 12:53:50 -0800 Subject: [PATCH 02/42] musl1.1: restrict to armv* architectures --- srcpkgs/musl1.1/template | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/srcpkgs/musl1.1/template b/srcpkgs/musl1.1/template index 41a5a7f3b46fbf..01d9bee3cf6f5f 100644 --- a/srcpkgs/musl1.1/template +++ b/srcpkgs/musl1.1/template @@ -19,9 +19,10 @@ provides="musl-${version}_${revision}" nostrip_files="libc.so" shlib_provides="libc.so" -if [ "$XBPS_TARGET_WORDSIZE" -ne 32 ]; then - broken="use musl" -fi +case "$XBPS_TARGET_MACHINE" in + armv*) ;; + *) broken="use musl" ;; +esac post_build() { $CC $CFLAGS $LDFLAGS -fpie ${FILESDIR}/getent.c -o getent From f98ffa72acc4fcd4dbef3c90e86cf0371b229b29 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Mon, 11 May 2026 01:43:52 -0700 Subject: [PATCH 03/42] glibc: update to 2.43. --- common/shlibs | 60 ++-- srcpkgs/glibc/patches/2.41-math.patch | 259 ------------------ ...2cb5e9d713ab0f4135dd8776a201f7a53f24.patch | 81 ------ ...d9020fdad925297c9e133055bd8804028f32.patch | 26 -- ...f8e93964a99db3e3fa4b8a7aba179185ef0a.patch | 61 ----- ...12855d6606d078aaabaa7ef24b695c3f0349.patch | 46 ---- srcpkgs/glibc/patches/CVE-2026-4046.patch | 150 ++++++++++ srcpkgs/glibc/patches/CVE-2026-4437.patch | 45 +++ srcpkgs/glibc/patches/CVE-2026-4438.patch | 40 +++ srcpkgs/glibc/patches/CVE-2026-5450.patch | 132 +++++++++ srcpkgs/glibc/patches/CVE-2026-5928.patch | 111 ++++++++ .../glibc/patches/bp_00_strlen_ifunc.patch | 159 +++++++++++ .../patches/bp_01_riscv_memcpy_ifunc.patch | 55 ++++ srcpkgs/glibc/patches/bp_aarch64_gcs.patch | 214 +++++++++++++++ srcpkgs/glibc/patches/bp_aarch64_malloc.patch | 83 ++++++ srcpkgs/glibc/patches/bp_abilist.patch | 48 ++++ .../patches/bp_getlogin_r_utmp_fallback.patch | 78 ++++++ .../glibc/patches/bp_include_cloexec.patch | 139 ++++++++++ .../patches/bp_include_closexec_pt2.patch | 45 +++ .../glibc/patches/bp_include_openat2.patch | 29 ++ .../patches/bp_ldbl-128ibm_zero_sign.patch | 150 ++++++++++ srcpkgs/glibc/patches/bp_nss_for_fork.patch | 120 ++++++++ srcpkgs/glibc/patches/bp_nss_nullptr.patch | 48 ++++ ...20653724029be89224ed3a35d627cc5b4163.patch | 37 --- ...765522f014daa0392099dd9ba1f7ddcc511d.patch | 53 ---- ...132484ea49be0478e4dcbd108d433d70f64c.patch | 58 ---- srcpkgs/glibc/template | 4 +- 27 files changed, 1678 insertions(+), 653 deletions(-) delete mode 100644 srcpkgs/glibc/patches/2.41-math.patch delete mode 100644 srcpkgs/glibc/patches/30992cb5e9d713ab0f4135dd8776a201f7a53f24.patch delete mode 100644 srcpkgs/glibc/patches/33bfd9020fdad925297c9e133055bd8804028f32.patch delete mode 100644 srcpkgs/glibc/patches/746ef8e93964a99db3e3fa4b8a7aba179185ef0a.patch delete mode 100644 srcpkgs/glibc/patches/98c712855d6606d078aaabaa7ef24b695c3f0349.patch create mode 100644 srcpkgs/glibc/patches/CVE-2026-4046.patch create mode 100644 srcpkgs/glibc/patches/CVE-2026-4437.patch create mode 100644 srcpkgs/glibc/patches/CVE-2026-4438.patch create mode 100644 srcpkgs/glibc/patches/CVE-2026-5450.patch create mode 100644 srcpkgs/glibc/patches/CVE-2026-5928.patch create mode 100644 srcpkgs/glibc/patches/bp_00_strlen_ifunc.patch create mode 100644 srcpkgs/glibc/patches/bp_01_riscv_memcpy_ifunc.patch create mode 100644 srcpkgs/glibc/patches/bp_aarch64_gcs.patch create mode 100644 srcpkgs/glibc/patches/bp_aarch64_malloc.patch create mode 100644 srcpkgs/glibc/patches/bp_abilist.patch create mode 100644 srcpkgs/glibc/patches/bp_getlogin_r_utmp_fallback.patch create mode 100644 srcpkgs/glibc/patches/bp_include_cloexec.patch create mode 100644 srcpkgs/glibc/patches/bp_include_closexec_pt2.patch create mode 100644 srcpkgs/glibc/patches/bp_include_openat2.patch create mode 100644 srcpkgs/glibc/patches/bp_ldbl-128ibm_zero_sign.patch create mode 100644 srcpkgs/glibc/patches/bp_nss_for_fork.patch create mode 100644 srcpkgs/glibc/patches/bp_nss_nullptr.patch delete mode 100644 srcpkgs/glibc/patches/cb7f20653724029be89224ed3a35d627cc5b4163.patch delete mode 100644 srcpkgs/glibc/patches/ce9b765522f014daa0392099dd9ba1f7ddcc511d.patch delete mode 100644 srcpkgs/glibc/patches/e22c132484ea49be0478e4dcbd108d433d70f64c.patch diff --git a/common/shlibs b/common/shlibs index 7d054d773f6672..d04d9989e8f947 100644 --- a/common/shlibs +++ b/common/shlibs @@ -19,36 +19,36 @@ libc.so musl1.1-1.1.24_8 armv6l-musl libc.so musl1.1-1.1.24_8 armv7l-musl libc.so musl-1.2.5_1 -libc.so.6 glibc-2.41_1 -libm.so.6 glibc-2.41_1 -libpthread.so.0 glibc-2.41_1 -librt.so.1 glibc-2.41_1 -libdl.so.2 glibc-2.41_1 -ld-linux-x86-64.so.2 glibc-2.41_1 x86_64 -ld-linux.so.2 glibc-2.41_1 i686 -ld-linux.so.3 glibc-2.41_1 armv5tel -ld-linux-aarch64.so.1 glibc-2.41_1 aarch64 -ld-linux-riscv64-lp64d.so.1 glibc-2.41_1 riscv64 -ld64.so.2 glibc-2.41_1 ppc64 -ld.so.1 glibc-2.41_1 mips -ld.so.1 glibc-2.41_1 ppc -ld-linux-armhf.so.3 glibc-2.41_1 -libresolv.so.2 glibc-2.41_1 -libanl.so.1 glibc-2.41_1 -libthread_db.so.1 glibc-2.41_1 -libutil.so.1 glibc-2.41_1 -libnsl.so.1 glibc-2.41_1 -libnss_db.so.2 glibc-2.41_1 -libnss_files.so.2 glibc-2.41_1 -libnss_compat.so.2 glibc-2.41_1 -libnss_dns.so.2 glibc-2.41_1 -libnss_hesiod.so.2 glibc-2.41_1 -libBrokenLocale.so.1 glibc-2.41_1 -libmemusage.so glibc-2.41_1 -libSegFault.so glibc-2.41_1 -libpcprofile.so glibc-2.41_1 -libcidn.so.1 glibc-2.41_1 -libmvec.so.1 glibc-2.41_1 +libc.so.6 glibc-2.43_1 +libm.so.6 glibc-2.43_1 +libpthread.so.0 glibc-2.43_1 +librt.so.1 glibc-2.43_1 +libdl.so.2 glibc-2.43_1 +ld-linux-x86-64.so.2 glibc-2.43_1 x86_64 +ld-linux.so.2 glibc-2.43_1 i686 +ld-linux.so.3 glibc-2.43_1 armv5tel +ld-linux-aarch64.so.1 glibc-2.43_1 aarch64 +ld-linux-riscv64-lp64d.so.1 glibc-2.43_1 riscv64 +ld64.so.2 glibc-2.43_1 ppc64 +ld.so.1 glibc-2.43_1 mips +ld.so.1 glibc-2.43_1 ppc +ld-linux-armhf.so.3 glibc-2.43_1 +libresolv.so.2 glibc-2.43_1 +libanl.so.1 glibc-2.43_1 +libthread_db.so.1 glibc-2.43_1 +libutil.so.1 glibc-2.43_1 +libnsl.so.1 glibc-2.43_1 +libnss_db.so.2 glibc-2.43_1 +libnss_files.so.2 glibc-2.43_1 +libnss_compat.so.2 glibc-2.43_1 +libnss_dns.so.2 glibc-2.43_1 +libnss_hesiod.so.2 glibc-2.43_1 +libBrokenLocale.so.1 glibc-2.43_1 +libmemusage.so glibc-2.43_1 +libSegFault.so glibc-2.43_1 +libpcprofile.so glibc-2.43_1 +libcidn.so.1 glibc-2.43_1 +libmvec.so.1 glibc-2.43_1 libcrypt.so.2 libxcrypt-4.4.36_1 libcrypt.so.1 libxcrypt-compat-4.4.36_1 libSimGearCore.so.2024.1.3 simgear-2024.1.3_1 diff --git a/srcpkgs/glibc/patches/2.41-math.patch b/srcpkgs/glibc/patches/2.41-math.patch deleted file mode 100644 index d42b96f4eb5956..00000000000000 --- a/srcpkgs/glibc/patches/2.41-math.patch +++ /dev/null @@ -1,259 +0,0 @@ -From bdccbfbc52d3f6957768a0b9d5bd7bc4c90f2744 Mon Sep 17 00:00:00 2001 -From: Adhemerval Zanella -Date: Fri, 31 Jan 2025 10:27:39 -0300 -Subject: [PATCH] math: Fix log10p1f internal table value (BZ 32626) - -It was copied wrong from CORE-MATH. - -(cherry picked from commit c79277a16785c8ae96d821414f4d31d654a0177c) ---- - NEWS | 3 ++- - math/auto-libm-test-in | 2 ++ - math/auto-libm-test-out-log10p1 | 25 +++++++++++++++++++++++++ - sysdeps/ieee754/flt-32/s_log10p1f.c | 2 +- - 4 files changed, 30 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/ieee754/flt-32/s_log10p1f.c b/sysdeps/ieee754/flt-32/s_log10p1f.c -index 64deb1eeda5..4e11d55d49a 100644 ---- a/sysdeps/ieee754/flt-32/s_log10p1f.c -+++ b/sysdeps/ieee754/flt-32/s_log10p1f.c -@@ -70,7 +70,7 @@ __log10p1f (float x) - }; - static const double tl[] = - { -- 0x1.562ec497ef351p-43, 0x1.b9476892ea99cp-8, 0x1.b5e909c959eecp-7, -+ -0x1.562ec497ef351p-43, 0x1.b9476892ea99cp-8, 0x1.b5e909c959eecp-7, - 0x1.45f4f59ec84fp-6, 0x1.af5f92cbcf2aap-6, 0x1.0ba01a6069052p-5, - 0x1.3ed119b99dd41p-5, 0x1.714834298a088p-5, 0x1.a30a9d98309c1p-5, - 0x1.d41d51266b9d9p-5, 0x1.02428c0f62dfcp-4, 0x1.1a23444eea521p-4, - -From d85a7719536f4892f2b53d4594e18f6d096c2882 Mon Sep 17 00:00:00 2001 -From: Adhemerval Zanella -Date: Fri, 31 Jan 2025 10:34:32 -0300 -Subject: [PATCH] math: Fix sinhf for some inputs (BZ 32627) - -The logic was copied wrong from CORE-MATH. ---- - math/auto-libm-test-in | 1 + - math/auto-libm-test-out-sinh | 25 +++++++++++++++++++++++++ - sysdeps/ieee754/flt-32/e_sinhf.c | 2 +- - 3 files changed, 27 insertions(+), 1 deletion(-) - -diff --git a/sysdeps/ieee754/flt-32/e_sinhf.c b/sysdeps/ieee754/flt-32/e_sinhf.c -index c007c7d1742..dee96fc7cbf 100644 ---- a/sysdeps/ieee754/flt-32/e_sinhf.c -+++ b/sysdeps/ieee754/flt-32/e_sinhf.c -@@ -83,7 +83,7 @@ __ieee754_sinhf (float x) - { /* |x| <= 0x1.250bfep-11 */ - if (__glibc_unlikely (ux < 0x66000000u)) /* |x| < 0x1p-24 */ - return fmaf (x, fabsf (x), x); -- if (__glibc_unlikely (st.uarg == asuint (ux))) -+ if (__glibc_unlikely (st.uarg == ux)) - { - float sgn = copysignf (1.0f, x); - return sgn * st.rh + sgn * st.rl; - - -From cf88351b685da86667e17d344414a70696ac82f1 Mon Sep 17 00:00:00 2001 -From: Adhemerval Zanella -Date: Sun, 2 Feb 2025 16:57:49 -0300 -Subject: [PATCH] math: Fix tanf for some inputs (BZ 32630) - -The logic was copied wrong from CORE-MATH. - -(cherry picked from commit 09e7f4d594b4308fbea18e3044148d67b59757c9) ---- - NEWS | 2 ++ - math/auto-libm-test-in | 1 + - math/auto-libm-test-out-tan | 25 +++++++++++++++++++++++++ - sysdeps/ieee754/flt-32/s_tanf.c | 2 +- - 4 files changed, 29 insertions(+), 1 deletion(-) - -diff --git a/sysdeps/ieee754/flt-32/s_tanf.c b/sysdeps/ieee754/flt-32/s_tanf.c -index dfe56fc2a0f..5ee1d6f35e7 100644 ---- a/sysdeps/ieee754/flt-32/s_tanf.c -+++ b/sysdeps/ieee754/flt-32/s_tanf.c -@@ -166,7 +166,7 @@ __tanf (float x) - uint32_t sgn = t >> 31; - for (int j = 0; j < array_length (st); j++) - { -- if (__glibc_unlikely (asfloat (st[j].arg) == ax)) -+ if (__glibc_unlikely (asuint (st[j].arg) == ax)) - { - if (sgn) - return -st[j].rh - st[j].rl; - -From 66fc3bd75871d7239245c767abf44fb96d772f66 Mon Sep 17 00:00:00 2001 -From: Aurelien Jarno -Date: Thu, 6 Mar 2025 19:34:15 +0100 -Subject: [PATCH] math: Remove an extra semicolon in math function declarations - -Commit 6bc301672bfbd ("math: Remove __XXX math functions from installed -math.h [BZ #32418]") left an extra semicolon after macro expansion. For -instance the ceil declaration after expansion is: - - extern double ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));; - -This chokes very naive parsers like gauche c-wrapper. Fix that by -removing that extra semicolon in the macro. - -Reviewed-by: Adhemerval Zanella -(cherry picked from commit 443cb0b5f25129dd0f1e9f9101299d31c4700b7f) ---- - math/bits/mathcalls-macros.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/math/bits/mathcalls-macros.h b/math/bits/mathcalls-macros.h -index 1ef07f1f58..321ae00ec8 100644 ---- a/math/bits/mathcalls-macros.h -+++ b/math/bits/mathcalls-macros.h -@@ -34,7 +34,7 @@ - #define __MATHCALLX(function,suffix, args, attrib) \ - __MATHDECLX (_Mdouble_,function,suffix, args, attrib) - #define __MATHDECLX(type, function,suffix, args, attrib) \ -- __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); -+ __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib) - #define __MATHDECL_1_IMPL(type, function, suffix, args) \ - extern type __MATH_PRECNAME(function,suffix) args __THROW - #define __MATHDECL_1(type, function, suffix, args) \ - -From 07288c7445bba747f65380066b1b5bdb2df5b630 Mon Sep 17 00:00:00 2001 -From: John David Anglin -Date: Tue, 25 Feb 2025 15:57:53 -0500 -Subject: [PATCH 11] math: Add optimization barrier to ensure a1 + u.d is - not reused [BZ #30664] - -A number of fma tests started to fail on hppa when gcc was changed to -use Ranger rather than EVRP. Eventually I found that the value of -a1 + u.d in this is block of code was being computed in FE_TOWARDZERO -mode and not the original rounding mode: - - if (TININESS_AFTER_ROUNDING) - { - w.d = a1 + u.d; - if (w.ieee.exponent == 109) - return w.d * 0x1p-108; - } - -This caused the exponent value to be wrong and the wrong return path -to be used. - -Here we add an optimization barrier after the rounding mode is reset -to ensure that the previous value of a1 + u.d is not reused. - -Signed-off-by: John David Anglin ---- - sysdeps/ieee754/dbl-64/s_fma.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/sysdeps/ieee754/dbl-64/s_fma.c b/sysdeps/ieee754/dbl-64/s_fma.c -index 20f617b996e..42351c6b343 100644 ---- a/sysdeps/ieee754/dbl-64/s_fma.c -+++ b/sysdeps/ieee754/dbl-64/s_fma.c -@@ -244,6 +244,9 @@ __fma (double x, double y, double z) - /* Reset rounding mode and test for inexact simultaneously. */ - int j = libc_feupdateenv_test (&env, FE_INEXACT) != 0; - -+ /* Ensure value of a1 + u.d is not reused. */ -+ a1 = math_opt_barrier (a1); -+ - if (__glibc_likely (adjust == 0)) - { - if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7ff) - -From a900dbaf70f0a957f56b52caa69173592ad7596e Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Thu, 20 Feb 2025 07:08:26 +0800 -Subject: [PATCH 09] x86 (__HAVE_FLOAT128): Defined to 0 for Intel SYCL - compiler [BZ #32723] - -Intel compiler always defines __INTEL_LLVM_COMPILER. When SYCL is -enabled by -fsycl, it also defines SYCL_LANGUAGE_VERSION. Since Intel -SYCL compiler doesn't support _Float128: - -https://github.com/intel/llvm/issues/16903 - -define __HAVE_FLOAT128 to 0 for Intel SYCL compiler. - -This fixes BZ #32723. - -Signed-off-by: H.J. Lu -Reviewed-by: Sam James -(cherry picked from commit 5a4573be6f96ff49111bb6cae767676b5aafa7a8) ---- - sysdeps/x86/bits/floatn.h | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h -index d197cb10dde..adc7ed2e9e8 100644 ---- a/sysdeps/x86/bits/floatn.h -+++ b/sysdeps/x86/bits/floatn.h -@@ -25,11 +25,15 @@ - floating-point type with the IEEE 754 binary128 format, and this - glibc includes corresponding *f128 interfaces for it. The required - libgcc support was added some time after the basic compiler -- support, for x86_64 and x86. */ -+ support, for x86_64 and x86. Intel SYCL compiler doesn't support -+ _Float128: https://github.com/intel/llvm/issues/16903 -+ */ - #if (defined __x86_64__ \ - ? __GNUC_PREREQ (4, 3) \ - : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \ -- || __glibc_clang_prereq (3, 4) -+ || (__glibc_clang_prereq (3, 4) \ -+ && (!defined __INTEL_LLVM_COMPILER \ -+ || !defined SYCL_LANGUAGE_VERSION)) - # define __HAVE_FLOAT128 1 - #else - # define __HAVE_FLOAT128 0 - -From 2cb04444b934e000a4e36c1876ef2bf03dd80d66 Mon Sep 17 00:00:00 2001 -From: koraynilay -Date: Sat, 22 Feb 2025 15:55:59 +0100 -Subject: [PATCH 10] math: Fix `unknown type name '__float128'` for clang - 3.4 to 3.8.1 (bug 32694) - -When compiling a program that includes using a clang version -between 3.4 (included) and 3.8.1 (included), clang will fail with `unknown type -name '__float128'; did you mean '__cfloat128'?`. This changes fixes the clang -prerequirements macro call in floatn.h to check for clang 3.9 instead of 3.4, -since support for __float128 was actually enabled in 3.9 by: - -commit 50f29e06a1b6a38f0bba9360cbff72c82d46cdd4 -Author: Nemanja Ivanovic -Date: Wed Apr 13 09:49:45 2016 +0000 - - Enable support for __float128 in Clang - -This fixes bug 32694. - -Signed-off-by: koraynilay -Reviewed-by: H.J. Lu -(cherry picked from commit 29803ed3ce420f01e7c567c97fc8945d5e5e5992) ---- - sysdeps/x86/bits/floatn.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h -index adc7ed2e9e8..4674165bd77 100644 ---- a/sysdeps/x86/bits/floatn.h -+++ b/sysdeps/x86/bits/floatn.h -@@ -31,7 +31,7 @@ - #if (defined __x86_64__ \ - ? __GNUC_PREREQ (4, 3) \ - : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \ -- || (__glibc_clang_prereq (3, 4) \ -+ || (__glibc_clang_prereq (3, 9) \ - && (!defined __INTEL_LLVM_COMPILER \ - || !defined SYCL_LANGUAGE_VERSION)) - # define __HAVE_FLOAT128 1 -@@ -93,7 +93,7 @@ typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); - /* The type _Float128 exists only since GCC 7.0. */ - # if !__GNUC_PREREQ (7, 0) \ - || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \ -- || __glibc_clang_prereq (3, 4) -+ || __glibc_clang_prereq (3, 9) - typedef __float128 _Float128; - # endif - - diff --git a/srcpkgs/glibc/patches/30992cb5e9d713ab0f4135dd8776a201f7a53f24.patch b/srcpkgs/glibc/patches/30992cb5e9d713ab0f4135dd8776a201f7a53f24.patch deleted file mode 100644 index 51fd0dd610ca77..00000000000000 --- a/srcpkgs/glibc/patches/30992cb5e9d713ab0f4135dd8776a201f7a53f24.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 30992cb5e9d713ab0f4135dd8776a201f7a53f24 Mon Sep 17 00:00:00 2001 -From: Yangyu Chen -Date: Tue, 25 Feb 2025 01:12:19 +0800 -Subject: [PATCH] RISC-V: Fix IFUNC resolver cannot access gp pointer - -In some cases, an IFUNC resolver may need to access the gp pointer to -access global variables. Such an object may have l_relocated == 0 at -this time. In this case, an IFUNC resolver will fail to access a global -variable and cause a SIGSEGV. - -This patch fixes this issue by relaxing the check of l_relocated in -elf_machine_runtime_setup, but added a check for SHARED case to avoid -using this code in static-linked executables. Such object have already -set up the gp pointer in load_gp function and l->l_scope will be NULL if -it is a pie object. So if we use these code to set up the gp pointer -again for static-pie, it will causing a SIGSEGV in glibc as original bug -on BZ #31317. - -I have also reproduced and checked BZ #31317 using the mold commit -bed5b1731b ("illumos: Treat absolute symbols specially"), this patch can -fix the issue. - -Also, we used the wrong gp pointer previously because ref->st_value is -not the relocated address but just the offset from the base address of -ELF. An edge case may happen if we reference gp pointer in a IFUNC -resolver in a PIE object, but it will not happen in compiler-generated -codes since -pie will disable relax to gp. In this case, the GP will be -initialized incorrectly since the ref->st_value is not the address after -relocation. This patch fixes this issue by adding the l->l_addr to -ref->st_value to get the relocated address for the gp pointer. We don't -use SYMBOL_ADDRESS macro here because __global_pointer$ is a special -symbol that has SHN_ABS type, but it will use PC-relative addressing in -the load_gp function using lla. - -Closes: BZ #32269 -Fixes: 96d1b9ac23 ("RISC-V: Fix the static-PIE non-relocated object check") - -Co-authored-by: Vivian Wang -Signed-off-by: Yangyu Chen -(cherry picked from commit 3fd2ff7685e3ee85c8cd2896f28ad62f67d7c483) ---- - NEWS | 1 + - sysdeps/riscv/dl-machine.h | 17 +++++++++++------ - 2 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/sysdeps/riscv/dl-machine.h b/sysdeps/riscv/dl-machine.h -index a30892f080..dcc3e0883b 100644 ---- a/sysdeps/riscv/dl-machine.h -+++ b/sysdeps/riscv/dl-machine.h -@@ -348,7 +348,8 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[], - gotplt[1] = (ElfW(Addr)) l; - } - -- if (l->l_type == lt_executable && l->l_relocated) -+#ifdef SHARED -+ if (l->l_type == lt_executable) - { - /* The __global_pointer$ may not be defined by the linker if the - $gp register does not be used to access the global variable -@@ -362,12 +363,16 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[], - _dl_lookup_symbol_x ("__global_pointer$", l, &ref, - l->l_scope, NULL, 0, 0, NULL); - if (ref) -- asm ( -- "mv gp, %0\n" -- : -- : "r" (ref->st_value) -- ); -+ asm ( -+ "mv gp, %0\n" -+ : -+ : "r" (ref->st_value + l->l_addr) -+ /* Don't use SYMBOL_ADDRESS here since __global_pointer$ -+ can be SHN_ABS type, but we need the address relative to -+ PC, not the absolute address. */ -+ ); - } -+#endif - #endif - return lazy; - } diff --git a/srcpkgs/glibc/patches/33bfd9020fdad925297c9e133055bd8804028f32.patch b/srcpkgs/glibc/patches/33bfd9020fdad925297c9e133055bd8804028f32.patch deleted file mode 100644 index 726b245c595f04..00000000000000 --- a/srcpkgs/glibc/patches/33bfd9020fdad925297c9e133055bd8804028f32.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 33bfd9020fdad925297c9e133055bd8804028f32 Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Wed, 12 Mar 2025 10:23:47 +0100 -Subject: [PATCH] Linux: Remove attribute access from sched_getattr (bug 32781) - -The GCC attribute expects an element count, not bytes. - -(cherry picked from commit 74c68fa61b5ebf4c64605a3cc5e47154a66671ce) ---- - NEWS | 1 + - sysdeps/unix/sysv/linux/bits/sched.h | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h -index 3656e98eda..39b0b3d19c 100644 ---- a/sysdeps/unix/sysv/linux/bits/sched.h -+++ b/sysdeps/unix/sysv/linux/bits/sched.h -@@ -152,7 +152,7 @@ int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) - store it in *ATTR. */ - int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, - unsigned int flags) -- __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); -+ __THROW __nonnull ((2)); - - #endif - diff --git a/srcpkgs/glibc/patches/746ef8e93964a99db3e3fa4b8a7aba179185ef0a.patch b/srcpkgs/glibc/patches/746ef8e93964a99db3e3fa4b8a7aba179185ef0a.patch deleted file mode 100644 index 40f6b05b9aad96..00000000000000 --- a/srcpkgs/glibc/patches/746ef8e93964a99db3e3fa4b8a7aba179185ef0a.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 746ef8e93964a99db3e3fa4b8a7aba179185ef0a Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Wed, 5 Mar 2025 10:19:59 +0800 -Subject: [PATCH] static-pie: Skip the empty PT_LOAD segment at offset 0 [BZ - #32763] - -As shown in - -https://sourceware.org/bugzilla/show_bug.cgi?id=25237 - -linker may generate an empty PT_LOAD segments at offset 0: - -Elf file type is EXEC (Executable file) -Entry point 0x4000e8 -There are 3 program headers, starting at offset 64 - -Program Headers: - Type Offset VirtAddr PhysAddr - FileSiz MemSiz Flags Align - LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000 - 0x00000000000000f0 0x00000000000000f0 R E 0x1000 - LOAD 0x0000000000000000 0x0000000000410000 0x0000000000410000 - 0x0000000000000000 0x0000000000b5dce8 RW 0x10000 - GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 - 0x0000000000000000 0x0000000000000000 RW 0x10 - - Section to Segment mapping: - Segment Sections... - 00 .text - 01 .bss - 02 - -Skip the empty PT_LOAD segment at offset 0 to support such binaries. -This fixes BZ #32763. - -Signed-off-by: H.J. Lu -Reviewed-by: Sam James -(cherry picked from commit 596130591ae4b058a529cc1318b95e624559054c) ---- - elf/Makefile | 5 +++++ - elf/dl-reloc-static-pie.c | 3 ++- - elf/tst-pie-bss-static.c | 19 +++++++++++++++++++ - elf/tst-pie-bss.c | 30 ++++++++++++++++++++++++++++++ - 4 files changed, 56 insertions(+), 1 deletion(-) - create mode 100644 elf/tst-pie-bss-static.c - create mode 100644 elf/tst-pie-bss.c - -diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c -index e34bf5f7ce..758bf9893e 100644 ---- a/elf/dl-reloc-static-pie.c -+++ b/elf/dl-reloc-static-pie.c -@@ -51,7 +51,8 @@ _dl_relocate_static_pie (void) - switch (ph->p_type) - { - case PT_LOAD: -- if (ph->p_offset == 0) -+ /* Skip the empty PT_LOAD segment at offset 0. */ -+ if (ph->p_filesz != 0 && ph->p_offset == 0) - file_p_vaddr = ph->p_vaddr; - break; - case PT_DYNAMIC: diff --git a/srcpkgs/glibc/patches/98c712855d6606d078aaabaa7ef24b695c3f0349.patch b/srcpkgs/glibc/patches/98c712855d6606d078aaabaa7ef24b695c3f0349.patch deleted file mode 100644 index 0e67b8943f8476..00000000000000 --- a/srcpkgs/glibc/patches/98c712855d6606d078aaabaa7ef24b695c3f0349.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 98c712855d6606d078aaabaa7ef24b695c3f0349 Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Thu, 13 Mar 2025 06:07:07 +0100 -Subject: [PATCH] nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 - versions (bug 32786) - -The new initializer and struct layout does not initialize the -__g_signals field in the old struct layout before the change in -commit c36fc50781995e6758cae2b6927839d0157f213c ("nptl: Remove -g_refs from condition variables"). Bring back fields at the end -of struct __pthread_cond_s, so that they are again zero-initialized. - -Reviewed-by: Sam James -(cherry picked from commit dbc5a50d12eff4cb3f782129029d04b8a76f58e7) ---- - NEWS | 1 + - sysdeps/nptl/bits/thread-shared-types.h | 2 ++ - sysdeps/nptl/pthread.h | 2 +- - 3 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h -index 7c24c0a6be..e614c7f3c9 100644 ---- a/sysdeps/nptl/bits/thread-shared-types.h -+++ b/sysdeps/nptl/bits/thread-shared-types.h -@@ -99,6 +99,8 @@ struct __pthread_cond_s - unsigned int __g1_orig_size; - unsigned int __wrefs; - unsigned int __g_signals[2]; -+ unsigned int __unused_initialized_1; -+ unsigned int __unused_initialized_2; - }; - - typedef unsigned int __tss_t; -diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h -index 050b4ab8d1..9ad36cabe9 100644 ---- a/sysdeps/nptl/pthread.h -+++ b/sysdeps/nptl/pthread.h -@@ -152,7 +152,7 @@ enum - - - /* Conditional variable handling. */ --#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0} } } -+#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } } - - - /* Cleanup buffers */ diff --git a/srcpkgs/glibc/patches/CVE-2026-4046.patch b/srcpkgs/glibc/patches/CVE-2026-4046.patch new file mode 100644 index 00000000000000..169edee3ca5073 --- /dev/null +++ b/srcpkgs/glibc/patches/CVE-2026-4046.patch @@ -0,0 +1,150 @@ +From 8362e8ce10b24068bacc19552c128dd10e082fd9 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Thu, 16 Apr 2026 19:13:43 +0200 +Subject: [PATCH] Use pending character state in IBM1390, IBM1399 character + sets (CVE-2026-4046) + +Follow the example in iso-2022-jp-3.c and use the __count state +variable to store the pending character. This avoids restarting +the conversion if the output buffer ends between two 4-byte UCS-4 +code points, so that the assert reported in the bug can no longer +happen. + +Even though the fix is applied to ibm1364.c, the change is only +effective for the two HAS_COMBINED codecs for IBM1390, IBM1399. + +The test case was mostly auto-generated using +claude-4.6-opus-high-thinking, and composer-2-fast shows up in the +log as well. During review, gpt-5.4-xhigh flagged that the original +version of the test case was not exercising the new character +flush logic. + +This fixes bug 33980. + +Assisted-by: LLM +Reviewed-by: Carlos O'Donell +(cherry picked from commit d6f08d1cf027f4eb2ba289a6cc66853722d4badc) +--- + iconvdata/Makefile | 4 +- + iconvdata/ibm1364.c | 70 ++++++++++++++---- + iconvdata/tst-bug33980.c | 153 +++++++++++++++++++++++++++++++++++++++ + 3 files changed, 211 insertions(+), 16 deletions(-) + create mode 100644 iconvdata/tst-bug33980.c + +diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c +index 4f41f22c12..8df66ea048 100644 +--- a/iconvdata/ibm1364.c ++++ b/iconvdata/ibm1364.c +@@ -67,12 +67,29 @@ + + /* Since this is a stateful encoding we have to provide code which resets + the output state to the initial state. This has to be done during the +- flushing. */ ++ flushing. For the to-internal direction (FROM_DIRECTION is true), ++ there may be a pending character that needs flushing. */ + #define EMIT_SHIFT_TO_INIT \ + if ((data->__statep->__count & ~7) != sb) \ + { \ + if (FROM_DIRECTION) \ +- data->__statep->__count &= 7; \ ++ { \ ++ uint32_t ch = data->__statep->__count >> 7; \ ++ if (__glibc_unlikely (ch != 0)) \ ++ { \ ++ if (__glibc_unlikely (outend - outbuf < 4)) \ ++ status = __GCONV_FULL_OUTPUT; \ ++ else \ ++ { \ ++ put32 (outbuf, ch); \ ++ outbuf += 4; \ ++ /* Clear character and db bit. */ \ ++ data->__statep->__count &= 7; \ ++ } \ ++ } \ ++ else \ ++ data->__statep->__count &= 7; \ ++ } \ + else \ + { \ + /* We are not in the initial state. To switch back we have \ +@@ -99,11 +116,13 @@ + *curcsp = save_curcs + + +-/* Current codeset type. */ ++/* Current codeset type. The bit is stored in the __count variable of ++ the conversion state. If the db bit is set, bit 7 and above store ++ a pending UCS-4 code point if non-zero. */ + enum + { +- sb = 0, +- db = 64 ++ sb = 0, /* Single byte mode. */ ++ db = 64 /* Double byte mode. */ + }; + + +@@ -119,21 +138,29 @@ enum + } \ + else \ + { \ +- /* This is a combined character. Make sure we have room. */ \ +- if (__glibc_unlikely (outptr + 8 > outend)) \ +- { \ +- result = __GCONV_FULL_OUTPUT; \ +- break; \ +- } \ +- \ + const struct divide *cmbp \ + = &DB_TO_UCS4_COMB[ch - __TO_UCS4_COMBINED_MIN]; \ + assert (cmbp->res1 != 0 && cmbp->res2 != 0); \ + \ + put32 (outptr, cmbp->res1); \ + outptr += 4; \ +- put32 (outptr, cmbp->res2); \ +- outptr += 4; \ ++ \ ++ /* See whether we have room for the second character. */ \ ++ if (outend - outptr >= 4) \ ++ { \ ++ put32 (outptr, cmbp->res2); \ ++ outptr += 4; \ ++ } \ ++ else \ ++ { \ ++ /* Otherwise store only the first character now, and \ ++ put the second one into the queue. */ \ ++ curcs |= cmbp->res2 << 7; \ ++ inptr += 2; \ ++ /* Tell the caller why we terminate the loop. */ \ ++ result = __GCONV_FULL_OUTPUT; \ ++ break; \ ++ } \ + } \ + } + #else +@@ -153,7 +180,20 @@ enum + #define LOOPFCT FROM_LOOP + #define BODY \ + { \ +- uint32_t ch = *inptr; \ ++ uint32_t ch; \ ++ \ ++ ch = curcs >> 7; \ ++ if (__glibc_unlikely (ch != 0)) \ ++ { \ ++ put32 (outptr, ch); \ ++ outptr += 4; \ ++ /* Remove the pending character, but preserve state bits. */ \ ++ curcs &= (1 << 7) - 1; \ ++ continue; \ ++ } \ ++ \ ++ /* Otherwise read the next input byte. */ \ ++ ch = *inptr; \ + \ + if (__builtin_expect (ch, 0) == SO) \ + { \ +-- +GitLab + diff --git a/srcpkgs/glibc/patches/CVE-2026-4437.patch b/srcpkgs/glibc/patches/CVE-2026-4437.patch new file mode 100644 index 00000000000000..e1960e8bf11062 --- /dev/null +++ b/srcpkgs/glibc/patches/CVE-2026-4437.patch @@ -0,0 +1,45 @@ +From 5c6fca0c62ce5bd6e68e259f138097756cbafd4d Mon Sep 17 00:00:00 2001 +From: Carlos O'Donell +Date: Fri, 20 Mar 2026 16:43:33 -0400 +Subject: [PATCH] resolv: Count records correctly (CVE-2026-4437) + +The answer section boundary was previously ignored, and the code in +getanswer_ptr would iterate past the last resource record, but not +beyond the end of the returned data. This could lead to subsequent data +being interpreted as answer records, thus violating the DNS +specification. Such resource records could be maliciously crafted and +hidden from other tooling, but processed by the glibc stub resolver and +acted upon by the application. While we trust the data returned by the +configured recursive resolvers, we should not trust its format and +should validate it as required. It is a security issue to incorrectly +process the DNS protocol. + +A regression test is added for response section crossing. + +No regressions on x86_64-linux-gnu. + +Reviewed-by: Collin Funk +(cherry picked from commit 9f5f18aab40ec6b61fa49a007615e6077e9a979b) +--- + resolv/Makefile | 4 + + resolv/nss_dns/dns-host.c | 2 +- + resolv/tst-resolv-dns-section.c | 162 ++++++++++++++++++++++++++++++++ + 3 files changed, 167 insertions(+), 1 deletion(-) + create mode 100644 resolv/tst-resolv-dns-section.c + +diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +index 6a60c87532..893137027e 100644 +--- a/resolv/nss_dns/dns-host.c ++++ b/resolv/nss_dns/dns-host.c +@@ -820,7 +820,7 @@ getanswer_ptr (unsigned char *packet, size_t packetlen, + /* expected_name may be updated to point into this buffer. */ + unsigned char name_buffer[NS_MAXCDNAME]; + +- while (ancount > 0) ++ for (; ancount > 0; --ancount) + { + struct ns_rr_wire rr; + if (!__ns_rr_cursor_next (&c, &rr)) +-- +GitLab + diff --git a/srcpkgs/glibc/patches/CVE-2026-4438.patch b/srcpkgs/glibc/patches/CVE-2026-4438.patch new file mode 100644 index 00000000000000..fb64a515b84d4f --- /dev/null +++ b/srcpkgs/glibc/patches/CVE-2026-4438.patch @@ -0,0 +1,40 @@ +From dd9945c0ba40d2dbc9eb7c99291ba6b69bd66718 Mon Sep 17 00:00:00 2001 +From: Carlos O'Donell +Date: Fri, 20 Mar 2026 17:14:33 -0400 +Subject: [PATCH] resolv: Check hostname for validity (CVE-2026-4438) + +The processed hostname in getanswer_ptr should be correctly checked to +avoid invalid characters from being allowed, including shell +metacharacters. It is a security issue to fail to check the returned +hostname for validity. + +A regression test is added for invalid metacharacters and other cases +of invalid or valid characters. + +No regressions on x86_64-linux-gnu. + +Reviewed-by: Adhemerval Zanella +(cherry picked from commit e10977481f4db4b2a3ce34fa4c3a1e26651ae312) +--- + resolv/Makefile | 3 + + resolv/nss_dns/dns-host.c | 2 +- + resolv/tst-resolv-invalid-ptr.c | 255 ++++++++++++++++++++++++++++++++ + 3 files changed, 259 insertions(+), 1 deletion(-) + create mode 100644 resolv/tst-resolv-invalid-ptr.c + +diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +index 893137027e..728dae615d 100644 +--- a/resolv/nss_dns/dns-host.c ++++ b/resolv/nss_dns/dns-host.c +@@ -866,7 +866,7 @@ getanswer_ptr (unsigned char *packet, size_t packetlen, + char hname[MAXHOSTNAMELEN + 1]; + if (__ns_name_unpack (c.begin, c.end, rr.rdata, + name_buffer, sizeof (name_buffer)) < 0 +- || !__res_binary_hnok (expected_name) ++ || !__res_binary_hnok (name_buffer) + || __ns_name_ntop (name_buffer, hname, sizeof (hname)) < 0) + { + *h_errnop = NO_RECOVERY; +-- +GitLab + diff --git a/srcpkgs/glibc/patches/CVE-2026-5450.patch b/srcpkgs/glibc/patches/CVE-2026-5450.patch new file mode 100644 index 00000000000000..743647ea173122 --- /dev/null +++ b/srcpkgs/glibc/patches/CVE-2026-5450.patch @@ -0,0 +1,132 @@ +From 4070d808bea1c077eb7e7d52b52b91cae98205d5 Mon Sep 17 00:00:00 2001 +From: Rocket Ma +Date: Fri, 17 Apr 2026 23:48:41 -0700 +Subject: [PATCH] stdio-common: Fix buffer overflow in scanf %mc [BZ #34008] + +* stdio-common/vfscanf-internal.c: When enlarging allocated buffer with +format %mc or %mC, glibc allocates one byte less, leading to +user-controlled one byte overflow. This commit fixes BZ #34008, or +CVE-2026-5450. + +Reviewed-by: Carlos O'Donell +Signed-off-by: Rocket Ma +Reviewed-by: H.J. Lu +(cherry picked from commit 839898777226a3ed88c0859f25ffe712519b4ead) +--- + stdio-common/Makefile | 4 +++ + stdio-common/tst-vfscanf-bz34008.c | 48 ++++++++++++++++++++++++++++++ + stdio-common/vfscanf-internal.c | 7 ++--- + 3 files changed, 55 insertions(+), 4 deletions(-) + create mode 100644 stdio-common/tst-vfscanf-bz34008.c + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 210944837e..0c0085e607 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -349,6 +349,7 @@ tests := \ + tst-vfprintf-user-type \ + tst-vfprintf-width-i18n \ + tst-vfprintf-width-prec-alloc \ ++ tst-vfscanf-bz34008 \ + tst-wc-printf \ + tstdiomisc \ + tstgetln \ +@@ -564,6 +565,9 @@ tst-printf-bz18872-ENV = MALLOC_TRACE=$(objpfx)tst-printf-bz18872.mtrace \ + tst-vfprintf-width-prec-ENV = \ + MALLOC_TRACE=$(objpfx)tst-vfprintf-width-prec.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so ++tst-vfscanf-bz34008-ENV = \ ++ MALLOC_CHECK_=3 \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + tst-printf-bz25691-ENV = \ + MALLOC_TRACE=$(objpfx)tst-printf-bz25691.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so +diff --git a/stdio-common/tst-vfscanf-bz34008.c b/stdio-common/tst-vfscanf-bz34008.c +new file mode 100644 +index 0000000000..48371c8a3d +--- /dev/null ++++ b/stdio-common/tst-vfscanf-bz34008.c +@@ -0,0 +1,48 @@ ++/* Regression test for vfscanf %Nmc out-of-bound write (BZ #34008) ++ Copyright (C) 2026 The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "malloc/mcheck.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define WIDTH 0x410 ++#define SCANFSTR "%1040mc" ++static int ++do_test (void) ++{ ++ mcheck_pedantic (NULL); ++ char *input = malloc (WIDTH + 1); ++ TEST_VERIFY (input != NULL); ++ memset (input, 'A', WIDTH); ++ input[WIDTH] = '\0'; ++ ++ char *buf = NULL; ++ TEST_VERIFY (sscanf (input, SCANFSTR, &buf) != -1); ++ TEST_VERIFY (buf != NULL); ++ ++ free (buf); ++ free (input); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c +index 63b9246e47..8687150dff 100644 +--- a/stdio-common/vfscanf-internal.c ++++ b/stdio-common/vfscanf-internal.c +@@ -862,8 +862,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr, + { + /* Enlarge the buffer. */ + size_t newsize +- = strsize +- + (strsize >= width ? width - 1 : strsize); ++ = strsize + (strsize >= width ? width : strsize); + + str = (char *) realloc (*strptr, newsize); + if (str == NULL) +@@ -936,7 +935,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr, + && wstr == (wchar_t *) *strptr + strsize) + { + size_t newsize +- = strsize + (strsize > width ? width - 1 : strsize); ++ = strsize + (strsize >= width ? width : strsize); + /* Enlarge the buffer. */ + wstr = (wchar_t *) realloc (*strptr, + newsize * sizeof (wchar_t)); +@@ -991,7 +990,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr, + && wstr == (wchar_t *) *strptr + strsize) + { + size_t newsize +- = strsize + (strsize > width ? width - 1 : strsize); ++ = strsize + (strsize >= width ? width : strsize); + /* Enlarge the buffer. */ + wstr = (wchar_t *) realloc (*strptr, + newsize * sizeof (wchar_t)); +-- +GitLab + diff --git a/srcpkgs/glibc/patches/CVE-2026-5928.patch b/srcpkgs/glibc/patches/CVE-2026-5928.patch new file mode 100644 index 00000000000000..9e2d8526dec661 --- /dev/null +++ b/srcpkgs/glibc/patches/CVE-2026-5928.patch @@ -0,0 +1,111 @@ +From 2890b35cd361df2517525bf2c5f8c63f6f0d4a20 Mon Sep 17 00:00:00 2001 +From: Rocket Ma +Date: Fri, 1 May 2026 20:39:07 -0700 +Subject: [PATCH] libio: Fix ungetwc operating on byte stream [BZ #33998] + +* libio/wgenops.c: When _IO_wdefault_pbackfail attempts to push back one +character, it accidently compare the wchar to push back with the last +char from byte stream, instead of wide stream. Under specific coding, +attacker may exploit this to leak information. This commit fix bug +33998, or CVE-2026-5928. + +Signed-off-by: Rocket Ma +Reviewed-by: Carlos O'Donell +(cherry picked from commit ef3bfb5f910011f3780cb06aa47e730035f53285) +--- + libio/Makefile | 1 + + libio/bug-wgenops-bz33998.c | 54 +++++++++++++++++++++++++++++++++++++ + libio/wgenops.c | 4 +-- + 3 files changed, 57 insertions(+), 2 deletions(-) + create mode 100644 libio/bug-wgenops-bz33998.c + +diff --git a/libio/Makefile b/libio/Makefile +index 4f4dd9f275..5995adf5dd 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -84,6 +84,7 @@ tests = \ + bug-ungetwc1 \ + bug-ungetwc2 \ + bug-wfflush \ ++ bug-wgenops-bz33998 \ + bug-wmemstream1 \ + bug-wsetpos \ + test-fmemopen \ +diff --git a/libio/bug-wgenops-bz33998.c b/libio/bug-wgenops-bz33998.c +new file mode 100644 +index 0000000000..cc4067da99 +--- /dev/null ++++ b/libio/bug-wgenops-bz33998.c +@@ -0,0 +1,54 @@ ++/* Regression test for ungetwc operating on byte stream (BZ #33998) ++ Copyright (C) 2026 The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "support/temp_file.h" ++#include "support/xstdio.h" ++#include "support/xunistd.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char *filename; ++ int fd = create_temp_file ("tst-bz33998-", &filename); ++ TEST_VERIFY (fd != -1); ++ xwrite (fd, "A", sizeof ("A")); // write "A\0" by design ++ xclose (fd); ++ ++ FILE *fp = xfopen (filename, "r+"); ++ TEST_COMPARE (getwc (fp), L'A'); ++ /* If the bug is fixed, then ungetwc should not touch byte stream. ++ If the bug is not fixed, ungetwc firstly match last read char, L'A', ++ failed, then the pbackfail branch, matching last read char in byte ++ stream, that is, '\0' (initialized when setup wide stream). */ ++ char *old_read_ptr = fp->_IO_read_ptr; ++ TEST_COMPARE (ungetwc (L'\0', fp), L'\0'); ++ TEST_VERIFY (fp->_IO_read_ptr == old_read_ptr); ++ ++ xfclose (fp); ++ free (filename); ++ ++ return 0; ++} ++ ++#include +diff --git a/libio/wgenops.c b/libio/wgenops.c +index 7a8466ea44..7c47459828 100644 +--- a/libio/wgenops.c ++++ b/libio/wgenops.c +@@ -108,8 +108,8 @@ _IO_wdefault_pbackfail (FILE *fp, wint_t c) + { + if (fp->_wide_data->_IO_read_ptr > fp->_wide_data->_IO_read_base + && !_IO_in_backup (fp) +- && (wint_t) fp->_IO_read_ptr[-1] == c) +- --fp->_IO_read_ptr; ++ && (wint_t) fp->_wide_data->_IO_read_ptr[-1] == c) ++ --fp->_wide_data->_IO_read_ptr; + else + { + /* Need to handle a filebuf in write mode (switch to read mode). FIXME!*/ +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_00_strlen_ifunc.patch b/srcpkgs/glibc/patches/bp_00_strlen_ifunc.patch new file mode 100644 index 00000000000000..39d548e0ed1b84 --- /dev/null +++ b/srcpkgs/glibc/patches/bp_00_strlen_ifunc.patch @@ -0,0 +1,159 @@ +From 02ffd413cf83c07c5c419b5cba72990e1ed140ca Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella +Date: Thu, 12 Feb 2026 09:48:53 -0300 +Subject: [PATCH] elf: Use dl-symbol-redir-ifunc.h instead _dl_strlen + +Also replace the loop with strlen And remove +-fno-tree-loop-distribute-patterns usage. + +It requires redirect the strlen to the baseline implementation +for x86_64, aarch64, and loongarch64. + +Checked on x86_64-linux-gnu{-v2,v3} and aarch64-linux-gnu with +both gcc-15 and clang-21. + +Reviewed-by: DJ Delorie +(cherry picked from commit 15cc350e507101ac7b01e1343ac55087a6cd9317) +--- + elf/Makefile | 6 ------ + elf/dl-tunables.c | 14 +------------- + string/Makefile | 1 + + sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h | 1 + + sysdeps/aarch64/multiarch/strlen_generic.S | 4 ++++ + .../lp64/multiarch/dl-symbol-redir-ifunc.h | 1 + + sysdeps/unix/sysv/linux/riscv/multiarch/Makefile | 2 ++ + sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h | 10 ++++++++++ + 8 files changed, 20 insertions(+), 19 deletions(-) + +diff --git a/elf/Makefile b/elf/Makefile +index 01cc51636e..11029be0ae 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -97,12 +97,6 @@ ifeq (yesyes,$(build-shared)$(run-built-tests)) + tests-special += $(objpfx)list-tunables.out + endif + +-# Make sure that the compiler does not insert any library calls in tunables +-# code paths. +-ifeq (yes,$(have-loop-to-function)) +-CFLAGS-dl-tunables.c += -fno-tree-loop-distribute-patterns +-endif +- + all-dl-routines = $(dl-routines) $(sysdep-dl-routines) + # But they are absent from the shared libc, because that code is in ld.so. + elide-routines.os = \ +diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c +index 37ade374c6..bdb1de4ceb 100644 +--- a/elf/dl-tunables.c ++++ b/elf/dl-tunables.c +@@ -37,16 +37,6 @@ + #define TUNABLES_INTERNAL 1 + #include "dl-tunables.h" + +-/* The function might be called before the process is self-relocated. */ +-static size_t +-__attribute_optimization_barrier__ +-_dl_strlen (const char *s) +-{ +- const char *p = s; +- for (; *s != '\0'; s++); +- return s - p; +-} +- + static char ** + get_next_env (char **envp, char **name, char **val, char ***prev_envp) + { +@@ -335,10 +325,8 @@ __tunables_init (char **envp) + if (tunable_is_name (name, envname)) + { + /* The environment variable is always null-terminated. */ +- size_t envvallen = _dl_strlen (envval); +- + tunables_env_alias[i] = +- (struct tunable_toset_t) { cur, envval, envvallen }; ++ (struct tunable_toset_t) { cur, envval, strlen (envval) }; + break; + } + } +diff --git a/string/Makefile b/string/Makefile +index c4423c0437..aa0b0c2f57 100644 +--- a/string/Makefile ++++ b/string/Makefile +@@ -286,6 +286,7 @@ CFLAGS-wordcopy.c += $(no-stack-protector) + # Called during static initialization + CFLAGS-strncmp.c += $(no-stack-protector) + CFLAGS-memset.c += $(no-stack-protector) ++CFLAGS-strlen.c += $(no-stack-protector) + + ifeq ($(run-built-tests),yes) + $(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out +diff --git a/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h +index 647bdd66dd..9f772614bf 100644 +--- a/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h ++++ b/sysdeps/aarch64/multiarch/dl-symbol-redir-ifunc.h +@@ -20,5 +20,6 @@ + #define _DL_IFUNC_GENERIC_H + + asm ("memset = __memset_generic"); ++asm ("strlen = __strlen_generic"); + + #endif +diff --git a/sysdeps/aarch64/multiarch/strlen_generic.S b/sysdeps/aarch64/multiarch/strlen_generic.S +index cb9d5759ac..a362328142 100644 +--- a/sysdeps/aarch64/multiarch/strlen_generic.S ++++ b/sysdeps/aarch64/multiarch/strlen_generic.S +@@ -40,3 +40,7 @@ + #endif + + #include "../strlen.S" ++ ++#if IS_IN (rtld) ++strong_alias (strlen, __strlen_generic) ++#endif +diff --git a/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h +index 9fdd039da0..8af00d2846 100644 +--- a/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h ++++ b/sysdeps/loongarch/lp64/multiarch/dl-symbol-redir-ifunc.h +@@ -22,6 +22,7 @@ + #ifndef SHARED + asm ("memset = __memset_aligned"); + asm ("memcmp = __memcmp_aligned"); ++asm ("strlen = __strlen_aligned"); + #endif + + #endif +diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile b/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile +index 1d26966ded..a865090a53 100644 +--- a/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile ++++ b/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile +@@ -9,4 +9,6 @@ sysdep_routines += \ + # sysdep_routines + + CFLAGS-memcpy_noalignment.c += -mno-strict-align ++# Called during static initialization ++CFLAGS-memset-generic.c += $(no-stack-protector) + endif +diff --git a/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h +index 04b6c1e6a3..b607e525f2 100644 +--- a/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h ++++ b/sysdeps/x86_64/multiarch/dl-symbol-redir-ifunc.h +@@ -44,6 +44,16 @@ asm ("memset = " HAVE_MEMSET_IFUNC_GENERIC); + + asm ("memcmp = " HAVE_MEMCMP_IFUNC_GENERIC); + ++#if MINIMUM_X86_ISA_LEVEL >= 4 ++# define HAVE_STRCMP_IFUNC_GENERIC "__strlen_evex" ++#elif MINIMUM_X86_ISA_LEVEL == 3 ++# define HAVE_STRCMP_IFUNC_GENERIC "__strlen_avx2" ++#else ++# define HAVE_STRCMP_IFUNC_GENERIC "__strlen_sse2" ++#endif ++ ++asm ("strlen = " HAVE_STRCMP_IFUNC_GENERIC); ++ + #endif /* SHARED */ + + #endif +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_01_riscv_memcpy_ifunc.patch b/srcpkgs/glibc/patches/bp_01_riscv_memcpy_ifunc.patch new file mode 100644 index 00000000000000..f240d6717ddf04 --- /dev/null +++ b/srcpkgs/glibc/patches/bp_01_riscv_memcpy_ifunc.patch @@ -0,0 +1,55 @@ +From 60cabd0464c6722d4e1f13bbbeef191ea40ef2ef Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella Netto +Date: Sat, 21 Mar 2026 08:11:06 -0600 +Subject: [PATCH] riscv: Resolve calls to memcpy using memcpy-generic in early + startup + +This patch from Adhemerval sets up the ifunc redirections so that we +resolve memcpy to memcpy_generic in early startup. This avoids infinite +recursion for memcpy calls before the loader is fully initialized. + +Tested-by: Jeff Law +(cherry picked from commit 0a9e54d40a4321ebf7d87cdbc0868c43d1e8a657) +--- + elf/dl-reloc-static-pie.c | 1 + + sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h | 1 + + sysdeps/unix/sysv/linux/riscv/multiarch/Makefile | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c +index bdff2b5ee2..63ce609024 100644 +--- a/elf/dl-reloc-static-pie.c ++++ b/elf/dl-reloc-static-pie.c +@@ -25,6 +25,7 @@ + + #include + #include ++#include + + #define RESOLVE_MAP(map, scope, sym, version, flags) map + #include "dynamic-link.h" +diff --git a/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h +index 24b78711e3..69a0790838 100644 +--- a/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h ++++ b/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h +@@ -21,6 +21,7 @@ + + #ifndef SHARED + asm ("memset = __memset_generic"); ++asm ("memcpy = __memcpy_generic"); + #endif + + #endif +diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile b/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile +index a865090a53..a033ea9569 100644 +--- a/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile ++++ b/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile +@@ -11,4 +11,5 @@ sysdep_routines += \ + CFLAGS-memcpy_noalignment.c += -mno-strict-align + # Called during static initialization + CFLAGS-memset-generic.c += $(no-stack-protector) ++CFLAGS-memcpy-generic.c += $(no-stack-protector) + endif +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_aarch64_gcs.patch b/srcpkgs/glibc/patches/bp_aarch64_gcs.patch new file mode 100644 index 00000000000000..868baa383adf5f --- /dev/null +++ b/srcpkgs/glibc/patches/bp_aarch64_gcs.patch @@ -0,0 +1,214 @@ +From 2ee41ba6ecd34bf7e5c4f90fdfa20376c1dcecb0 Mon Sep 17 00:00:00 2001 +From: Yury Khrustalev +Date: Mon, 2 Feb 2026 18:27:53 +0000 +Subject: [PATCH] aarch64: Lock GCS status at startup + +If GCS is enabled (see tunable glibc.cpu.aarch64_gcs), we lock all GCS +operations (including status, write on shadow stack, and push to shadow +stack) unless OPTIONAL policy is used. + +Reviewed-by: Adhemerval Zanella +(cherry picked from commit 5061f524a2976daf3062dd34beae1d7d15502770) +--- + manual/tunables.texi | 54 ++++++++++++-------- + sysdeps/aarch64/dl-gcs.c | 6 +++ + sysdeps/aarch64/dl-start.S | 21 +++++++- + sysdeps/unix/sysv/linux/aarch64/libc-start.h | 29 +++++++++-- + 4 files changed, 82 insertions(+), 28 deletions(-) + +diff --git a/manual/tunables.texi b/manual/tunables.texi +index 7956df919b..29f2ba000f 100644 +--- a/manual/tunables.texi ++++ b/manual/tunables.texi +@@ -620,42 +620,54 @@ This tunable controls Guarded Control Stack (GCS) for the process. + + Accepted values are: + +-0 = disabled: do not enable GCS. +- +-1 = enforced: check markings and fail if any binary is not marked. +- +-2 = optional: check markings but keep GCS off if any binary is unmarked. +- +-3 = override: enable GCS, markings are ignored. ++@itemize @bullet ++@item @code{0} = disabled: do not enable GCS. ++@item @code{1} = enforced: check markings and abort if any binary is not ++marked, otherwise enable GCS and lock all GCS features. ++@item @code{2} = optional: check markings but keep GCS off if any binary ++is unmarked, otherwise enable GCS but do not lock any GCS features. ++@item @code{3} = override: enable GCS and lock all GCS features, markings ++are ignored. ++@end itemize + + If unmarked binary is loaded via @code{dlopen} when GCS is enabled and +-markings are not ignored (@code{aarch64_gcs == 1} or @code{2}), then +-the process will be aborted. ++markings are not ignored (i.e. @code{aarch64_gcs == 1} or @code{2}), then ++@code{dlopen} will return an error. + + Default is @code{0}, so GCS is disabled by default. + +-This tunable is specific to AArch64. On systems that do not support ++This tunable is specific to AArch64. On systems that do not support + Guarded Control Stack this tunable has no effect. + ++GCS features (or operations on shadow stack) such as @code{STATUS} (i.e. ++enabling and disabling GCS), @code{WRITE}, and @code{PUSH}, will be locked ++for the @code{enforced} and @code{override} tunable values. ++ + Before enabling GCS for the process the value of this tunable is checked + and depending on it the following outcomes are possible. + +-@code{aarch64_gcs == 0}: GCS will not be enabled and GCS markings will not be ++@itemize @bullet ++@item ++@code{aarch64_gcs == 0}: GCS will remain disabled and GCS markings will not be + checked for any binaries. +- ++@item + @code{aarch64_gcs == 1}: GCS markings will be checked for all binaries loaded +-at startup and, only if all binaries are GCS-marked, GCS will be enabled. If +-any of the binaries are not GCS-marked, the process will abort. Subsequent call +-to @code{dlopen} for an unmarked binary will also result in abort. +- ++at startup and, only if all binaries are GCS-marked, GCS will be enabled and ++all GCS features will be locked. If any of the binaries are not GCS-marked, ++the process will abort. Subsequent call to @code{dlopen} for an unmarked binary ++will result in @code{dlopen} returning an error. ++@item + @code{aarch64_gcs == 2}: GCS markings will be checked for all binaries loaded + at startup and, if any of such binaries are not GCS-marked, GCS will not be +-enabled and there will be no more checks for GCS marking. If all binaries +-loaded at startup are GCS-marked, then GCS will be enabled, in which case a +-call to @code{dlopen} for an unmarked binary will also result in abort. ++enabled and there will be no more checks for GCS marking. If all binaries ++loaded at startup are GCS-marked, then GCS will be enabled but GCS features ++will not be locked. In this case a call to @code{dlopen} for an unmarked binary ++will result in @code{dlopen} returning an error. ++@item ++@code{aarch64_gcs == 3}: GCS will be enabled and all GCS features will be ++locked. GCS markings will not be checked for any binaries. ++@end itemize + +-@code{aarch64_gcs == 3}: GCS will be enabled and GCS markings will not be +-checked for any binaries. + @end deftp + + @node Memory Related Tunables +diff --git a/sysdeps/aarch64/dl-gcs.c b/sysdeps/aarch64/dl-gcs.c +index e1d1db4852..841d6428d6 100644 +--- a/sysdeps/aarch64/dl-gcs.c ++++ b/sysdeps/aarch64/dl-gcs.c +@@ -147,3 +147,9 @@ void _dl_gcs_enable_failed (int code) + { + _dl_fatal_printf ("failed to enable GCS: %d\n", -code); + } ++ ++/* Used to report error when prctl system call to lock GCS fails. */ ++void _dl_gcs_lock_failed (int code) ++{ ++ _dl_fatal_printf ("failed to lock GCS: %d\n", -code); ++} +diff --git a/sysdeps/aarch64/dl-start.S b/sysdeps/aarch64/dl-start.S +index 3b5ff2cccb..c278485cd3 100644 +--- a/sysdeps/aarch64/dl-start.S ++++ b/sysdeps/aarch64/dl-start.S +@@ -35,12 +35,13 @@ ENTRY (_start) + /* Use GL(dl_aarch64_gcs) to set the shadow stack status. */ + adrp x16, _rtld_local + add x16, x16, :lo12:_rtld_local +- ldr x1, [x16, GL_DL_AARCH64_GCS_OFFSET] +- cbz x1, L(skip_gcs_enable) ++ ldr x22, [x16, GL_DL_AARCH64_GCS_OFFSET] ++ cbz x22, L(skip_gcs_enable) + + /* Enable GCS before user code runs. Note that IFUNC resolvers and + LD_AUDIT hooks may run before, but should not create threads. */ + #define PR_SET_SHADOW_STACK_STATUS 75 ++#define PR_LOCK_SHADOW_STACK_STATUS 76 + #define PR_SHADOW_STACK_ENABLE (1UL << 0) + mov x0, PR_SET_SHADOW_STACK_STATUS + mov x1, PR_SHADOW_STACK_ENABLE +@@ -50,6 +51,19 @@ ENTRY (_start) + mov x8, #SYS_ify(prctl) + svc 0x0 + cbnz w0, L(failed_gcs_enable) ++ /* Check if we need to lock GCS features. */ ++ /* If the aarch64_gcs tunable is either 0 or 2 do not lock GCS. */ ++ tst x22, #-3 ++ beq L(skip_gcs_enable) ++ mov x0, PR_LOCK_SHADOW_STACK_STATUS ++ /* Lock everything including future operations. */ ++ mov x1, ~0 ++ mov x2, 0 ++ mov x3, 0 ++ mov x4, 0 ++ mov x8, #SYS_ify(prctl) ++ svc 0x0 ++ cbnz w0, L(failed_gcs_lock) + L(skip_gcs_enable): + + .globl _dl_start_user +@@ -75,4 +89,7 @@ _dl_start_user: + L(failed_gcs_enable): + b _dl_gcs_enable_failed + ++L(failed_gcs_lock): ++ b _dl_gcs_lock_failed ++ + END (_start) +diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-start.h b/sysdeps/unix/sysv/linux/aarch64/libc-start.h +index 9eecc557fd..4ccd13741b 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libc-start.h ++++ b/sysdeps/unix/sysv/linux/aarch64/libc-start.h +@@ -25,9 +25,17 @@ + + # ifndef PR_SET_SHADOW_STACK_STATUS + # define PR_SET_SHADOW_STACK_STATUS 75 ++# define PR_LOCK_SHADOW_STACK_STATUS 76 + # define PR_SHADOW_STACK_ENABLE (1UL << 0) + # endif + ++# ifndef GCS_POLICY_DISABLED ++/* GCS is disabled. */ ++# define GCS_POLICY_DISABLED 0 ++/* Optionally enable GCS if all startup dependencies are marked. */ ++# define GCS_POLICY_OPTIONAL 2 ++# endif ++ + /* Must be on a top-level stack frame that does not return. */ + static inline void __attribute__((always_inline)) + aarch64_libc_setup_tls (void) +@@ -46,12 +54,23 @@ aarch64_libc_setup_tls (void) + + _rtld_main_check (main_map, _dl_argv[0]); + +- if (GL(dl_aarch64_gcs) != 0) ++ uint64_t gcs = GL (dl_aarch64_gcs); ++ if (gcs != GCS_POLICY_DISABLED) + { +- int ret = INLINE_SYSCALL_CALL (prctl, PR_SET_SHADOW_STACK_STATUS, +- PR_SHADOW_STACK_ENABLE, 0, 0, 0); +- if (ret) +- _dl_fatal_printf ("failed to enable GCS: %d\n", -ret); ++ int ret; ++ ret = INLINE_SYSCALL_CALL (prctl, PR_SET_SHADOW_STACK_STATUS, ++ PR_SHADOW_STACK_ENABLE, 0, 0, 0); ++ if (ret != 0) ++ _dl_fatal_printf ("failed to enable GCS: %d\n", -ret); ++ /* Do not lock GCS features if policy is OPTIONAL. */ ++ if (gcs != GCS_POLICY_OPTIONAL) ++ { ++ /* Lock all bits, including future bits. */ ++ ret = INLINE_SYSCALL_CALL (prctl, PR_LOCK_SHADOW_STACK_STATUS, ++ ~0, 0, 0, 0); ++ if (ret != 0) ++ _dl_fatal_printf ("failed to lock GCS: %d\n", -ret); ++ } + } + } + +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_aarch64_malloc.patch b/srcpkgs/glibc/patches/bp_aarch64_malloc.patch new file mode 100644 index 00000000000000..c56db73d1b1ecb --- /dev/null +++ b/srcpkgs/glibc/patches/bp_aarch64_malloc.patch @@ -0,0 +1,83 @@ +From 9898ea58b538e325a25f53bde021d0ca07d0a1c0 Mon Sep 17 00:00:00 2001 +From: Wilco Dijkstra +Date: Fri, 27 Feb 2026 20:20:45 +0000 +Subject: [PATCH] malloc: Avoid accessing /sys/kernel/mm files + +On AArch64 malloc always checks /sys/kernel/mm/transparent_hugepage/enabled to +set the THP mode. However this check is quite expensive and the file may not +be accessible in containers. If DEFAULT_THP_PAGESIZE is non-zero, use +malloc_thp_mode_madvise so that we take advantage of THP in all cases. Since +madvise is a fast systemcall, it adds only a small overhead compared to the +cost of mmap and populating the pages. + +Reviewed-by: Aurelien Jarno +(cherry picked from commit 2e8a940df14e9e03fd5bd01015ebbd00c1a5e9b4) +--- + malloc/arena.c | 9 +++++++++ + malloc/malloc.c | 18 ------------------ + 2 files changed, 9 insertions(+), 18 deletions(-) + +diff --git a/malloc/arena.c b/malloc/arena.c +index 5bfcd7f972..d83b4db068 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -276,6 +276,15 @@ __ptmalloc_init (void) + __always_fail_morecore = true; + #endif + ++ /* Enable THP if DEFAULT_THP_PAGESIZE is non-zero. Avoid quering the THP ++ page size or mode since accessing /sys/kernel/mm is relatively slow and ++ might not be accessible in containers. */ ++ if (DEFAULT_THP_PAGESIZE > 0) ++ { ++ mp_.thp_mode = malloc_thp_mode_madvise; ++ mp_.thp_pagesize = DEFAULT_THP_PAGESIZE; ++ } ++ + thread_arena = &main_arena; + + malloc_init_state (&main_arena); +diff --git a/malloc/malloc.c b/malloc/malloc.c +index a49e211925..771e7d40b7 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -1902,26 +1902,11 @@ free_perturb (char *p, size_t n) + + /* ----------- Routines dealing with transparent huge pages ----------- */ + +-static __always_inline void +-thp_init (void) +-{ +- /* Initialize only once if DEFAULT_THP_PAGESIZE is defined. */ +- if (DEFAULT_THP_PAGESIZE == 0 || mp_.thp_mode != malloc_thp_mode_not_supported) +- return; +- +- /* Set thp_pagesize even if thp_mode is never. This reduces frequency +- of MORECORE () invocation. */ +- mp_.thp_mode = __malloc_thp_mode (); +- mp_.thp_pagesize = DEFAULT_THP_PAGESIZE; +-} +- + static inline void + madvise_thp (void *p, INTERNAL_SIZE_T size) + { + #ifdef MADV_HUGEPAGE + +- thp_init (); +- + /* Only use __madvise if the system is using 'madvise' mode and the size + is at least a huge page, otherwise the call is wasteful. */ + if (mp_.thp_mode != malloc_thp_mode_madvise || size < mp_.thp_pagesize) +@@ -2472,9 +2457,6 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) + previous calls. Otherwise, we correct to page-align below. + */ + +- /* Ensure thp_pagesize is initialized. */ +- thp_init (); +- + if (__glibc_unlikely (mp_.thp_pagesize != 0)) + { + uintptr_t lastbrk = (uintptr_t) MORECORE (0); +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_abilist.patch b/srcpkgs/glibc/patches/bp_abilist.patch new file mode 100644 index 00000000000000..1c09d679d48e36 --- /dev/null +++ b/srcpkgs/glibc/patches/bp_abilist.patch @@ -0,0 +1,48 @@ +From e9517114acc77c0b8af9da6700107df16882b701 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +Date: Mon, 13 Apr 2026 10:46:42 +0800 +Subject: [PATCH] abilist.awk: Handle weak unversioned defined symbols + +After + +commit f685e3953f9a38a41bbd0a597f9882870cee13d5 +Author: H.J. Lu +Date: Wed Oct 29 09:49:57 2025 +0800 + + elf: Don't set its DT_VERSYM entry for unversioned symbol + +ld no longer assigns version index 1 to unversioned defined symbol. +For libmachuser.so, "objdump --dynamic-syms" reports: + +0000dd30 w DF .text 000000f8 processor_start + +instead of + +0000dd30 w DF .text 000000f8 (Base) processor_start + +Also allow NF == 6 for weak unversioned dynamic symbols. This fixes BZ +33650. + +Signed-off-by: H.J. Lu +Reviewed-by: Sam James +(cherry picked from commit ee5d1db2a81468413fbf7c82779ffa782f429d1a) +--- + scripts/abilist.awk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/abilist.awk b/scripts/abilist.awk +index 6cc7af6ac8..7ea1edf8c0 100644 +--- a/scripts/abilist.awk ++++ b/scripts/abilist.awk +@@ -38,7 +38,7 @@ $4 == "*UND*" { next } + $2 == "l" { next } + + # If the target uses ST_OTHER, it will be output before the symbol name. +-$2 == "g" || $2 == "w" && (NF == 7 || NF == 8) { ++$2 == "g" || $2 == "w" && (NF == 6 || NF == 7 || NF == 8) { + type = $3; + size = $5; + sub(/^0*/, "", size); +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_getlogin_r_utmp_fallback.patch b/srcpkgs/glibc/patches/bp_getlogin_r_utmp_fallback.patch new file mode 100644 index 00000000000000..e62b693acafd1b --- /dev/null +++ b/srcpkgs/glibc/patches/bp_getlogin_r_utmp_fallback.patch @@ -0,0 +1,78 @@ +From d6cb7ce0e98b2c16df5b2f5b9693d0130ccb8af5 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 13 Feb 2026 09:02:07 +0100 +Subject: [PATCH] Linux: In getlogin_r, use utmp fallback only for specific + errors + +Most importantly, if getwpuid_r fails, it does not make sense to retry +via utmp because the user ID obtained from there is less reliable than +the one from /proc/self/loginuid. + +Reviewed-by: Sam James +(cherry picked from commit 28660f4b45afa8921c2faebaec2846f95f670ba0) +--- + sysdeps/unix/sysv/linux/getlogin_r.c | 21 +++++++++++++++++---- + 1 file changed, 17 insertions(+), 4 deletions(-) + +diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c +index 3b85e91be6..200c96860f 100644 +--- a/sysdeps/unix/sysv/linux/getlogin_r.c ++++ b/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -37,7 +37,12 @@ __getlogin_r_loginuid (char *name, size_t namesize) + { + int fd = __open_nocancel ("/proc/self/loginuid", O_RDONLY); + if (fd == -1) +- return -1; ++ { ++ if (errno == ENOENT) ++ /* Trigger utmp fallback. */ ++ return -1; ++ return errno; ++ } + + /* We are reading a 32-bit number. 12 bytes are enough for the text + representation. If not, something is wrong. */ +@@ -45,6 +50,8 @@ __getlogin_r_loginuid (char *name, size_t namesize) + ssize_t n = TEMP_FAILURE_RETRY (__read_nocancel (fd, uidbuf, + sizeof (uidbuf))); + __close_nocancel_nostatus (fd); ++ if (n < 0) ++ return errno; + + uid_t uid; + char *endp; +@@ -53,12 +60,13 @@ __getlogin_r_loginuid (char *name, size_t namesize) + || (uidbuf[n] = '\0', + uid = strtoul (uidbuf, &endp, 10), + endp == uidbuf || *endp != '\0')) +- return -1; ++ return EINVAL; + + /* If there is no login uid, linux sets /proc/self/loginid to the sentinel + value of, (uid_t) -1, so check if that value is set and return early to + avoid making unneeded nss lookups. */ + if (uid == (uid_t) -1) ++ /* Trigger utmp fallback. */ + return -1; + + struct passwd pwd; +@@ -78,9 +86,14 @@ __getlogin_r_loginuid (char *name, size_t namesize) + } + } + +- if (res != 0 || tpwd == NULL) ++ if (res != 0) ++ { ++ result = res; ++ goto out; ++ } ++ if (tpwd == NULL) + { +- result = -1; ++ result = ENOENT; + goto out; + } + +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_include_cloexec.patch b/srcpkgs/glibc/patches/bp_include_cloexec.patch new file mode 100644 index 00000000000000..be1f14a3284450 --- /dev/null +++ b/srcpkgs/glibc/patches/bp_include_cloexec.patch @@ -0,0 +1,139 @@ +From d1d8d27164e9682e467b55a7b56bd6229b7beef2 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Mon, 26 Jan 2026 22:24:42 -0500 +Subject: [PATCH] include: isolate __O_CLOEXEC flag for sys/mount.h and fcntl.h + +Including sys/mount.h should not implicitly include fcntl.h +as that causes namespace pollution and conflicts with kernel +headers. It only needs O_CLOEXEC for OPEN_TREE_CLOEXEC +(although it shouldn't need that, but it's defined that way) +so we provide that define (via a private version) separately. + +Reviewed-by: Adhemerval Zanella +Tested-by: Florian Weimer +(cherry picked from commit 419245719ccbc7dad6a97f24465e7f09c090327a) +--- + io/fcntl.c | 4 ++++ + sysdeps/unix/sysv/linux/Makefile | 1 + + sysdeps/unix/sysv/linux/alpha/bits/cloexec.h | 1 + + sysdeps/unix/sysv/linux/bits/cloexec.h | 1 + + sysdeps/unix/sysv/linux/bits/fcntl-linux.h | 4 +--- + sysdeps/unix/sysv/linux/hppa/bits/cloexec.h | 1 + + sysdeps/unix/sysv/linux/sparc/bits/cloexec.h | 1 + + sysdeps/unix/sysv/linux/sys/mount.h | 6 +++++- + sysdeps/unix/sysv/linux/tst-mount.c | 1 + + 9 files changed, 16 insertions(+), 4 deletions(-) + create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/cloexec.h + create mode 100644 sysdeps/unix/sysv/linux/bits/cloexec.h + create mode 100644 sysdeps/unix/sysv/linux/hppa/bits/cloexec.h + create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/cloexec.h + +diff --git a/io/fcntl.c b/io/fcntl.c +index c13546e4fd..4fbc522624 100644 +--- a/io/fcntl.c ++++ b/io/fcntl.c +@@ -18,6 +18,10 @@ + #include + #include + ++#ifndef __O_CLOEXEC ++# error __O_CLOEXEC not defined by fcntl.h/cloexec.h ++#endif ++ + /* Perform file control operations on FD. */ + int + __fcntl (int fd, int cmd, ...) +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 955d316362..c6bd97abf1 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -129,6 +129,7 @@ CFLAGS-test-errno-linux.c += $(no-fortify-source) + + sysdep_headers += \ + bits/a.out.h \ ++ bits/cloexec.h \ + bits/epoll.h \ + bits/eventfd.h \ + bits/inotify.h \ +diff --git a/sysdeps/unix/sysv/linux/alpha/bits/cloexec.h b/sysdeps/unix/sysv/linux/alpha/bits/cloexec.h +new file mode 100644 +index 0000000000..f381f28a53 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/alpha/bits/cloexec.h +@@ -0,0 +1 @@ ++#define __O_CLOEXEC 010000000 +diff --git a/sysdeps/unix/sysv/linux/bits/cloexec.h b/sysdeps/unix/sysv/linux/bits/cloexec.h +new file mode 100644 +index 0000000000..3059fb6473 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/bits/cloexec.h +@@ -0,0 +1 @@ ++#define __O_CLOEXEC 02000000 +diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +index ad7f7c98c6..221a71aa62 100644 +--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h ++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h +@@ -81,9 +81,7 @@ + #ifndef __O_NOFOLLOW + # define __O_NOFOLLOW 0400000 + #endif +-#ifndef __O_CLOEXEC +-# define __O_CLOEXEC 02000000 +-#endif ++#include + #ifndef __O_DIRECT + # define __O_DIRECT 040000 + #endif +diff --git a/sysdeps/unix/sysv/linux/hppa/bits/cloexec.h b/sysdeps/unix/sysv/linux/hppa/bits/cloexec.h +new file mode 100644 +index 0000000000..f381f28a53 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/hppa/bits/cloexec.h +@@ -0,0 +1 @@ ++#define __O_CLOEXEC 010000000 +diff --git a/sysdeps/unix/sysv/linux/sparc/bits/cloexec.h b/sysdeps/unix/sysv/linux/sparc/bits/cloexec.h +new file mode 100644 +index 0000000000..6706eaa7d5 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/sparc/bits/cloexec.h +@@ -0,0 +1 @@ ++#define __O_CLOEXEC 0x400000 +diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h +index 457d8dcff2..5e496caf2f 100644 +--- a/sysdeps/unix/sysv/linux/sys/mount.h ++++ b/sysdeps/unix/sysv/linux/sys/mount.h +@@ -21,7 +21,6 @@ + #ifndef _SYS_MOUNT_H + #define _SYS_MOUNT_H 1 + +-#include + #include + #include + #include +@@ -266,6 +265,11 @@ enum fsconfig_command + + /* open_tree flags. */ + #define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */ ++#ifndef O_CLOEXEC ++# include ++# define O_CLOEXEC __O_CLOEXEC ++#endif ++#undef OPEN_TREE_CLOEXEC + #define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */ + + +diff --git a/sysdeps/unix/sysv/linux/tst-mount.c b/sysdeps/unix/sysv/linux/tst-mount.c +index 8e3ffbd56f..84dcd448d4 100644 +--- a/sysdeps/unix/sysv/linux/tst-mount.c ++++ b/sysdeps/unix/sysv/linux/tst-mount.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include /* For AT_ constants. */ + #include + + _Static_assert (sizeof (struct mount_attr) == MOUNT_ATTR_SIZE_VER0, +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_include_closexec_pt2.patch b/srcpkgs/glibc/patches/bp_include_closexec_pt2.patch new file mode 100644 index 00000000000000..d378a385621fbe --- /dev/null +++ b/srcpkgs/glibc/patches/bp_include_closexec_pt2.patch @@ -0,0 +1,45 @@ +From 1634cc11a5a54efcd542f468cf2efa5cdfc65194 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Wed, 4 Mar 2026 18:32:36 +0100 +Subject: [PATCH] Linux: Only define OPEN_TREE_* macros in if + undefined (bug 33921) + +There is a conditional inclusion of earlier in the file. +If that defines the macros, do not redefine them. This addresses build +problems as the token sequence used by the UAPI macro definitions +changes between Linux versions. + +Reviewed-by: Adhemerval Zanella +(cherry picked from commit d12b017cddfeb9fe9920ba054ae3dfcb8e9238b8) +--- + sysdeps/unix/sysv/linux/sys/mount.h | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h +index 5e496caf2f..0c5ebed33a 100644 +--- a/sysdeps/unix/sysv/linux/sys/mount.h ++++ b/sysdeps/unix/sysv/linux/sys/mount.h +@@ -264,14 +264,16 @@ enum fsconfig_command + #define FSOPEN_CLOEXEC 0x00000001 + + /* open_tree flags. */ +-#define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */ ++#ifndef OPEN_TREE_CLONE ++# define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */ ++#endif + #ifndef O_CLOEXEC + # include + # define O_CLOEXEC __O_CLOEXEC + #endif +-#undef OPEN_TREE_CLOEXEC +-#define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */ +- ++#ifndef OPEN_TREE_CLOEXEC ++# define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */ ++#endif + + __BEGIN_DECLS + +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_include_openat2.patch b/srcpkgs/glibc/patches/bp_include_openat2.patch new file mode 100644 index 00000000000000..0a3f7f494f2cdb --- /dev/null +++ b/srcpkgs/glibc/patches/bp_include_openat2.patch @@ -0,0 +1,29 @@ +From 856c426a753450b8c6861a5b994a564f4fc16d4b Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Tue, 3 Feb 2026 12:41:23 +0100 +Subject: [PATCH] Don't include directly (bug 33848) + +Headers from bits directories should never be included directly, only via +the official headers. + +(cherry picked from commit 0e47414ce87f3b088ff454fc6c7d1129ff9617ec) +--- + NEWS | 2 ++ + sysdeps/unix/sysv/linux/openat2.c | 1 - + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sysdeps/unix/sysv/linux/openat2.c b/sysdeps/unix/sysv/linux/openat2.c +index 7587dd577a..ac7b70584e 100644 +--- a/sysdeps/unix/sysv/linux/openat2.c ++++ b/sysdeps/unix/sysv/linux/openat2.c +@@ -17,7 +17,6 @@ + . */ + + #include +-#include + #include + + int +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_ldbl-128ibm_zero_sign.patch b/srcpkgs/glibc/patches/bp_ldbl-128ibm_zero_sign.patch new file mode 100644 index 00000000000000..ef653e0d3f0c89 --- /dev/null +++ b/srcpkgs/glibc/patches/bp_ldbl-128ibm_zero_sign.patch @@ -0,0 +1,150 @@ +From 022abaeacbc85d8409bad22375b16a8c07d3ae39 Mon Sep 17 00:00:00 2001 +From: Aurelien Jarno +Date: Tue, 20 Jan 2026 18:25:08 +0100 +Subject: [PATCH] Fix ldbl-128ibm ceill, floorl, roundl and truncl zero-sign + handling + +When the result of ceill, floorl, roundl and truncl is zero, the sign of +the result must match the sign of the input. For the IBM 128-bit long +double format, the sign is determined by the high part. + +Ensure the correct sign when the high part is the result of +computations, by copying the sign from the input high part to the output +high part. On POWER, this conveniently maps to the fcpsgn instruction. + +In addition add test for the values provided in BZ #33623, and for the +opposite value when the result is 0. + +Fixes: BZ #33623 + +Reviewed-by: Adhemerval Zanella +(cherry picked from commit 6f4b28b20aa9161aeb42a7f34f4d3b96194e5666) +--- + NEWS | 2 ++ + math/libm-test-ceil.inc | 3 +++ + math/libm-test-floor.inc | 3 +++ + math/libm-test-round.inc | 4 ++++ + math/libm-test-trunc.inc | 4 ++++ + sysdeps/ieee754/ldbl-128ibm/s_ceill.c | 3 +++ + sysdeps/ieee754/ldbl-128ibm/s_floorl.c | 3 +++ + sysdeps/ieee754/ldbl-128ibm/s_roundl.c | 3 +++ + sysdeps/ieee754/ldbl-128ibm/s_truncl.c | 3 +++ + 9 files changed, 28 insertions(+) + +diff --git a/math/libm-test-ceil.inc b/math/libm-test-ceil.inc +index a471b43932..48be68cf91 100644 +--- a/math/libm-test-ceil.inc ++++ b/math/libm-test-ceil.inc +@@ -79,6 +79,9 @@ static const struct test_f_f_data ceil_test_data[] = + TEST_f_f (ceil, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + #if MANT_DIG >= 64 ++ /* The input value can only be represented in long double. */ ++ TEST_f_f (ceil, -0x0.ffffffffffffffffp0L, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), ++ + /* The result can only be represented in long double. */ + TEST_f_f (ceil, 4503599627370495.5L, 4503599627370496.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_f_f (ceil, 4503599627370496.25L, 4503599627370497.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), +diff --git a/math/libm-test-floor.inc b/math/libm-test-floor.inc +index dee4afff7a..bc945a6c22 100644 +--- a/math/libm-test-floor.inc ++++ b/math/libm-test-floor.inc +@@ -79,6 +79,9 @@ static const struct test_f_f_data floor_test_data[] = + TEST_f_f (floor, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + #if MANT_DIG >= 64 ++ /* The input value can only be represented in long double. */ ++ TEST_f_f (floor, 0x0.ffffffffffffffffp0L, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), ++ + /* The result can only be represented in long double. */ + TEST_f_f (floor, 4503599627370495.5L, 4503599627370495.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_f_f (floor, 4503599627370496.25L, 4503599627370496.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), +diff --git a/math/libm-test-round.inc b/math/libm-test-round.inc +index 898ff3791b..1395c51d5d 100644 +--- a/math/libm-test-round.inc ++++ b/math/libm-test-round.inc +@@ -99,6 +99,10 @@ static const struct test_f_f_data round_test_data[] = + #endif + + #if MANT_DIG >= 64 ++ /* The input value can only be represented in long double. */ ++ TEST_f_f (round, 0x0.ffffffffffffffffp-1L, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), ++ TEST_f_f (round, -0x0.ffffffffffffffffp-1L, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), ++ + /* The result can only be represented in long double. */ + TEST_f_f (round, 4503599627370495.5L, 4503599627370496.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), +diff --git a/math/libm-test-trunc.inc b/math/libm-test-trunc.inc +index 7df741f3ba..5d69cd4b5b 100644 +--- a/math/libm-test-trunc.inc ++++ b/math/libm-test-trunc.inc +@@ -91,6 +91,10 @@ static const struct test_f_f_data trunc_test_data[] = + TEST_f_f (trunc, -4294967296.625L, -4294967296.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + #if MANT_DIG >= 64 ++ /* The input value can only be represented in long double. */ ++ TEST_f_f (trunc, 0x0.ffffffffffffffffp0L, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), ++ TEST_f_f (trunc, -0x0.ffffffffffffffffp0L, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), ++ + /* The result can only be represented in long double. */ + TEST_f_f (trunc, 4503599627370495.5L, 4503599627370495.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_f_f (trunc, 4503599627370496.25L, 4503599627370496.0L, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), +diff --git a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c +index 8038cf9fda..88bc364db5 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/s_ceill.c ++++ b/sysdeps/ieee754/ldbl-128ibm/s_ceill.c +@@ -54,6 +54,9 @@ __ceill (long double x) + xh = hi; + xl = lo; + ldbl_canonicalize_int (&xh, &xl); ++ ++ /* Ensure we return -0 rather than +0 when appropriate. */ ++ xh = copysign (xh, hi); + } + } + else +diff --git a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c +index 23f45b773f..4a8294cc78 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/s_floorl.c ++++ b/sysdeps/ieee754/ldbl-128ibm/s_floorl.c +@@ -54,6 +54,9 @@ __floorl (long double x) + xh = hi; + xl = lo; + ldbl_canonicalize_int (&xh, &xl); ++ ++ /* Ensure we return -0 rather than +0 when appropriate. */ ++ xh = copysign (xh, hi); + } + } + else +diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c +index e8948a0c05..340a63c76a 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/s_roundl.c ++++ b/sysdeps/ieee754/ldbl-128ibm/s_roundl.c +@@ -80,6 +80,9 @@ __roundl (long double x) + xh = hi; + ldbl_canonicalize_int (&xh, &xl); + } ++ ++ /* Ensure we return -0 rather than +0 when appropriate. */ ++ xh = copysign(xh, hi); + } + else + /* Quiet signaling NaN arguments. */ +diff --git a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c +index 7f0b77cd3f..21ecbd0c85 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/s_truncl.c ++++ b/sysdeps/ieee754/ldbl-128ibm/s_truncl.c +@@ -56,6 +56,9 @@ __truncl (long double x) + xh = hi; + xl = lo; + ldbl_canonicalize_int (&xh, &xl); ++ ++ /* Ensure we return -0 rather than +0 when appropriate. */ ++ xh = copysign (xh, hi); + } + } + else +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_nss_for_fork.patch b/srcpkgs/glibc/patches/bp_nss_for_fork.patch new file mode 100644 index 00000000000000..c925274a3b78f5 --- /dev/null +++ b/srcpkgs/glibc/patches/bp_nss_for_fork.patch @@ -0,0 +1,120 @@ +From 140c760d711d03c0230dff218b5268b11935f92e Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 13 Feb 2026 09:02:07 +0100 +Subject: [PATCH] nss: Introduce dedicated struct nss_database_for_fork type + +The initialized field in struct nss_database_data is rather confusing +because it is not used by the regular NSS code, only by the fork +state synchronization code. Introduce a separate type and place +the initialized field there. + +Reviewed-by: Sam James +(cherry picked from commit 7bb859f4198d0be19c31a9937eae4f6c2c9a079e) +--- + nss/nss_database.c | 14 +++++++------- + nss/nss_database.h | 12 +++++++++--- + posix/fork.c | 2 +- + 3 files changed, 17 insertions(+), 11 deletions(-) + +diff --git a/nss/nss_database.c b/nss/nss_database.c +index 6997b5bb04..19e752ef65 100644 +--- a/nss/nss_database.c ++++ b/nss/nss_database.c +@@ -56,7 +56,6 @@ global_state_allocate (void *closure) + { + result->data.nsswitch_conf.size = -1; /* Force reload. */ + memset (result->data.services, 0, sizeof (result->data.services)); +- result->data.initialized = true; + result->data.reload_disabled = false; + __libc_lock_init (result->lock); + result->root_ino = 0; +@@ -439,8 +438,8 @@ nss_database_check_reload_and_get (struct nss_database_state *local, + /* Avoid overwriting the global configuration until we have loaded + everything successfully. Otherwise, if the file change + information changes back to what is in the global configuration, +- the lookups would use the partially-written configuration. */ +- struct nss_database_data staging = { .initialized = true, }; ++ the lookups would use the partially-written configuration. */ ++ struct nss_database_data staging = { }; + + bool ok = nss_database_reload (&staging, &initial); + +@@ -491,7 +490,7 @@ __nss_database_freeres (void) + } + + void +-__nss_database_fork_prepare_parent (struct nss_database_data *data) ++__nss_database_fork_prepare_parent (struct nss_database_for_fork *data) + { + /* Do not use allocate_once to trigger loading unnecessarily. */ + struct nss_database_state *local = atomic_load_acquire (&global_database_state); +@@ -503,20 +502,21 @@ __nss_database_fork_prepare_parent (struct nss_database_data *data) + because it avoids acquiring the lock during the actual + fork. */ + __libc_lock_lock (local->lock); +- *data = local->data; ++ data->data = local->data; + __libc_lock_unlock (local->lock); ++ data->initialized = true; + } + } + + void +-__nss_database_fork_subprocess (struct nss_database_data *data) ++__nss_database_fork_subprocess (struct nss_database_for_fork *data) + { + struct nss_database_state *local = atomic_load_acquire (&global_database_state); + if (data->initialized) + { + /* Restore the state at the point of the fork. */ + assert (local != NULL); +- local->data = *data; ++ local->data = data->data; + __libc_lock_init (local->lock); + } + else if (local != NULL) +diff --git a/nss/nss_database.h b/nss/nss_database.h +index 1f2ff1639a..a4f3369eb0 100644 +--- a/nss/nss_database.h ++++ b/nss/nss_database.h +@@ -70,15 +70,21 @@ struct nss_database_data + struct file_change_detection nsswitch_conf; + nss_action_list services[NSS_DATABASE_COUNT]; + int reload_disabled; /* Actually bool; int for atomic access. */ +- bool initialized; ++}; ++ ++/* Use to store a consistent state snapshot across fork. */ ++struct nss_database_for_fork ++{ ++ bool initialized; /* Set to true if the data field below is initialized. */ ++ struct nss_database_data data; + }; + + /* Called by fork in the parent process, before forking. */ +-void __nss_database_fork_prepare_parent (struct nss_database_data *data) ++void __nss_database_fork_prepare_parent (struct nss_database_for_fork *) + attribute_hidden; + + /* Called by fork in the new subprocess, after forking. */ +-void __nss_database_fork_subprocess (struct nss_database_data *data) ++void __nss_database_fork_subprocess (struct nss_database_for_fork *) + attribute_hidden; + + #endif /* _NSS_DATABASE_H */ +diff --git a/posix/fork.c b/posix/fork.c +index 8e541ff985..933ac6fee7 100644 +--- a/posix/fork.c ++++ b/posix/fork.c +@@ -50,7 +50,7 @@ __libc_fork (void) + + lastrun = __run_prefork_handlers (multiple_threads); + +- struct nss_database_data nss_database_data; ++ struct nss_database_for_fork nss_database_data; + + /* If we are not running multiple threads, we do not have to + preserve lock state. If fork runs from a signal handler, only +-- +GitLab + diff --git a/srcpkgs/glibc/patches/bp_nss_nullptr.patch b/srcpkgs/glibc/patches/bp_nss_nullptr.patch new file mode 100644 index 00000000000000..e0c675b2ec43ae --- /dev/null +++ b/srcpkgs/glibc/patches/bp_nss_nullptr.patch @@ -0,0 +1,48 @@ +From 48f5a05a7a1eeb9e0567ab429f654648f831307f Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 13 Feb 2026 09:02:07 +0100 +Subject: [PATCH] nss: Missing checks in __nss_configure_lookup, + __nss_database_get (bug 28940) + +This avoids a null pointer dereference in the +nss_database_check_reload_and_get function, and assertion failures. + +Reviewed-by: Sam James +(cherry picked from commit 5b713b49443eb6a4e54e50e2f0147105f86dab02) +--- + nss/Makefile | 1 + + nss/nss_database.c | 7 +- + nss/tst-nss-malloc-failure-getlogin_r.c | 345 ++++++++++++++++++++++++ + 3 files changed, 352 insertions(+), 1 deletion(-) + create mode 100644 nss/tst-nss-malloc-failure-getlogin_r.c + +diff --git a/nss/nss_database.c b/nss/nss_database.c +index 19e752ef65..076d5a63fe 100644 +--- a/nss/nss_database.c ++++ b/nss/nss_database.c +@@ -241,9 +241,12 @@ __nss_configure_lookup (const char *dbname, const char *service_line) + + /* Force any load/cache/read whatever to happen, so we can override + it. */ +- __nss_database_get (db, &result); ++ if (!__nss_database_get (db, &result)) ++ return -1; + + local = nss_database_state_get (); ++ if (local == NULL) ++ return -1; + + result = __nss_action_parse (service_line); + if (result == NULL) +@@ -465,6 +468,8 @@ bool + __nss_database_get (enum nss_database db, nss_action_list *actions) + { + struct nss_database_state *local = nss_database_state_get (); ++ if (local == NULL) ++ return false; + return nss_database_check_reload_and_get (local, actions, db); + } + libc_hidden_def (__nss_database_get) +-- +GitLab + diff --git a/srcpkgs/glibc/patches/cb7f20653724029be89224ed3a35d627cc5b4163.patch b/srcpkgs/glibc/patches/cb7f20653724029be89224ed3a35d627cc5b4163.patch deleted file mode 100644 index 26456925a36266..00000000000000 --- a/srcpkgs/glibc/patches/cb7f20653724029be89224ed3a35d627cc5b4163.patch +++ /dev/null @@ -1,37 +0,0 @@ -From cb7f20653724029be89224ed3a35d627cc5b4163 Mon Sep 17 00:00:00 2001 -From: John David Anglin -Date: Wed, 29 Jan 2025 16:51:16 -0500 -Subject: [PATCH] nptl: Correct stack size attribute when stack grows up [BZ - #32574] - -Set stack size attribute to the size of the mmap'd region only -when the size of the remaining stack space is less than the size -of the mmap'd region. - -This was reversed. As a result, the initial stack size was only -135168 bytes. On architectures where the stack grows down, the -initial stack size is approximately 8384512 bytes with the default -rlimit settings. The small main stack size on hppa broke -applications like ruby that check for stack overflows. - -Signed-off-by: John David Anglin ---- - nptl/pthread_getattr_np.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c -index e98e2df152..43dd16d59c 100644 ---- a/nptl/pthread_getattr_np.c -+++ b/nptl/pthread_getattr_np.c -@@ -145,9 +145,9 @@ __pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr) - > (size_t) iattr->stackaddr - last_to) - iattr->stacksize = (size_t) iattr->stackaddr - last_to; - #else -- /* The limit might be too high. */ -+ /* The limit might be too low. */ - if ((size_t) iattr->stacksize -- > to - (size_t) iattr->stackaddr) -+ < to - (size_t) iattr->stackaddr) - iattr->stacksize = to - (size_t) iattr->stackaddr; - #endif - /* We succeed and no need to look further. */ diff --git a/srcpkgs/glibc/patches/ce9b765522f014daa0392099dd9ba1f7ddcc511d.patch b/srcpkgs/glibc/patches/ce9b765522f014daa0392099dd9ba1f7ddcc511d.patch deleted file mode 100644 index 8fcee8c1ef598a..00000000000000 --- a/srcpkgs/glibc/patches/ce9b765522f014daa0392099dd9ba1f7ddcc511d.patch +++ /dev/null @@ -1,53 +0,0 @@ -From ce9b765522f014daa0392099dd9ba1f7ddcc511d Mon Sep 17 00:00:00 2001 -From: Adhemerval Zanella -Date: Wed, 12 Mar 2025 10:59:17 -0300 -Subject: [PATCH] nptl: Check if thread is already terminated in - sigcancel_handler (BZ 32782) - -The SIGCANCEL signal handler should not issue __syscall_do_cancel, -which calls __do_cancel and __pthread_unwind, if the cancellation -is already in proces (and libgcc unwind is not reentrant). Any -cancellation signal received after is ignored. - -Checked on x86_64-linux-gnu and aarch64-linux-gnu. - -Tested-by: Aurelien Jarno -Reviewed-by: Florian Weimer - -(cherry picked from commit 360cce0b066f34e85e473c04cdc16e6fa426021b) ---- - NEWS | 1 + - nptl/pthread_cancel.c | 14 ++++--- - sysdeps/pthread/Makefile | 1 + - sysdeps/pthread/tst-cancel32.c | 73 ++++++++++++++++++++++++++++++++++ - 4 files changed, 83 insertions(+), 6 deletions(-) - create mode 100644 sysdeps/pthread/tst-cancel32.c - -diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c -index f7ce3ec51b..b838273881 100644 ---- a/nptl/pthread_cancel.c -+++ b/nptl/pthread_cancel.c -@@ -41,15 +41,17 @@ sigcancel_handler (int sig, siginfo_t *si, void *ctx) - || si->si_code != SI_TKILL) - return; - -- /* Check if asynchronous cancellation mode is set or if interrupted -- instruction pointer falls within the cancellable syscall bridge. For -- interruptable syscalls with external side-effects (i.e. partial reads), -- the kernel will set the IP to after __syscall_cancel_arch_end, thus -- disabling the cancellation and allowing the process to handle such -+ /* Check if asynchronous cancellation mode is set and cancellation is not -+ already in progress, or if interrupted instruction pointer falls within -+ the cancellable syscall bridge. -+ For interruptable syscalls with external side-effects (i.e. partial -+ reads), the kernel will set the IP to after __syscall_cancel_arch_end, -+ thus disabling the cancellation and allowing the process to handle such - conditions. */ - struct pthread *self = THREAD_SELF; - int oldval = atomic_load_relaxed (&self->cancelhandling); -- if (cancel_async_enabled (oldval) || cancellation_pc_check (ctx)) -+ if (cancel_enabled_and_canceled_and_async (oldval) -+ || cancellation_pc_check (ctx)) - __syscall_do_cancel (); - } - diff --git a/srcpkgs/glibc/patches/e22c132484ea49be0478e4dcbd108d433d70f64c.patch b/srcpkgs/glibc/patches/e22c132484ea49be0478e4dcbd108d433d70f64c.patch deleted file mode 100644 index 67752a1d40e683..00000000000000 --- a/srcpkgs/glibc/patches/e22c132484ea49be0478e4dcbd108d433d70f64c.patch +++ /dev/null @@ -1,58 +0,0 @@ -From e22c132484ea49be0478e4dcbd108d433d70f64c Mon Sep 17 00:00:00 2001 -From: Michael Jeanson -Date: Fri, 14 Feb 2025 13:54:22 -0500 -Subject: [PATCH] nptl: clear the whole rseq area before registration - -Due to the extensible nature of the rseq area we can't explictly -initialize fields that are not part of the ABI yet. It was agreed with -upstream that all new fields will be documented as zero initialized by -userspace. Future kernels configured with CONFIG_DEBUG_RSEQ will -validate the content of all fields during registration. - -Replace the explicit field initialization with a memset of the whole -rseq area which will cover fields as they are added to future kernels. - -Signed-off-by: Michael Jeanson -Reviewed-by: Florian Weimer -(cherry picked from commit 689a62a4217fae78b9ce0db781dc2a421f2b1ab4) ---- - sysdeps/nptl/dl-tls_init_tp.c | 1 + - sysdeps/unix/sysv/linux/rseq-internal.h | 11 +++++------ - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c -index f487bfb66e7..8629b5d41b0 100644 ---- a/sysdeps/nptl/dl-tls_init_tp.c -+++ b/sysdeps/nptl/dl-tls_init_tp.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - #define TUNABLE_NAMESPACE pthread - #include -diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h -index f89e7842431..d2ab4cb829b 100644 ---- a/sysdeps/unix/sysv/linux/rseq-internal.h -+++ b/sysdeps/unix/sysv/linux/rseq-internal.h -@@ -108,13 +108,12 @@ rseq_register_current_thread (struct pthread *self, bool do_rseq) - if (size < RSEQ_AREA_SIZE_INITIAL) - size = RSEQ_AREA_SIZE_INITIAL; - -- /* Initialize the rseq fields that are read by the kernel on -- registration, there is no guarantee that struct pthread is -- cleared on all architectures. */ -+ /* Initialize the whole rseq area to zero prior to registration. */ -+ memset (RSEQ_SELF (), 0, size); -+ -+ /* Set the cpu_id field to RSEQ_CPU_ID_UNINITIALIZED, this is checked by -+ the kernel at registration when CONFIG_DEBUG_RSEQ is enabled. */ - RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_UNINITIALIZED); -- RSEQ_SETMEM (cpu_id_start, 0); -- RSEQ_SETMEM (rseq_cs, 0); -- RSEQ_SETMEM (flags, 0); - - int ret = INTERNAL_SYSCALL_CALL (rseq, RSEQ_SELF (), size, 0, RSEQ_SIG); - if (!INTERNAL_SYSCALL_ERROR_P (ret)) - diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template index b0e35723cc72ac..c6920a76349118 100644 --- a/srcpkgs/glibc/template +++ b/srcpkgs/glibc/template @@ -1,6 +1,6 @@ # Template file for 'glibc' pkgname=glibc -version=2.41 +version=2.43 revision=1 bootstrap=yes short_desc="GNU C library" @@ -8,7 +8,7 @@ maintainer="Enno Boland " license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause" homepage="http://www.gnu.org/software/libc" distfiles="${GNU_SITE}/libc/glibc-${version}.tar.xz" -checksum=a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 +checksum=d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 # Do not strip these files, objcopy errors out. nostrip_files=" XBS5_ILP32_OFFBIG From 84cada3373a47b2e5e322d8782ec38dae87e4349 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 10 May 2026 18:10:00 -0700 Subject: [PATCH 04/42] gcc: update to 16.1.1+20260502. --- common/shlibs | 10 +- srcpkgs/gcc/files/libgnarl-musl.patch | 122 +++------ srcpkgs/gcc/patches/libatomic-autolink.patch | 239 ------------------ srcpkgs/gcc/patches/libatomic-configure.patch | 56 ---- .../patches/libphobos-03-musl-off_t-64.patch | 114 --------- .../patches/libphobos-04-musl-time_t-64.patch | 87 ------- .../libphobos-05-musl-stat_t-time64.patch | 192 -------------- .../patches/libphobos-06-musl-riscv64.patch | 45 ---- .../libphobos-fix-riscv64-identifier.patch | 24 ++ srcpkgs/gcc/patches/musl-ada.patch | 219 ++++++++-------- srcpkgs/gcc/template | 130 +++------- 11 files changed, 200 insertions(+), 1038 deletions(-) delete mode 100644 srcpkgs/gcc/patches/libatomic-autolink.patch delete mode 100644 srcpkgs/gcc/patches/libatomic-configure.patch delete mode 100644 srcpkgs/gcc/patches/libphobos-03-musl-off_t-64.patch delete mode 100644 srcpkgs/gcc/patches/libphobos-04-musl-time_t-64.patch delete mode 100644 srcpkgs/gcc/patches/libphobos-05-musl-stat_t-time64.patch delete mode 100644 srcpkgs/gcc/patches/libphobos-06-musl-riscv64.patch create mode 100644 srcpkgs/gcc/patches/libphobos-fix-riscv64-identifier.patch diff --git a/common/shlibs b/common/shlibs index d04d9989e8f947..b2fbebbd72777c 100644 --- a/common/shlibs +++ b/common/shlibs @@ -68,10 +68,10 @@ libitm.so.1 libitm-4.7.3_1 libivykis.so.0 ivykis-0.43.2_1 liblto_plugin.so.0 gcc-4.7.3_1 libgcc_s.so.1 libgcc-4.4.0_1 -libgo.so.23 libgo-14.1.0_1 libgccjit.so.0 libgccjit-10.2.1pre1_1 -libgphobos.so.5 libgphobos-14.2.1_1 -libgdruntime.so.5 libgdruntime-14.2.1_1 +libgo.so.25 libgo-16.1.0_1 +libgdruntime.so.7 libgdruntime-16.1.0_1 +libgphobos.so.7 libgphobos-16.1.0_1 libperl.so.5.42 perl-5.42.0_1 libgmp.so.10 gmp-5.0.1_1 libgmpxx.so.4 gmpxx-6.0.0_2 @@ -820,8 +820,8 @@ libgdkmm-2.4.so.1 gtkmm2-2.24.0_1 libgtkmm-2.4.so.1 gtkmm2-2.24.0_1 libquadmath.so.0 libquadmath-4.4.0_1 libgfortran.so.5 libgfortran-8.2.0_1 -libgnarl-14.so libada-14.1.0_1 -libgnat-14.so libada-14.1.0_1 +libgnarl-16.so libada-16.1.0_1 +libgnat-16.so libada-16.1.0_1 libsharpyuv.so.0 libsharpyuv-1.3.0_1 libwebp.so.7 libwebp-0.6.0_1 libwebpmux.so.3 libwebp-0.6.0_1 diff --git a/srcpkgs/gcc/files/libgnarl-musl.patch b/srcpkgs/gcc/files/libgnarl-musl.patch index d8e45cd7105c0f..6acae10714a640 100644 --- a/srcpkgs/gcc/files/libgnarl-musl.patch +++ b/srcpkgs/gcc/files/libgnarl-musl.patch @@ -2,12 +2,32 @@ Source: Alpine Linux Upstream: Unknown Reason: Patch libgnarl to not use function missing from musl. +From 5adfe740c027fb8dc9931053f55f7eae222e6bb4 Mon Sep 17 00:00:00 2001 +From: Ariadne Conill +Date: Fri, 25 Jul 2025 02:09:02 -0700 +Subject: [PATCH] ada: libgnarl: remove use of glibc-specific + pthread_rwlockattr_setkind_np + +musl's thread library does not implement it + +Signed-off-by: Ariadne Conill +--- + gcc/ada/libgnarl/s-osinte__linux.ads | 10 ---------- + gcc/ada/libgnarl/s-taprop__linux.adb | 7 ------- + 2 files changed, 17 deletions(-) + +diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads +index 7aeb15da523..5551b701e5a 100644 --- a/gcc/ada/libgnarl/s-osinte__linux.ads +++ b/gcc/ada/libgnarl/s-osinte__linux.ads -@@ -403,12 +403,6 @@ package System.OS_Interface is - PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1; - PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2; +@@ -402,16 +402,6 @@ package System.OS_Interface is + (attr : access pthread_rwlockattr_t) return int; + pragma Import (C, pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy"); +- PTHREAD_RWLOCK_PREFER_READER_NP : constant := 0; +- PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1; +- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2; +- - function pthread_rwlockattr_setkind_np - (attr : access pthread_rwlockattr_t; - pref : int) return int; @@ -17,98 +37,16 @@ Reason: Patch libgnarl to not use function missing from musl. function pthread_rwlock_init (mutex : access pthread_rwlock_t; attr : access pthread_rwlockattr_t) return int; -@@ -470,11 +464,6 @@ package System.OS_Interface is - protocol : int) return int; - pragma Import (C, pthread_mutexattr_setprotocol); - -- function pthread_mutexattr_setprioceiling -- (attr : access pthread_mutexattr_t; -- prioceiling : int) return int; -- pragma Import (C, pthread_mutexattr_setprioceiling); -- - type struct_sched_param is record - sched_priority : int; -- scheduling priority - end record; +diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb +index 8f4c835baa7..6df36c7d8f4 100644 --- a/gcc/ada/libgnarl/s-taprop__linux.adb +++ b/gcc/ada/libgnarl/s-taprop__linux.adb -@@ -198,9 +198,6 @@ package body System.Task_Primitives.Oper - pragma Import - (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup"); - -- function GNAT_has_cap_sys_nice return C.int; -- pragma Import -- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice"); - -- We do not have pragma Linker_Options ("-lcap"); here, because this - -- library is not present on many Linux systems. 'libcap' is the Linux - -- "capabilities" library, called by __gnat_has_cap_sys_nice. -@@ -210,38 +207,6 @@ package body System.Task_Primitives.Oper - -- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on - -- GNU/Linux, so we map 0 .. 98 to 1 .. 99. +@@ -409,16 +409,9 @@ package body System.Task_Primitives.Operations is + Result : C.int; -- function Get_Ceiling_Support return Boolean; -- -- Get the value of the Ceiling_Support constant (see below). -- -- Note well: If this function or related code is modified, it should be -- -- tested by hand, because automated testing doesn't exercise it. -- -- ------------------------- -- -- Get_Ceiling_Support -- -- ------------------------- -- -- function Get_Ceiling_Support return Boolean is -- Ceiling_Support : Boolean := False; -- begin -- if Locking_Policy /= 'C' then -- return False; -- end if; -- -- declare -- function geteuid return Integer; -- pragma Import (C, geteuid, "geteuid"); -- Superuser : constant Boolean := geteuid = 0; -- Has_Cap : constant C.int := GNAT_has_cap_sys_nice; -- pragma Assert (Has_Cap in 0 | 1); -- begin -- Ceiling_Support := Superuser or else Has_Cap = 1; -- end; -- -- return Ceiling_Support; -- end Get_Ceiling_Support; -- -- pragma Warnings (Off, "non-preelaborable call not allowed*"); -- Ceiling_Support : constant Boolean := Get_Ceiling_Support; -- pragma Warnings (On, "non-preelaborable call not allowed*"); - -- True if the locking policy is Ceiling_Locking, and the current process - -- has permission to use this policy. The process has permission if it is - -- running as 'root', or if the capability was set by the setcap command, -@@ -344,7 +309,9 @@ package body System.Task_Primitives.Oper - -- Init_Mutex -- - ---------------- - -+ pragma Warnings (Off, "formal parameter * is not referenced"); - function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is -+ pragma Warnings (On, "formal parameter * is not referenced"); - Mutex_Attr : aliased pthread_mutexattr_t; - Result, Result_2 : C.int; - -@@ -356,16 +323,7 @@ package body System.Task_Primitives.Oper - return Result; - end if; - -- if Ceiling_Support then -- Result := pthread_mutexattr_setprotocol -- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT); -- pragma Assert (Result = 0); -- -- Result := pthread_mutexattr_setprioceiling -- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio)); -- pragma Assert (Result = 0); + begin +- -- Set the rwlock to prefer writer to avoid writers starvation - -- elsif Locking_Policy = 'I' then -+ if Locking_Policy = 'I' then - Result := pthread_mutexattr_setprotocol - (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT); - pragma Assert (Result = 0); -@@ -405,11 +363,6 @@ package body System.Task_Primitives.Oper Result := pthread_rwlockattr_init (RWlock_Attr'Access); pragma Assert (Result = 0); @@ -120,3 +58,5 @@ Reason: Patch libgnarl to not use function missing from musl. Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access); pragma Assert (Result in 0 | ENOMEM); +-- +2.50.1 diff --git a/srcpkgs/gcc/patches/libatomic-autolink.patch b/srcpkgs/gcc/patches/libatomic-autolink.patch deleted file mode 100644 index da1f4889828947..00000000000000 --- a/srcpkgs/gcc/patches/libatomic-autolink.patch +++ /dev/null @@ -1,239 +0,0 @@ -Add --enable-autolink-libatomic, to make gcc link -latomic by default. - -Taken from Alpine: https://git.alpinelinux.org/aports/tree/main/gcc/0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch - -From 7b50823d8a4131e5a55d2499a0f5a52b3d91eed2 Mon Sep 17 00:00:00 2001 -From: Drew DeVault -Date: Wed, 9 Dec 2020 07:42:06 +0000 -Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in - LINK_GCC_C_SEQUENCE_SPEC [PR81358] - -This fixes issues with RISC-V. ---- - Makefile.in | 1 + - gcc/config.in | 6 ++++++ - gcc/config/gnu-user.h | 12 +++++++++++- - gcc/configure | 31 ++++++++++++++++++++++++++++++- - gcc/configure.ac | 21 +++++++++++++++++++++ - gcc/doc/install.texi | 8 ++++++++ - gcc/doc/tm.texi | 8 +++++++- - gcc/doc/tm.texi.in | 8 +++++++- - gcc/gcc.cc | 12 +++++++++++- - 9 files changed, 102 insertions(+), 5 deletions(-) - ---- a/Makefile.in -+++ b/Makefile.in -@@ -237,6 +237,7 @@ HOST_EXPORTS = \ - RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \ - READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \ - TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ -+ TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \ - HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \ - GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \ - GMPINC="$(HOST_GMPINC)"; export GMPINC; \ ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -131,6 +131,12 @@ - #endif - - -+/* Define if libatomic should always be linked. */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_AUTOLINK_LIBATOMIC -+#endif -+ -+ - /* Define to 1 to specify that we are using the BID decimal floating point - format instead of DPD */ - #ifndef USED_FOR_TARGET ---- a/gcc/config/gnu-user.h -+++ b/gcc/config/gnu-user.h -@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTI - #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " - #endif - -+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC) -+# ifdef LD_AS_NEEDED_OPTION -+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION -+# else -+# define LINK_LIBATOMIC_SPEC "-latomic" -+# endif -+#elif !defined(LINK_LIBATOMIC_SPEC) -+# define LINK_LIBATOMIC_SPEC "" -+#endif -+ - #define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \ -- "%{static|static-pie:--start-group} %G %{!nolibc:%L} \ -+ "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L} \ - %{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}" - - #undef LINK_GCC_C_SEQUENCE_SPEC ---- a/gcc/configure -+++ b/gcc/configure -@@ -1002,6 +1002,7 @@ with_changes_root_url - enable_languages - with_multilib_list - with_multilib_generator -+enable_autolink_libatomic - with_zstd - with_zstd_include - with_zstd_lib -@@ -1738,6 +1739,9 @@ Optional Features: - --disable-shared don't provide a shared libgcc - --disable-gcov don't provide libgcov and related host tools - --enable-languages=LIST specify which front-ends to build -+ --enable-autolink-libatomic -+ enable automatic linking of libatomic (ignored if -+ not built) - --disable-rpath do not hardcode runtime library paths - --enable-sjlj-exceptions - arrange to use setjmp/longjmp exception handling -@@ -8377,7 +8381,6 @@ else - fi - - -- - # Check whether --with-multilib-generator was given. - if test "${with_multilib_generator+set}" = set; then : - withval=$with_multilib_generator; : -@@ -8385,6 +8388,32 @@ else - with_multilib_generator=default - fi - -+# If libatomic is available, whether it should be linked automatically -+# Check whether --enable-autolink-libatomic was given. -+if test "${enable_autolink_libatomic+set}" = set; then : -+ enableval=$enable_autolink_libatomic; -+ case $enable_autolink_libatomic in -+ yes | no) ;; -+ *) as_fn_error $? "'$enable_autolink_libatomic' is an invalid value for -+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'." "$LINENO" 5 ;; -+ esac -+ -+else -+ enable_autolink_libatomic='' -+fi -+ -+ -+if test x$enable_autolink_libatomic = xyes; then -+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then -+ -+$as_echo "#define ENABLE_AUTOLINK_LIBATOMIC 1" >>confdefs.h -+ -+ else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&5 -+$as_echo "$as_me: WARNING: libatomic is not build for this target, --enable-autolink-libatomic ignored" >&2;} -+ fi -+fi -+ - - # ------------------------- - # Checks for other programs ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1215,6 +1215,27 @@ AC_ARG_WITH(multilib-generator, - :, - with_multilib_generator=default) - -+# If libatomic is available, whether it should be linked automatically -+AC_ARG_ENABLE(autolink-libatomic, -+[AS_HELP_STRING([--enable-autolink-libatomic], -+ [enable automatic linking of libatomic (ignored if not built)])], -+[ -+ case $enable_autolink_libatomic in -+ yes | no) ;; -+ *) AC_MSG_ERROR(['$enable_autolink_libatomic' is an invalid value for -+--enable-autolink-libatomic. Valid choices are 'yes' and 'no'.]) ;; -+ esac -+], [enable_autolink_libatomic='']) -+ -+if test x$enable_autolink_libatomic = xyes; then -+ if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then -+ AC_DEFINE(ENABLE_AUTOLINK_LIBATOMIC, 1, -+ [Define if libatomic should always be linked.]) -+ else -+ AC_MSG_WARN([libatomic is not build for this target, --enable-autolink-libatomic ignored]) -+ fi -+fi -+ - # ------------------------- - # Checks for other programs - # ------------------------- ---- a/gcc/doc/install.texi -+++ b/gcc/doc/install.texi -@@ -2525,6 +2525,14 @@ files, but these changed header paths ma - environments. Enabled by default, and may be disabled using - @option{--disable-canonical-system-headers}. - -+@item --enable-autolink-libatomic -+@itemx --disable-autolink-libatomic -+Tell GCC that it should automatically link libatomic; if supported by -+the linker, the file is only linked as needed. This flag is ignored -+when libatomic is not built. Note that this conigure flag is in particular -+useful when building an offloading-target compiler; as for those, a -+user had to specify @code{-foffload=target=-latomic} otherwise. -+ - @item --with-glibc-version=@var{major}.@var{minor} - Tell GCC that when the GNU C Library (glibc) is used on the target it - will be version @var{major}.@var{minor} or later. Normally this can ---- a/gcc/doc/tm.texi -+++ b/gcc/doc/tm.texi -@@ -390,7 +390,13 @@ the argument @option{-lgcc} to tell the - - @defmac LINK_GCC_C_SEQUENCE_SPEC - The sequence in which libgcc and libc are specified to the linker. --By default this is @code{%G %L %G}. -+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}. -+@end defmac -+ -+@defmac LINK_LIBATOMIC_SPEC -+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link -+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC} -+is set. - @end defmac - - @defmac POST_LINK_SPEC ---- a/gcc/doc/tm.texi.in -+++ b/gcc/doc/tm.texi.in -@@ -390,7 +390,13 @@ the argument @option{-lgcc} to tell the - - @defmac LINK_GCC_C_SEQUENCE_SPEC - The sequence in which libgcc and libc are specified to the linker. --By default this is @code{%G %L %G}. -+By default this is @code{%G LINK_LIBATOMIC_SPEC %L %G}. -+@end defmac -+ -+@defmac LINK_LIBATOMIC_SPEC -+This macro is used in the default @code{LINK_GCC_C_SEQUENCE_SPEC} to link -+libatomic. By default, it is unset unless @code{ENABLE_AUTOLINK_LIBATOMIC} -+is set. - @end defmac - - @defmac POST_LINK_SPEC ---- a/gcc/gcc.cc -+++ b/gcc/gcc.cc -@@ -976,13 +976,23 @@ proper position among the other output f - # define ASM_DEBUG_OPTION_SPEC "" - #endif - -+#if !defined(LINK_LIBATOMIC_SPEC) && defined(ENABLE_AUTOLINK_LIBATOMIC) -+# ifdef LD_AS_NEEDED_OPTION -+# define LINK_LIBATOMIC_SPEC LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION -+# else -+# define LINK_LIBATOMIC_SPEC "-latomic" -+# endif -+#elif !defined(LINK_LIBATOMIC_SPEC) -+# define LINK_LIBATOMIC_SPEC "" -+#endif -+ - /* Here is the spec for running the linker, after compiling all files. */ - - /* This is overridable by the target in case they need to specify the - -lgcc and -lc order specially, yet not require them to override all - of LINK_COMMAND_SPEC. */ - #ifndef LINK_GCC_C_SEQUENCE_SPEC --#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}" -+#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:" LINK_LIBATOMIC_SPEC " %L %G}" - #endif - - #ifndef LINK_SSP_SPEC diff --git a/srcpkgs/gcc/patches/libatomic-configure.patch b/srcpkgs/gcc/patches/libatomic-configure.patch deleted file mode 100644 index 10e64b8f229720..00000000000000 --- a/srcpkgs/gcc/patches/libatomic-configure.patch +++ /dev/null @@ -1,56 +0,0 @@ -Fix gcc check to build libatomic properly with --enable-autolink-libatomic. - -Taken from Alpine: https://git.alpinelinux.org/aports/tree/main/gcc/0036-configure-fix-detection-of-atomic-builtins-in-libato.patch - -From 4baaeb9661fa4015d9701e3616ce1ad4e8a07fd8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=B6ren=20Tempel?= -Date: Sun, 29 Aug 2021 09:45:27 +0200 -Subject: [PATCH] configure: fix detection of atomic builtins in libatomic - configure script - -Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by -default) causes the libatomic configure script to incorrectly detect -which builtins are available on riscv64. This then causes incorrect code -generation for libatomic since it assumes compiler builtins to be -available which are not actually available on riscv64. - -This commit fixes this issue by disabling linking of libatomic configure -test code entirely, thereby preventing linking against libatomic. - -See: - -* https://gitlab.alpinelinux.org/alpine/aports/-/issues/12948 -* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c6 ---- - libatomic/configure.tgt | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - ---- a/libatomic/configure.tgt -+++ b/libatomic/configure.tgt -@@ -30,6 +30,26 @@ - # on ${target_cpu}. For example to allow proper use of multilibs. - configure_tgt_pre_target_cpu_XCFLAGS="${XCFLAGS}" - -+# The libatomic configure script performs several checks to determine -+# whether builtins for atomic operations are available. When compiling -+# with --enable-autolink-libatomic the test code compiled by the -+# configure script is also linked against libatomic. This causes it -+# to think that builtins are available, even if there are not, since -+# the tested symbols are provided by libatomic. -+# -+# This is a hack to ensure that we don't link against libatomic by not -+# linking any configure test code at all when --enable-autolink-libatomic -+# is given. -+# -+# See: -+# -+# * https://gitlab.alpinelinux.org/alpine/aports/-/issues/12817 -+# * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101996#c4 -+# -+if test x$enable_autolink_libatomic = xyes; then -+ gcc_no_link=yes -+fi -+ - case "${target_cpu}" in - alpha*) - # fenv.c needs this option to generate inexact exceptions. diff --git a/srcpkgs/gcc/patches/libphobos-03-musl-off_t-64.patch b/srcpkgs/gcc/patches/libphobos-03-musl-off_t-64.patch deleted file mode 100644 index fb33cb04aa5ffb..00000000000000 --- a/srcpkgs/gcc/patches/libphobos-03-musl-off_t-64.patch +++ /dev/null @@ -1,114 +0,0 @@ ---- a/libphobos/libdruntime/core/sys/posix/dirent.d -+++ b/libphobos/libdruntime/core/sys/posix/dirent.d -@@ -368,6 +368,7 @@ else version (CRuntime_Bionic) - } - else version (CRuntime_Musl) - { -+ // NOTE: marker for diff - enum - { - DT_UNKNOWN = 0, -@@ -385,15 +386,7 @@ else version (CRuntime_Musl) - { - } - -- static if ( __USE_FILE_OFFSET64 ) -- { -- dirent* readdir64(DIR*); -- alias readdir64 readdir; -- } -- else -- { -- dirent* readdir(DIR*); -- } -+ dirent* readdir(DIR*); - } - else version (CRuntime_UClibc) - { ---- a/libphobos/libdruntime/core/sys/posix/sys/mman.d -+++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d -@@ -293,11 +293,7 @@ else version (CRuntime_Bionic) - } - else version (CRuntime_Musl) - { -- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t); -- static if (__USE_FILE_OFFSET64) -- alias mmap = mmap64; -- else -- void* mmap(void*, size_t, int, int, int, off_t); -+ void* mmap(void*, size_t, int, int, int, off_t); - int munmap(void*, size_t); - } - else version (CRuntime_UClibc) ---- a/libphobos/libdruntime/core/sys/posix/sys/types.d -+++ b/libphobos/libdruntime/core/sys/posix/sys/types.d -@@ -111,6 +111,7 @@ version (linux) - - version (CRuntime_Musl) - { -+ static assert(off_t.sizeof == 8); - /** - * Musl versions before v1.2.0 (up to v1.1.24) had different - * definitions for `time_t` for 32 bits. ---- a/libphobos/libdruntime/core/sys/posix/stdio.d -+++ b/libphobos/libdruntime/core/sys/posix/stdio.d -@@ -182,10 +182,9 @@ else version (CRuntime_UClibc) - } - else version (CRuntime_Musl) - { -- static if ( __USE_FILE_OFFSET64 ) -+ static if (false) - { - int fgetpos64(FILE*, fpos_t *); -- alias fgetpos64 fgetpos; - - FILE* fopen64(const scope char*, const scope char*); - alias fopen64 fopen; -@@ -320,26 +319,8 @@ else version (CRuntime_Musl) - { - enum L_ctermid = 20; - -- static if ( __USE_FILE_OFFSET64 ) -- { -- int fseeko64(FILE*, off_t, int); -- alias fseeko64 fseeko; -- } -- else -- { -- int fseeko(FILE*, off_t, int); -- } -- -- static if ( __USE_FILE_OFFSET64 ) -- { -- off_t ftello64(FILE*); -- alias ftello64 ftello; -- } -- else -- { -- off_t ftello(FILE*); -- } -- -+ int fseeko(FILE*, off_t, int); -+ off_t ftello(FILE*); - ssize_t getdelim(char**, size_t*, int, FILE*); - ssize_t getline(char**, size_t*, FILE*); - } ---- a/libphobos/libdruntime/core/sys/posix/stdlib.d -+++ b/libphobos/libdruntime/core/sys/posix/stdlib.d -@@ -604,16 +604,6 @@ else version (CRuntime_Musl) - void srandom(uint); - int unlockpt(int); - -- static if ( __USE_LARGEFILE64 ) -- { -- int mkstemp64(char*); -- alias mkstemp64 mkstemp; -- } -- else -- { -- int mkstemp(char*); -- } -- - } - else version (Solaris) - { diff --git a/srcpkgs/gcc/patches/libphobos-04-musl-time_t-64.patch b/srcpkgs/gcc/patches/libphobos-04-musl-time_t-64.patch deleted file mode 100644 index 4109bae01d5d95..00000000000000 --- a/srcpkgs/gcc/patches/libphobos-04-musl-time_t-64.patch +++ /dev/null @@ -1,87 +0,0 @@ -https://github.com/dlang/dmd/commit/4aa97119c2d7c81ce3ac8bf5027cd83db63dda0d -https://github.com/dlang/dmd/pull/21249/commits/0307cefd7c563aaaf86eccedd56b8b872f8566c3 - ---- a/gcc/config/linux-d.cc -+++ b/gcc/config/linux-d.cc -@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. - - /* Implement TARGET_D_OS_VERSIONS for Linux targets. */ - -+#define LIBDRUNTIME_MUSL_PRE_TIME64 0 - static void - linux_d_os_builtins (void) - { -@@ -42,8 +43,12 @@ linux_d_os_builtins (void) - d_add_builtin_version ("CRuntime_UClibc"); - else if (OPTION_BIONIC) - d_add_builtin_version ("CRuntime_Bionic"); -- else if (OPTION_MUSL) -+ else if (OPTION_MUSL) { - d_add_builtin_version ("CRuntime_Musl"); -+#if LIBDRUNTIME_MUSL_PRE_TIME64 -+ d_add_builtin_version ("CRuntime_Musl_Pre_Time64"); -+#endif -+ } - } - - /* Handle a call to `__traits(getTargetInfo, "objectFormat")'. */ ---- a/libphobos/libdruntime/core/sys/posix/time.d -+++ b/libphobos/libdruntime/core/sys/posix/time.d -@@ -198,11 +198,47 @@ int timer_settime(timer_t, int, const sc - - version (linux) - { -+ version (CRuntime_Musl) { -+ version (CRuntime_Musl_Pre_Time64) { -+ struct timespec -+ { -+ time_t tv_sec; -+ c_long tv_nsec; -+ } -+ } else version (BigEndian) { -+ struct timespec -+ { -+ time_t tv_sec; -+ static if (time_t.sizeof != c_long.sizeof) { -+ c_long __tv_nsec_pad; -+ } -+ c_long tv_nsec; -+ } -+ } else version (LittleEndian) { -+ struct timespec -+ { -+ time_t tv_sec; -+ c_long tv_nsec; -+ static if (time_t.sizeof != c_long.sizeof) { -+ c_long __tv_nsec_pad; -+ } -+ } -+ } else { -+ static assert(false, "Unsupported platform"); -+ } -+ static assert(timespec.sizeof == 2 * time_t.sizeof); -+ version (CRuntime_Musl_Pre_Time64) { -+ static assert(time_t.sizeof == c_long.sizeof); -+ } else { -+ static assert(time_t.sizeof == 8); -+ } -+ } else { - struct timespec - { - time_t tv_sec; - c_long tv_nsec; - } -+ } - } - else version (Darwin) - { ---- a/gcc/d/dmd/cond.d -+++ b/gcc/d/dmd/cond.d -@@ -669,6 +669,7 @@ extern (C++) final class VersionConditio - case "CRuntime_Glibc": - case "CRuntime_Microsoft": - case "CRuntime_Musl": -+ case "CRuntime_Musl_Pre_Time64": - case "CRuntime_Newlib": - case "CRuntime_UClibc": - case "CRuntime_WASI": diff --git a/srcpkgs/gcc/patches/libphobos-05-musl-stat_t-time64.patch b/srcpkgs/gcc/patches/libphobos-05-musl-stat_t-time64.patch deleted file mode 100644 index 6de1bd975b868f..00000000000000 --- a/srcpkgs/gcc/patches/libphobos-05-musl-stat_t-time64.patch +++ /dev/null @@ -1,192 +0,0 @@ ---- a/libphobos/libdruntime/core/sys/posix/sys/stat.d -+++ b/libphobos/libdruntime/core/sys/posix/sys/stat.d -@@ -67,6 +67,39 @@ version (linux) - { - version (X86) - { -+ version (CRuntime_Musl) -+ { -+ struct stat_t -+ { -+ dev_t st_dev; -+ int __st_dev_pad; -+ c_long __st_ino; -+ mode_t st_mode; -+ nlink_t st_nlink; -+ uid_t st_uid; -+ gid_t st_gid; -+ dev_t st_rdev; -+ int __st_rdev_pad; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ timespec st_atim; -+ timespec st_mtim; -+ timespec st_ctim; -+ extern(D) @safe @property inout pure nothrow -+ { -+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; } -+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; } -+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; } -+ } -+ ino_t st_ino; -+ } -+ version (CRuntime_Musl_Pre_Time64) { -+ static assert(stat_t.sizeof == 96); -+ } else { -+ static assert(stat_t.sizeof == 120); -+ } -+ } else { - struct stat_t - { - dev_t st_dev; -@@ -119,6 +152,7 @@ version (linux) - c_ulong __unused5; - } - } -+ } - } - else version (X86_64) - { -@@ -256,6 +290,39 @@ version (linux) - } - else version (MIPS_O32) - { -+ version (CRuntime_Musl) { -+ struct stat_t -+ { -+ dev_t st_dev; -+ c_long[2] __st_pad1; -+ ino_t st_ino; -+ mode_t st_mode; -+ nlink_t st_nlink; -+ uid_t st_uid; -+ gid_t st_gid; -+ dev_t st_rdev; -+ c_long[2] __st_pad2; -+ off_t st_size; -+ timespec st_atim; -+ timespec st_mtim; -+ timespec st_ctim; -+ extern(D) @safe @property inout pure nothrow -+ { -+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; } -+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; } -+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; } -+ } -+ blksize_t st_blksize; -+ c_long __st_pad3; -+ blkcnt_t st_blocks; -+ c_long[14] __st_pad4; -+ } -+ version (CRuntime_Musl_Pre_Time64) { -+ static assert(stat_t.sizeof == 160); -+ } else { -+ static assert(stat_t.sizeof == 188); -+ } -+ } else { - struct stat_t - { - c_ulong st_dev; -@@ -314,6 +381,7 @@ version (linux) - static assert(stat_t.sizeof == 144); - else - static assert(stat_t.sizeof == 160); -+ } - } - else version (MIPS64) - { -@@ -385,6 +453,37 @@ version (linux) - } - else version (PPC) - { -+ version (CRuntime_Musl) { -+ struct stat_t -+ { -+ dev_t st_dev; -+ ino_t st_ino; -+ mode_t st_mode; -+ nlink_t st_nlink; -+ uid_t st_uid; -+ gid_t st_gid; -+ dev_t st_rdev; -+ ushort __st_rdev_pad; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ timespec st_atim; -+ timespec st_mtim; -+ timespec st_ctim; -+ extern(D) @safe @property inout pure nothrow -+ { -+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; } -+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; } -+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; } -+ } -+ uint[2] __unused; -+ } -+ version (CRuntime_Musl_Pre_Time64) { -+ static assert(stat_t.sizeof == 104); -+ } else { -+ static assert(stat_t.sizeof == 128); -+ } -+ } else { - struct stat_t - { - dev_t st_dev; -@@ -432,6 +531,7 @@ version (linux) - static assert(stat_t.sizeof == 104); - else - static assert(stat_t.sizeof == 88); -+ } - } - else version (PPC64) - { -@@ -559,6 +659,39 @@ version (linux) - } - else version (ARM) - { -+ version (CRuntime_Musl) -+ { -+ struct stat_t -+ { -+ dev_t st_dev; -+ int __st_dev_pad; -+ c_long __st_ino; -+ mode_t st_mode; -+ nlink_t st_nlink; -+ uid_t st_uid; -+ gid_t st_gid; -+ dev_t st_rdev; -+ int __st_rdev_pad; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ timespec st_atim; -+ timespec st_mtim; -+ timespec st_ctim; -+ extern(D) @safe @property inout pure nothrow -+ { -+ ref inout(time_t) st_atime() return { return st_atim.tv_sec; } -+ ref inout(time_t) st_mtime() return { return st_mtim.tv_sec; } -+ ref inout(time_t) st_ctime() return { return st_ctim.tv_sec; } -+ } -+ ino_t st_ino; -+ } -+ version (CRuntime_Musl_Pre_Time64) { -+ static assert(stat_t.sizeof == 104); -+ } else { -+ static assert(stat_t.sizeof == 128); -+ } -+ } else { - private - { - alias __dev_t = ulong; -@@ -651,6 +784,7 @@ version (linux) - static assert(stat_t.sizeof == 104); - else - static assert(stat_t.sizeof == 88); -+ } - } - else version (AArch64) - { diff --git a/srcpkgs/gcc/patches/libphobos-06-musl-riscv64.patch b/srcpkgs/gcc/patches/libphobos-06-musl-riscv64.patch deleted file mode 100644 index 2a6080f3ad1649..00000000000000 --- a/srcpkgs/gcc/patches/libphobos-06-musl-riscv64.patch +++ /dev/null @@ -1,45 +0,0 @@ -https://git.musl-libc.org/cgit/musl/tree/arch/riscv32/bits?h=v1.2.5 -https://git.musl-libc.org/cgit/musl/tree/arch/riscv64/bits?h=v1.2.5 -https://git.musl-libc.org/cgit/musl/tree/arch/loongarch64/bits?h=v1.2.5 - ---- a/libphobos/libdruntime/core/stdc/fenv.d -+++ b/libphobos/libdruntime/core/stdc/fenv.d -@@ -443,6 +443,19 @@ else version (CRuntime_Musl) - } - alias ushort fexcept_t; - } -+ else version(LoongArch64) -+ { -+ struct fenv_t -+ { -+ uint __cw; -+ } -+ alias uint fexcept_t; -+ } -+ else version (RISCV_Any) -+ { -+ alias uint fenv_t; -+ alias uint fexcept_t; -+ } - else - { - static assert(false, "Architecture not supported."); ---- a/libphobos/libdruntime/core/sys/posix/signal.d -+++ b/libphobos/libdruntime/core/sys/posix/signal.d -@@ -2758,6 +2758,16 @@ else version (CRuntime_Musl) - enum MINSIGSTKSZ = 2048; - enum SIGSTKSZ = 8192; - } -+ else version (LoongArch64) -+ { -+ enum MINSIGSTKSZ = 4096; -+ enum SIGSTKSZ = 16384; -+ } -+ else version (RISCV_Any) -+ { -+ enum MINSIGSTKSZ = 2048; -+ enum SIGSTKSZ = 8192; -+ } - else - static assert(0, "unimplemented"); - diff --git a/srcpkgs/gcc/patches/libphobos-fix-riscv64-identifier.patch b/srcpkgs/gcc/patches/libphobos-fix-riscv64-identifier.patch new file mode 100644 index 00000000000000..69ef4835870e71 --- /dev/null +++ b/srcpkgs/gcc/patches/libphobos-fix-riscv64-identifier.patch @@ -0,0 +1,24 @@ +From 8f692ef7cd84d1f1848f0f09ba57226a906d0d2b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Matheus=20C=2E=20Fran=C3=A7a?= + +Date: Mon, 23 Mar 2026 17:30:18 -0300 +Subject: [PATCH] Fix version identifier for RISC-V architecture + +--- + druntime/src/core/stdc/fenv.d | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/druntime/src/core/stdc/fenv.d b/druntime/src/core/stdc/fenv.d +index 1c49d84906e6..8e1c4072e242 100644 +--- a/libphobos/libdruntime/core/stdc/fenv.d ++++ b/libphobos/libdruntime/core/stdc/fenv.d +@@ -440,7 +440,7 @@ else version (CRuntime_Musl) + } + alias fexcept_t = uint; + } +- else version (RICV64) ++ else version (RISCV64) + { + alias fenv_t = uint; + alias fexcept_t = uint; + diff --git a/srcpkgs/gcc/patches/musl-ada.patch b/srcpkgs/gcc/patches/musl-ada.patch index ed283c91559b90..fd6b456a303b75 100644 --- a/srcpkgs/gcc/patches/musl-ada.patch +++ b/srcpkgs/gcc/patches/musl-ada.patch @@ -15,114 +15,24 @@ @@ -3465,7 +3470,6 @@ __gnat_lwp_self (void) #endif - #if defined (__linux__) + #if defined (__linux__) || defined (__ANDROID__) -#include /* glibc versions earlier than 2.7 do not define the routines to handle dynamically allocated CPU sets. For these targets, we use the static -@@ -3475,7 +3479,7 @@ __gnat_lwp_self (void) - - /* Dynamic cpu sets */ - --cpu_set_t * -+void * - __gnat_cpu_alloc (size_t count) - { - return CPU_ALLOC (count); -@@ -3488,33 +3492,33 @@ __gnat_cpu_alloc_size (size_t count) - } - - void --__gnat_cpu_free (cpu_set_t *set) -+__gnat_cpu_free (void *set) - { -- CPU_FREE (set); -+ CPU_FREE ((cpu_set_t *) set); - } - - void --__gnat_cpu_zero (size_t count, cpu_set_t *set) -+__gnat_cpu_zero (size_t count, void *set) - { -- CPU_ZERO_S (count, set); -+ CPU_ZERO_S (count, (cpu_set_t *) set); - } - - void --__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set) -+__gnat_cpu_set (int cpu, size_t count, void *set) - { - /* Ada handles CPU numbers starting from 1, while C identifies the first - CPU by a 0, so we need to adjust. */ -- CPU_SET_S (cpu - 1, count, set); -+ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set); - } - - #else /* !CPU_ALLOC */ - - /* Static cpu sets */ - --cpu_set_t * -+void * - __gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED) - { -- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t)); -+ return xmalloc (sizeof (cpu_set_t)); - } - - size_t -@@ -3524,23 +3528,23 @@ __gnat_cpu_alloc_size (size_t count ATTR - } - - void --__gnat_cpu_free (cpu_set_t *set) -+__gnat_cpu_free (void *set) - { - free (set); - } - - void --__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) -+__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set) - { -- CPU_ZERO (set); -+ CPU_ZERO ((cpu_set_t *) set); - } - - void --__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) -+__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set) - { - /* Ada handles CPU numbers starting from 1, while C identifies the first - CPU by a 0, so we need to adjust. */ -- CPU_SET (cpu - 1, set); -+ CPU_SET (cpu - 1, (cpu_set_t *) set); - } - #endif /* !CPU_ALLOC */ - #endif /* __linux__ */ --- a/gcc/ada/adaint.h +++ b/gcc/ada/adaint.h -@@ -319,13 +319,11 @@ extern void *__gnat_lwp_self (voi +@@ -319,6 +319,7 @@ extern void *__gnat_lwp_self (voi /* Routines for interface to required CPU set primitives */ --#include -- --extern cpu_set_t *__gnat_cpu_alloc (size_t); -+extern void * __gnat_cpu_alloc (size_t); - extern size_t __gnat_cpu_alloc_size (size_t); --extern void __gnat_cpu_free (cpu_set_t *); --extern void __gnat_cpu_zero (size_t, cpu_set_t *); --extern void __gnat_cpu_set (int, size_t, cpu_set_t *); -+extern void __gnat_cpu_free (void *); -+extern void __gnat_cpu_zero (size_t, void *); -+extern void __gnat_cpu_set (int, size_t, void *); - #endif ++#define _GNU_SOURCE 1 + #include - #if defined (_WIN32) + extern cpu_set_t *__gnat_cpu_alloc (size_t); --- a/gcc/ada/Makefile.rtl +++ b/gcc/ada/Makefile.rtl -@@ -1558,7 +1558,7 @@ ifeq ($(strip $(filter-out %86 linux%,$( +@@ -1641,7 +1641,7 @@ ifeq ($(strip $(filter-out %86 linux%,$( s-intman.adb Date: Sun, 10 May 2026 18:22:35 -0700 Subject: [PATCH 05/42] binutils: update to 2.46.0. --- common/shlibs | 2 +- srcpkgs/binutils/template | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/shlibs b/common/shlibs index b2fbebbd72777c..e31d6c3c94a532 100644 --- a/common/shlibs +++ b/common/shlibs @@ -80,7 +80,7 @@ libmpfr.so.6 mpfr-4.0.0_1 libppl.so.14 ppl-1.2_1 libppl_c.so.4 ppl-0.11_1 libstdc++.so.6 libstdc++-4.4.0_1 -libsframe.so.1 binutils-libs-2.41_1 +libsframe.so.3 binutils-libs-2.46.0_1 libctf-nobfd.so.0 binutils-libs-2.41_1 libctf.so.0 binutils-libs-2.41_1 libncurses.so.6 ncurses-libs-6.0_1 ignore diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template index aa49ce56c945b7..00aeab37385370 100644 --- a/srcpkgs/binutils/template +++ b/srcpkgs/binutils/template @@ -1,7 +1,7 @@ # Template file for 'binutils' pkgname=binutils -version=2.44 -revision=2 +version=2.46.0 +revision=1 bootstrap=yes hostmakedepends="pkgconf tar" makedepends="zlib-devel libzstd-devel" @@ -10,7 +10,7 @@ maintainer="Enno Boland " license="GPL-3.0-or-later" homepage="http://www.gnu.org/software/binutils/" distfiles="${GNU_SITE}/binutils/binutils-${version}.tar.xz" -checksum=ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum=d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 build_options="all_targets" desc_option_all_targets="Enable all supported targets" @@ -177,7 +177,7 @@ binutils-devel_package() { binutils-libs_package() { short_desc+=" - shared libraries" pkg_install() { - vmove "usr/lib/lib*-${version}.so" + vmove "usr/lib/lib*-${version}.*.so" vmove "usr/lib/*.so.*" } } From d5e975f6ee3d95443390176183e72618efde1704 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 10 May 2026 19:05:55 -0700 Subject: [PATCH 06/42] linux-tools: update to 6.18. --- common/shlibs | 2 +- .../linux-tools/patches/musl-basename.patch | 99 ------------------- srcpkgs/linux-tools/patches/perf.patch | 15 --- srcpkgs/linux-tools/patches/ppc-bpf.patch | 15 --- srcpkgs/linux-tools/template | 11 ++- 5 files changed, 8 insertions(+), 134 deletions(-) delete mode 100644 srcpkgs/linux-tools/patches/musl-basename.patch delete mode 100644 srcpkgs/linux-tools/patches/perf.patch delete mode 100644 srcpkgs/linux-tools/patches/ppc-bpf.patch diff --git a/common/shlibs b/common/shlibs index e31d6c3c94a532..e130b2d37ba138 100644 --- a/common/shlibs +++ b/common/shlibs @@ -1372,7 +1372,7 @@ libsilcclient-1.1.so.4 silc-toolkit-1.1.11_1 libsilc-1.1.so.4 silc-toolkit-1.1.11_1 libphorward.so.0 libphorward-0.17_1 libusbip.so.0 libusbip-3.10_1 -libcpupower.so.0 libcpupower-3.10_1 +libcpupower.so.1 libcpupower-4.18_1 librsync.so.2 librsync-1.0.0_1 libserf-1.so.1 serf-1.3.9_13 libmpdclient.so.2 libmpdclient-0.28_1 diff --git a/srcpkgs/linux-tools/patches/musl-basename.patch b/srcpkgs/linux-tools/patches/musl-basename.patch deleted file mode 100644 index 99f5093d65c7ec..00000000000000 --- a/srcpkgs/linux-tools/patches/musl-basename.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 581037151910126a7934e369e4b6ac70eda9a703 Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Thu, 21 Mar 2024 11:13:30 -0300 -Subject: [PATCH] perf probe: Add missing libgen.h header needed for using - basename() - -This prototype is obtained indirectly, by luck, from some other header -in probe-event.c in most systems, but recently exploded on alpine:edge: - - 8 13.39 alpine:edge : FAIL gcc version 13.2.1 20240309 (Alpine 13.2.1_git20240309) - util/probe-event.c: In function 'convert_exec_to_group': - util/probe-event.c:225:16: error: implicit declaration of function 'basename' [-Werror=implicit-function-declaration] - 225 | ptr1 = basename(exec_copy); - | ^~~~~~~~ - util/probe-event.c:225:14: error: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion] - 225 | ptr1 = basename(exec_copy); - | ^ - cc1: all warnings being treated as errors - make[3]: *** [/git/perf-6.8.0/tools/build/Makefile.build:158: util] Error 2 - -Fix it by adding the libgen.h header where basename() is prototyped. - -Fixes: fb7345bbf7fad9bf ("perf probe: Support basic dwarf-based operations on uprobe events") -Cc: Masami Hiramatsu -Cc: Adrian Hunter -Cc: Ian Rogers -Cc: Jiri Olsa -Cc: Namhyung Kim -Link: https://lore.kernel.org/lkml/ -Signed-off-by: Arnaldo Carvalho de Melo ---- - tools/perf/util/probe-event.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c -index 2a0ad9ecf0a20e..5c12459e9765f6 100644 ---- a/tools/perf/util/probe-event.c -+++ b/tools/perf/util/probe-event.c -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include - #include -From 29788f39a4171dd48a6d19eb78cf2ab168c4349a Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Mon, 29 Jan 2024 11:33:26 -0300 -Subject: [PATCH] bpftool: Be more portable by using POSIX's basename() - -musl libc had the basename() prototype in string.h, but this is a -glibc-ism, now they removed the _GNU_SOURCE bits in their devel distro, -Alpine Linux edge: - - https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 - -So lets use the POSIX version, the whole rationale is spelled out at: - - https://gitlab.alpinelinux.org/alpine/aports/-/issues/15643 - -Signed-off-by: Arnaldo Carvalho de Melo -Signed-off-by: Daniel Borkmann -Acked-by: Jiri Olsa -Acked-by: Quentin Monnet -Link: https://lore.kernel.org/lkml/ZZhsPs00TI75RdAr@kernel.org -Link: https://lore.kernel.org/bpf/Zbe3NuOgaupvUcpF@kernel.org ---- - tools/bpf/bpftool/gen.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/tools/bpf/bpftool/gen.c b/tools/bpf/bpftool/gen.c -index ee3ce2b8000d75..a9334c57e85991 100644 ---- a/tools/bpf/bpftool/gen.c -+++ b/tools/bpf/bpftool/gen.c -@@ -7,6 +7,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -56,9 +57,11 @@ static bool str_has_suffix(const char *str, const char *suffix) - - static void get_obj_name(char *name, const char *file) - { -- /* Using basename() GNU version which doesn't modify arg. */ -- strncpy(name, basename(file), MAX_OBJ_NAME_LEN - 1); -- name[MAX_OBJ_NAME_LEN - 1] = '\0'; -+ char file_copy[PATH_MAX]; -+ -+ /* Using basename() POSIX version to be more portable. */ -+ strncpy(file_copy, file, PATH_MAX - 1)[PATH_MAX - 1] = '\0'; -+ strncpy(name, basename(file_copy), MAX_OBJ_NAME_LEN - 1)[MAX_OBJ_NAME_LEN - 1] = '\0'; - if (str_has_suffix(name, ".o")) - name[strlen(name) - 2] = '\0'; - sanitize_identifier(name); - diff --git a/srcpkgs/linux-tools/patches/perf.patch b/srcpkgs/linux-tools/patches/perf.patch deleted file mode 100644 index 87d96156241e9f..00000000000000 --- a/srcpkgs/linux-tools/patches/perf.patch +++ /dev/null @@ -1,15 +0,0 @@ -https://lore.kernel.org/linux-perf-users/3a8c66ec-537d-4e29-bf08-226dd41b08aa@linux.intel.com/ - ---- a/tools/perf/builtin-top.c -+++ b/tools/perf/builtin-top.c -@@ -1027,8 +1027,8 @@ - - evlist__for_each_entry(evlist, counter) { - try_again: -- if (evsel__open(counter, top->evlist->core.user_requested_cpus, -- top->evlist->core.threads) < 0) { -+ if (evsel__open(counter, counter->core.cpus, -+ counter->core.threads) < 0) { - - /* - * Specially handle overwrite fall back. diff --git a/srcpkgs/linux-tools/patches/ppc-bpf.patch b/srcpkgs/linux-tools/patches/ppc-bpf.patch deleted file mode 100644 index b5fb75084aa9c4..00000000000000 --- a/srcpkgs/linux-tools/patches/ppc-bpf.patch +++ /dev/null @@ -1,15 +0,0 @@ -https://www.mail-archive.com/netdev@vger.kernel.org/msg364272.html - ---- a/tools/include/uapi/linux/types.h -+++ b/tools/include/uapi/linux/types.h -@@ -20,4 +20,10 @@ typedef __u32 __bitwise __wsum; - #define __aligned_be64 __be64 __attribute__((aligned(8))) - #define __aligned_le64 __le64 __attribute__((aligned(8))) - -+#ifdef __powerpc__ -+typedef struct { -+ __u32 u[4]; -+} __attribute__((aligned(16))) __vector128; -+#endif -+ - #endif /* _UAPI_LINUX_TYPES_H */ diff --git a/srcpkgs/linux-tools/template b/srcpkgs/linux-tools/template index 2bad1c1516ec49..0faa647d47ca28 100644 --- a/srcpkgs/linux-tools/template +++ b/srcpkgs/linux-tools/template @@ -1,10 +1,10 @@ # Template file for 'linux-tools' pkgname=linux-tools -version=6.5 -revision=8 +version=6.18 +revision=1 metapackage=yes hostmakedepends="asciidoc automake flex gettext libtool perl - python3-setuptools python3-docutils xmlto pkg-config" + python3-setuptools python3-docutils xmlto pkg-config which" makedepends="babeltrace-devel binutils-devel elfutils-devel eudev-libudev-devel libcap-devel liblzma-devel openssl-devel libsysfs-devel libunwind-devel libzstd-devel ncurses-devel pciutils-devel python3-devel readline-devel @@ -15,7 +15,7 @@ maintainer="Enno Boland " license="GPL-2.0-only" homepage="https://www.kernel.org" distfiles="${KERNEL_SITE}/kernel/v${version%%.*}.x/linux-${version}.tar.xz" -checksum=7a574bbc20802ea76b52ca7faf07267f72045e861b18915c5272a98c27abf884 +checksum=9106a4605da9e31ff17659d958782b815f9591ab308d03b0ee21aad6c7dced4b python_version=3 subpackages="cpupower freefall libcpupower libcpupower-devel libusbip @@ -165,6 +165,9 @@ cpupower_package() { vmove usr/share/doc/cpupower vmove usr/share/locale vmove etc/cpufreq-bench.conf + vmove etc/cpupower-service.conf + vmove usr/libexec/cpupower + vmove usr/lib/systemd/system/cpupower.service } } libcpupower_package() { From aecfea70f994d43312fe3353ae5d99b6c6af508c Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 10 May 2026 19:06:29 -0700 Subject: [PATCH 07/42] bpftrace: rebuild for binutils 2.46 --- srcpkgs/bpftrace/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/bpftrace/template b/srcpkgs/bpftrace/template index 4a913365eef6f0..51bc23765136a1 100644 --- a/srcpkgs/bpftrace/template +++ b/srcpkgs/bpftrace/template @@ -1,7 +1,7 @@ # Template file for 'bpftrace' pkgname=bpftrace version=0.25.1 -revision=1 +revision=2 _llvmver=21 archs="x86_64* aarch64* ppc64*" build_style=cmake From d1caed8f96652c6b8a84880f8345cd43776e3d8e Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 10 May 2026 19:06:52 -0700 Subject: [PATCH 08/42] dtrace-utils: rebuild for binutils 2.46 --- srcpkgs/dtrace-utils/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/dtrace-utils/template b/srcpkgs/dtrace-utils/template index 1b95ac9085958a..457e80cdc8395a 100644 --- a/srcpkgs/dtrace-utils/template +++ b/srcpkgs/dtrace-utils/template @@ -1,7 +1,7 @@ # Template file for 'dtrace-utils' pkgname=dtrace-utils version=2.0.6 -revision=1 +revision=2 archs="~*-musl" # ld.so internals, other glibc specifics build_style=gnu-configure hostmakedepends="cross-bpf-binutils cross-bpf-gcc flex libgomp-devel pkg-config From fb903543d9051ccb79bc0eed0f206db2eefe3ba2 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Sun, 10 May 2026 19:07:10 -0700 Subject: [PATCH 09/42] libkdumpfile: rebuild for binutils 2.46 --- srcpkgs/libkdumpfile/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/libkdumpfile/template b/srcpkgs/libkdumpfile/template index 568ffd2e1580cb..2022acb40ef41b 100644 --- a/srcpkgs/libkdumpfile/template +++ b/srcpkgs/libkdumpfile/template @@ -1,7 +1,7 @@ # Template file for 'libkdumpfile' pkgname=libkdumpfile version=0.5.5 -revision=2 +revision=3 build_style=gnu-configure configure_args="PYTHON=python3" hostmakedepends="automake pkg-config libtool python3-setuptools python3-packaging-bootstrap" From f5cee06a85c124233ab87597a44c606bbf4f9b12 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Mon, 11 May 2026 02:01:10 -0700 Subject: [PATCH 10/42] mate-applets: rebuild for linux-tools 6.18. --- srcpkgs/mate-applets/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/mate-applets/template b/srcpkgs/mate-applets/template index 2a743e58a1f493..b402e07e8e1b5b 100644 --- a/srcpkgs/mate-applets/template +++ b/srcpkgs/mate-applets/template @@ -1,7 +1,7 @@ # Template file for 'mate-applets' pkgname=mate-applets version=1.28.1 -revision=1 +revision=2 build_style=gnu-configure configure_args="--disable-static --enable-ipv6 --libexecdir=/usr/libexec/mate" hostmakedepends="glib-devel itstool gettext pkg-config polkit libxml2" From 4d056a9ed79b47b634bfcac943f01703c4e05272 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Mon, 11 May 2026 02:03:16 -0700 Subject: [PATCH 11/42] libtool: rebuild for gcc 16.1 --- srcpkgs/libtool/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/libtool/template b/srcpkgs/libtool/template index f982fca29130fa..cd9965dca59641 100644 --- a/srcpkgs/libtool/template +++ b/srcpkgs/libtool/template @@ -1,14 +1,14 @@ # Template file for 'libtool' pkgname=libtool version=2.4.7 -revision=8 +revision=9 build_style=gnu-configure hostmakedepends="texinfo perl automake help2man xz gnulib tar" short_desc="Generic library support script" maintainer="Enno Boland " license="GPL-2.0-or-later" homepage="http://www.gnu.org/software/libtool" -distfiles="${GNU_SITE}/libtool/$pkgname-$version.tar.xz" +distfiles="${GNU_SITE}/libtool/libtool-${version}.tar.xz" checksum=4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d if [ "$XBPS_TARGET_LIBC" = "musl" ]; then From fb8afc0d321af4c253c2c41db7ce9eee03d6cfc6 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Mon, 11 May 2026 02:04:22 -0700 Subject: [PATCH 12/42] mk-configure: rebuild for gcc 16.1 --- srcpkgs/mk-configure/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/mk-configure/template b/srcpkgs/mk-configure/template index 926c2aa40463aa..539646233a5572 100644 --- a/srcpkgs/mk-configure/template +++ b/srcpkgs/mk-configure/template @@ -1,7 +1,7 @@ # Template file for 'mk-configure' pkgname=mk-configure version=0.40.0 -revision=2 +revision=3 build_style=gnu-makefile make_cmd=bmake make_install_args="MANDIR=/usr/share/man" From 3884bb7b0bf46c1f46340432629e0922cc34c230 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 00:45:08 -0700 Subject: [PATCH 13/42] kernel-libc-headers: update to 7.0. --- srcpkgs/kernel-libc-headers/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/kernel-libc-headers/template b/srcpkgs/kernel-libc-headers/template index 3aab3f49ddc7c4..232a5e01d3db12 100644 --- a/srcpkgs/kernel-libc-headers/template +++ b/srcpkgs/kernel-libc-headers/template @@ -1,6 +1,6 @@ # Template file for 'kernel-libc-headers' pkgname=kernel-libc-headers -version=6.14 +version=7.0 revision=1 bootstrap=yes short_desc="Linux API headers for userland development" @@ -8,7 +8,7 @@ maintainer="Érico Nogueira " license="GPL-2.0-only" homepage="http://www.kernel.org" distfiles="${KERNEL_SITE}/kernel/v${version%%.*}.x/linux-${version}.tar.xz" -checksum=a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 +checksum=bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 if [ "$CHROOT_READY" ]; then hostmakedepends="perl" From 1b3097cfbc319adc5deb1a723fae7ba02699d4b2 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Mon, 11 May 2026 02:09:13 -0700 Subject: [PATCH 14/42] libgccjit: update to 16.1.1+20260502. --- srcpkgs/libgccjit/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/libgccjit/template b/srcpkgs/libgccjit/template index 2e649e6bd03aca..e835afec85e34a 100644 --- a/srcpkgs/libgccjit/template +++ b/srcpkgs/libgccjit/template @@ -3,7 +3,7 @@ # which use the version number. pkgname=libgccjit -version=14.2.1+20250405 +version=16.1.1+20260502 revision=1 hostmakedepends="tar texinfo perl flex" makedepends="zlib-devel libzstd-devel isl-devel libmpc-devel gmp-devel mpfr-devel" @@ -17,7 +17,7 @@ case "${version}" in *+*) distfiles="https://gcc.gnu.org/pub/gcc/snapshots/${version%%.*}-${version#*+}/gcc-${version%%.*}-${version#*+}.tar.xz" ;; *) distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz" ;; esac -checksum=9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 +checksum=d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 nopie=yes lib32disabled=yes From 9782626502b164403f89f8a2645a6469029c7267 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Mon, 11 May 2026 02:20:03 -0700 Subject: [PATCH 15/42] gcc-multilib: update to 16.1.1+20260502. --- srcpkgs/gcc-multilib/template | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template index b1c4784d523401..426f4c6538723d 100644 --- a/srcpkgs/gcc-multilib/template +++ b/srcpkgs/gcc-multilib/template @@ -3,7 +3,7 @@ archs="x86_64" _triplet="x86_64-unknown-linux-gnu" pkgname=gcc-multilib -version=14.2.1+20250405 +version=16.1.1+20260502 revision=1 _patchver="${version%+*}" _minorver="${version%.*}" @@ -28,7 +28,7 @@ case "${version}" in *+*) distfiles="https://gcc.gnu.org/pub/gcc/snapshots/${_majorver}-${version#*+}/gcc-${_majorver}-${version#*+}.tar.xz" ;; *) distfiles="${GNU_SITE}/gcc/gcc-${version}/gcc-${version}.tar.xz" ;; esac -checksum=9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 +checksum=d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 replaces="libmpx-devel-32bit>=0 libssp-32bit>=0 libssp-devel-32bit>=0" @@ -46,7 +46,11 @@ do_configure() { # hack! some configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure - ./configure --prefix=/usr \ + mkdir -p build + cd build + + CONFIG_SHELL=/bin/bash \ + ${wrksrc}/configure --prefix=/usr \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --libexecdir=/usr/lib \ @@ -76,14 +80,14 @@ do_configure() { } do_build() { - make ${makejobs} + make -C build ${makejobs} } do_install() { local _pc_triplet=x86_64-pc-linux-gnu # Install to a tempdir and then only copy relevant files. cd ${wrksrc} - make DESTDIR=${wrksrc}/${pkgname}-build install + make -C build DESTDIR=${wrksrc}/${pkgname}-build install # Make version a symlink of major version to make all versions # from the same series work automagically. @@ -95,7 +99,7 @@ do_install() { cp -a ${wrksrc}/${pkgname}-build/usr/include/c++/${_patchver}/${_pc_triplet}/32 \ ${DESTDIR}/usr/include/c++/${_minorver}/${_triplet} - vinstall ${wrksrc}/host-${_pc_triplet}/gcc/specs 644 usr/lib/gcc/${_triplet}/${_minorver} + vinstall ${wrksrc}/build/gcc/specs 644 usr/lib/gcc/${_triplet}/${_minorver} } gcc-objc-multilib_package() { From b6e6382730ebd227707fea99ef513012b6e6f231 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 00:32:44 -0700 Subject: [PATCH 16/42] cross-vpkg-dummy: update sovers for gcc 16 --- srcpkgs/cross-vpkg-dummy/template | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/srcpkgs/cross-vpkg-dummy/template b/srcpkgs/cross-vpkg-dummy/template index 3b128980661bf1..64c81a72258d68 100644 --- a/srcpkgs/cross-vpkg-dummy/template +++ b/srcpkgs/cross-vpkg-dummy/template @@ -1,6 +1,6 @@ # Template file for 'cross-vpkg-dummy' pkgname=cross-vpkg-dummy -version=0.43 +version=0.44 revision=1 metapackage=yes depends="base-files>=0.126" @@ -75,13 +75,13 @@ conflicts=" shlib_provides=" libatomic.so.1 libgcc_s.so.1 - libgnat-14.so - libgnarl-14.so + libgnat-16.so + libgnarl-16.so libstdc++.so.6 libgfortran.so.5 libobjc.so.4 - libgphobos.so.5 - libgdruntime.so.5 + libgphobos.so.7 + libgdruntime.so.7 libquadmath.so.0" repository=bootstrap From e2080f0e661c558b7862689fc2d585d85e1f5e47 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:46 -0700 Subject: [PATCH 17/42] cross-aarch64-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-aarch64-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-aarch64-linux-gnu/template b/srcpkgs/cross-aarch64-linux-gnu/template index 5df0a5d4787979..14bb344a393cb7 100644 --- a/srcpkgs/cross-aarch64-linux-gnu/template +++ b/srcpkgs/cross-aarch64-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-aarch64-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-aarch64-linux-gnu -version=0.37 -revision=3 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=armv8-a" hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" @@ -23,10 +23,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_glibc_cflags="-O2 -march=armv8-a" From 23914dce42240c2fbccb202e096e1ac32f70989f Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:46 -0700 Subject: [PATCH 18/42] cross-aarch64-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-aarch64-linux-musl/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-aarch64-linux-musl/template b/srcpkgs/cross-aarch64-linux-musl/template index b874d112d9a86b..cd1f2dc8afe6ca 100644 --- a/srcpkgs/cross-aarch64-linux-musl/template +++ b/srcpkgs/cross-aarch64-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-aarch64-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.2.5 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-aarch64-linux-musl -version=0.37 -revision=6 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=armv8-a" hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" @@ -26,11 +26,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_musl_cflags="-O2 -march=armv8-a" From 53713e38454f33b2b7b2b4f66be9b79d1089120e Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:46 -0700 Subject: [PATCH 19/42] cross-arm-linux-gnueabi: update for gcc 16.1.1+20260502 --- srcpkgs/cross-arm-linux-gnueabi/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-arm-linux-gnueabi/template b/srcpkgs/cross-arm-linux-gnueabi/template index ab82e90dd53f01..6238cb9dec5156 100644 --- a/srcpkgs/cross-arm-linux-gnueabi/template +++ b/srcpkgs/cross-arm-linux-gnueabi/template @@ -1,11 +1,11 @@ # Template file for 'cross-arm-linux-gnueabi' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-arm-linux-gnueabi -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=armv5te --with-float=soft --enable-autolink-libatomic" @@ -24,10 +24,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_binutils_configure_args="--without-fp" From 35f250a6b99a9855abf1ff41ce845d3225517f4b Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:47 -0700 Subject: [PATCH 20/42] cross-arm-linux-gnueabihf: update for gcc 16.1.1+20260502 --- srcpkgs/cross-arm-linux-gnueabihf/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template index a228fedfebb1bf..81dc4b3360b0cf 100644 --- a/srcpkgs/cross-arm-linux-gnueabihf/template +++ b/srcpkgs/cross-arm-linux-gnueabihf/template @@ -1,11 +1,11 @@ # Template file for 'cross-arm-linux-gnueabihf' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-arm-linux-gnueabihf -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-autolink-libatomic" @@ -24,10 +24,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_glibc_cflags="-Os -march=armv6 -mfpu=vfp -mfloat-abi=hard" From d9de4242850760ea03a25cbd2b09ae5a3726c69c Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:47 -0700 Subject: [PATCH 21/42] cross-arm-linux-musleabi: update for gcc 16.1.1+20260502 --- srcpkgs/cross-arm-linux-musleabi/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-arm-linux-musleabi/template b/srcpkgs/cross-arm-linux-musleabi/template index 8fc9ee76fe7c11..78d055c87ba6cd 100644 --- a/srcpkgs/cross-arm-linux-musleabi/template +++ b/srcpkgs/cross-arm-linux-musleabi/template @@ -1,12 +1,12 @@ # Template file for 'cross-arm-linux-musleabi' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-arm-linux-musleabi -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=armv5te --with-float=soft --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_binutils_configure_args="--without-fp" From 0b78bd66fd9ed7804aea57c3b6ccbfcda670b229 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:47 -0700 Subject: [PATCH 22/42] cross-arm-linux-musleabihf: update for gcc 16.1.1+20260502 --- srcpkgs/cross-arm-linux-musleabihf/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-arm-linux-musleabihf/template b/srcpkgs/cross-arm-linux-musleabihf/template index ea68eb1f7d075c..cdfae8fb5477b8 100644 --- a/srcpkgs/cross-arm-linux-musleabihf/template +++ b/srcpkgs/cross-arm-linux-musleabihf/template @@ -1,12 +1,12 @@ # Template file for 'cross-arm-linux-musleabihf' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-arm-linux-musleabihf -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_musl_cflags="-Os -march=armv6 -mfpu=vfp -mfloat-abi=hard" From ab1c96a2bd38d0bf188249fa11a7d22945c83f1e Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:47 -0700 Subject: [PATCH 23/42] cross-armv7l-linux-gnueabihf: update for gcc 16.1.1+20260502 --- srcpkgs/cross-armv7l-linux-gnueabihf/template | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-armv7l-linux-gnueabihf/template b/srcpkgs/cross-armv7l-linux-gnueabihf/template index c54e48f96db8a6..1e9f78e0407e87 100644 --- a/srcpkgs/cross-armv7l-linux-gnueabihf/template +++ b/srcpkgs/cross-armv7l-linux-gnueabihf/template @@ -1,11 +1,11 @@ # Template file for 'cross-armv7l-linux-gnueabihf' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-armv7l-linux-gnueabihf -version=0.37 -revision=2 +version=0.38 +revision=1 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" @@ -23,10 +23,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_glibc_cflags="-O2 -march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" From 384eb6c80e3bf8febfa8ca6e43b4de0592d11276 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:48 -0700 Subject: [PATCH 24/42] cross-armv7l-linux-musleabihf: update for gcc 16.1.1+20260502 --- .../cross-armv7l-linux-musleabihf/template | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-armv7l-linux-musleabihf/template b/srcpkgs/cross-armv7l-linux-musleabihf/template index b5d3b238982c94..981af339d43c25 100644 --- a/srcpkgs/cross-armv7l-linux-musleabihf/template +++ b/srcpkgs/cross-armv7l-linux-musleabihf/template @@ -1,12 +1,12 @@ # Template file for 'cross-armv7l-linux-musleabihf' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-armv7l-linux-musleabihf -version=0.37 -revision=3 +version=0.38 +revision=1 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" @@ -26,11 +26,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_musl_cflags="-O2 -march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" From 3cfb9cb6f082d00cea410b9ad53aa2616fe11838 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:48 -0700 Subject: [PATCH 25/42] cross-i686-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-i686-linux-musl/template | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-i686-linux-musl/template b/srcpkgs/cross-i686-linux-musl/template index e8dd455238fdc8..e439c268e92219 100644 --- a/srcpkgs/cross-i686-linux-musl/template +++ b/srcpkgs/cross-i686-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-i686-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-i686-linux-musl -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" makedepends="isl-devel libmpc-devel gmp-devel mpfr-devel @@ -25,11 +25,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes # explicitly enable for final gcc, as gfortran does not build without on x86 From 58a91aca82465523a4741d6f9fae50a0fd71bb88 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:48 -0700 Subject: [PATCH 26/42] cross-i686-pc-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-i686-pc-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-i686-pc-linux-gnu/template b/srcpkgs/cross-i686-pc-linux-gnu/template index 082d12f4dcc9f8..759967b4c8f145 100644 --- a/srcpkgs/cross-i686-pc-linux-gnu/template +++ b/srcpkgs/cross-i686-pc-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-i686-pc-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-i686-pc-linux-gnu -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" makedepends="isl-devel libmpc-devel gmp-devel mpfr-devel @@ -22,10 +22,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes # explicitly enable for final gcc, as gfortran does not build without on x86 From 5135e443d98d20bf401e96c4502d3ce1a5ee2978 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:48 -0700 Subject: [PATCH 27/42] cross-mips-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-mips-linux-musl/template | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-mips-linux-musl/template b/srcpkgs/cross-mips-linux-musl/template index 139725f7481081..2fe9aa8e3707f8 100644 --- a/srcpkgs/cross-mips-linux-musl/template +++ b/srcpkgs/cross-mips-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-mips-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-mips-linux-musl -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=mips32r2 --with-float=soft --with-linker-hash-style=sysv --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 9ed5b22320ffcc6148bd4d18aab60cb316b0f4bc Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:48 -0700 Subject: [PATCH 28/42] cross-mips-linux-muslhf: update for gcc 16.1.1+20260502 --- srcpkgs/cross-mips-linux-muslhf/template | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-mips-linux-muslhf/template b/srcpkgs/cross-mips-linux-muslhf/template index 3cd931dffe137b..8e02bab861aaaa 100644 --- a/srcpkgs/cross-mips-linux-muslhf/template +++ b/srcpkgs/cross-mips-linux-muslhf/template @@ -1,12 +1,12 @@ # Template file for 'cross-mips-linux-muslhf' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-mips-linux-muslhf -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=mips32r2 --with-float=hard --with-linker-hash-style=sysv --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 8def47e9507179a63a91e1a296795fb382725033 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:49 -0700 Subject: [PATCH 29/42] cross-mipsel-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-mipsel-linux-musl/template | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-mipsel-linux-musl/template b/srcpkgs/cross-mipsel-linux-musl/template index ee9d31b9640705..0807850af612ff 100644 --- a/srcpkgs/cross-mipsel-linux-musl/template +++ b/srcpkgs/cross-mipsel-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-mipsel-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-mipsel-linux-musl -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=mips32r2 --with-float=soft --with-linker-hash-style=sysv --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 91f5da8d41112af95f8e2da0fcb7823bc10067f0 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:49 -0700 Subject: [PATCH 30/42] cross-mipsel-linux-muslhf: update for gcc 16.1.1+20260502 --- srcpkgs/cross-mipsel-linux-muslhf/template | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-mipsel-linux-muslhf/template b/srcpkgs/cross-mipsel-linux-muslhf/template index f7c80c580aebb7..93a65cabbb1768 100644 --- a/srcpkgs/cross-mipsel-linux-muslhf/template +++ b/srcpkgs/cross-mipsel-linux-muslhf/template @@ -1,12 +1,12 @@ # Template file for 'cross-mipsel-linux-muslhf' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-mipsel-linux-muslhf -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=mips32r2 --with-float=hard --with-linker-hash-style=sysv --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 6f8c18fb8d7895941914b4142d540aef49945be4 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:49 -0700 Subject: [PATCH 31/42] cross-powerpc-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpc-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-powerpc-linux-gnu/template b/srcpkgs/cross-powerpc-linux-gnu/template index 1989f9d95f46f8..ec192ad7eb84c6 100644 --- a/srcpkgs/cross-powerpc-linux-gnu/template +++ b/srcpkgs/cross-powerpc-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-powerpc-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-powerpc-linux-gnu -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --enable-autolink-libatomic" @@ -24,10 +24,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 7cc0f9febeab8cdb44e88884231da6f603e79ecc Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:49 -0700 Subject: [PATCH 32/42] cross-powerpc-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpc-linux-musl/template | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-powerpc-linux-musl/template b/srcpkgs/cross-powerpc-linux-musl/template index 0289a1eecf4964..301f669cc62f77 100644 --- a/srcpkgs/cross-powerpc-linux-musl/template +++ b/srcpkgs/cross-powerpc-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-powerpc-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-powerpc-linux-musl -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --disable-decimal-float --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From e00c302bef0e05e06c9d9c2682113e25e039ffaf Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:49 -0700 Subject: [PATCH 33/42] cross-powerpc64-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpc64-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-powerpc64-linux-gnu/template b/srcpkgs/cross-powerpc64-linux-gnu/template index 75da3ca29a55a6..76861034a36165 100644 --- a/srcpkgs/cross-powerpc64-linux-gnu/template +++ b/srcpkgs/cross-powerpc64-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-powerpc64-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-powerpc64-linux-gnu -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2 --enable-targets=powerpc-linux --enable-autolink-libatomic" @@ -24,10 +24,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_binutils_configure_args="--enable-secureplt" From 94aba64960348d1b1f2b0fabb2bf711820846ea1 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:50 -0700 Subject: [PATCH 34/42] cross-powerpc64-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpc64-linux-musl/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-powerpc64-linux-musl/template b/srcpkgs/cross-powerpc64-linux-musl/template index 1241e51e791f6b..4611296b609cc2 100644 --- a/srcpkgs/cross-powerpc64-linux-musl/template +++ b/srcpkgs/cross-powerpc64-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-powerpc64-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.2.5 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-powerpc64-linux-musl -version=0.37 -revision=5 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --disable-decimal-float --with-abi=elfv2 --enable-targets=powerpc-linux @@ -28,11 +28,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_binutils_configure_args="--enable-secureplt" From 566bb0305a02e325640b5bdeb6f8db16b452c93c Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:50 -0700 Subject: [PATCH 35/42] cross-powerpc64le-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpc64le-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-powerpc64le-linux-gnu/template b/srcpkgs/cross-powerpc64le-linux-gnu/template index b4b059701cc5d5..95452531bc1a6e 100644 --- a/srcpkgs/cross-powerpc64le-linux-gnu/template +++ b/srcpkgs/cross-powerpc64le-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-powerpc64le-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-powerpc64le-linux-gnu -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --with-abi=elfv2 --enable-targets=powerpcle-linux --enable-autolink-libatomic" @@ -24,10 +24,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_binutils_configure_args="--enable-secureplt" From 37917ef14d021331c50c43aa45138a02d1f868eb Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:50 -0700 Subject: [PATCH 36/42] cross-powerpc64le-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpc64le-linux-musl/template | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-powerpc64le-linux-musl/template b/srcpkgs/cross-powerpc64le-linux-musl/template index e8689dc7e08180..3bcfa68bc7d0ca 100644 --- a/srcpkgs/cross-powerpc64le-linux-musl/template +++ b/srcpkgs/cross-powerpc64le-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-powerpc64le-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.2.5 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-powerpc64le-linux-musl -version=0.37 -revision=5 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --disable-decimal-float --with-abi=elfv2 --enable-targets=powerpcle-linux @@ -28,11 +28,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_binutils_configure_args="--enable-secureplt" From b84fc5345727d6bed3377b8d57a3460d93c759ca Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:50 -0700 Subject: [PATCH 37/42] cross-powerpcle-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpcle-linux-gnu/template | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/srcpkgs/cross-powerpcle-linux-gnu/template b/srcpkgs/cross-powerpcle-linux-gnu/template index 84e29d0f96541a..b43ba7b23b4112 100644 --- a/srcpkgs/cross-powerpcle-linux-gnu/template +++ b/srcpkgs/cross-powerpcle-linux-gnu/template @@ -1,10 +1,10 @@ # Template file for 'cross-powerpcle-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-powerpcle-linux-gnu -version=0.37 +version=0.38 revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify @@ -25,10 +25,10 @@ distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 3352a19a5cbdbdebb77a609816b8d394223245d7 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:50 -0700 Subject: [PATCH 38/42] cross-powerpcle-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-powerpcle-linux-musl/template | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/srcpkgs/cross-powerpcle-linux-musl/template b/srcpkgs/cross-powerpcle-linux-musl/template index e704441a77e33b..3ad34e501acf17 100644 --- a/srcpkgs/cross-powerpcle-linux-musl/template +++ b/srcpkgs/cross-powerpcle-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-powerpcle-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_musl_version=1.1.24 -_linux_version=6.14 -_libucontext_version=1.3.3 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_musl_version=1.2.5 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-powerpcle-linux-musl -version=0.37 -revision=4 +version=0.38 +revision=1 build_style=void-cross configure_args="--enable-secureplt --disable-vtable-verify --disable-decimal-float --enable-autolink-libatomic" @@ -27,11 +27,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_gcc_skip_go=yes From 2b550929c983fe8576a510f13261d193c51e9f68 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:51 -0700 Subject: [PATCH 39/42] cross-riscv64-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-riscv64-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-riscv64-linux-gnu/template b/srcpkgs/cross-riscv64-linux-gnu/template index dc517c1236744a..e26100ccc05ad7 100644 --- a/srcpkgs/cross-riscv64-linux-gnu/template +++ b/srcpkgs/cross-riscv64-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-riscv64-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-riscv64-linux-gnu -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic --disable-multilib" hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" @@ -23,10 +23,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes cross_glibc_cflags="-O2" From 64a41c92d9e8483858c60faeb2125bfb1288d00a Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:51 -0700 Subject: [PATCH 40/42] cross-riscv64-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-riscv64-linux-musl/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-riscv64-linux-musl/template b/srcpkgs/cross-riscv64-linux-musl/template index 51d79b33ea5f67..f832dae218bd53 100644 --- a/srcpkgs/cross-riscv64-linux-musl/template +++ b/srcpkgs/cross-riscv64-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-riscv64-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.2.5 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-riscv64-linux-musl -version=0.37 -revision=5 +version=0.38 +revision=1 build_style=void-cross configure_args="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic --disable-multilib" hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" @@ -26,11 +26,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes cross_musl_cflags="-O0" From 29202c2be6989f1332a25053a68c25f9b2f94cc8 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:51 -0700 Subject: [PATCH 41/42] cross-x86_64-linux-gnu: update for gcc 16.1.1+20260502 --- srcpkgs/cross-x86_64-linux-gnu/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-x86_64-linux-gnu/template b/srcpkgs/cross-x86_64-linux-gnu/template index 1787691874a1be..52abd40bc5c4ff 100644 --- a/srcpkgs/cross-x86_64-linux-gnu/template +++ b/srcpkgs/cross-x86_64-linux-gnu/template @@ -1,11 +1,11 @@ # Template file for 'cross-x86_64-linux-gnu' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 -_glibc_version=2.41 -_linux_version=6.14 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 +_glibc_version=2.43 +_linux_version=7.0 pkgname=cross-x86_64-linux-gnu -version=0.37 -revision=2 +version=0.38 +revision=1 build_style=void-cross hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" makedepends="isl-devel libmpc-devel gmp-devel mpfr-devel @@ -22,10 +22,10 @@ esac distfiles+=" ${GNU_SITE}/binutils/binutils-${_binutils_version}.tar.xz" distfiles+=" ${GNU_SITE}/glibc/glibc-${_glibc_version}.tar.xz" distfiles+=" ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 - a5a26b22f545d6b7d7b3dd828e11e428f24f4fac43c934fb071b6a7d0828e901 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670" +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 + d9c86c6b5dbddb43a3e08270c5844fc5177d19442cf5b8df4be7c07cd5fa3831 + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0" nocross=yes # explicitly enable for final gcc, gfortran does not build without on x86 From 03edf32c7894b3cc424d4556ca6b20c005da2b30 Mon Sep 17 00:00:00 2001 From: oreo639 Date: Tue, 12 May 2026 01:09:51 -0700 Subject: [PATCH 42/42] cross-x86_64-linux-musl: update for gcc 16.1.1+20260502 --- srcpkgs/cross-x86_64-linux-musl/template | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cross-x86_64-linux-musl/template b/srcpkgs/cross-x86_64-linux-musl/template index 460df3f4aa5b09..14078c0e1e99e9 100644 --- a/srcpkgs/cross-x86_64-linux-musl/template +++ b/srcpkgs/cross-x86_64-linux-musl/template @@ -1,12 +1,12 @@ # Template file for 'cross-x86_64-linux-musl' -_binutils_version=2.44 -_gcc_version=14.2.1+20250405 +_binutils_version=2.46.0 +_gcc_version=16.1.1+20260502 _musl_version=1.2.5 -_linux_version=6.14 -_libucontext_version=1.3.3 +_linux_version=7.0 +_libucontext_version=1.5 pkgname=cross-x86_64-linux-musl -version=0.37 -revision=5 +version=0.38 +revision=1 build_style=void-cross hostmakedepends="texinfo tar gcc-objc gcc-go gcc-gdc flex perl python3 pkg-config" makedepends="isl-devel libmpc-devel gmp-devel mpfr-devel @@ -25,11 +25,11 @@ distfiles+=" https://musl.libc.org/releases/musl-${_musl_version}.tar.gz ${KERNEL_SITE}/kernel/v${_linux_version%%.*}.x/linux-${_linux_version}.tar.xz https://github.com/kaniini/libucontext/archive/libucontext-${_libucontext_version}.tar.gz" -checksum="9a84b0947d8fb18197eef3fce8e255e30a61f7f382cebb961b1705c1d99214a3 - ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 +checksum="d78e2e56ee6f89e40dc742ae0c8a716ad4eb4637bc57bd49f9dec48ce9753283 + d75a94f4d73e7a4086f7513e67e439e8fcdcbb726ffe63f4661744e6256b2cf2 a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4 - a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670 - 06fca63bc00a236ea7e2ce4fe984d7203b1f9ea046f5c8c815d280da4ea281e3" + bb7f6d80b387c757b7d14bb93028fcb90f793c5c0d367736ee815a100b3891f0 + b3ca8d7d3e5c926a90ddb691f8a52ccb364069a745304a40c29f3b0d39b80c93" nocross=yes # explicitly enable for final gcc, gfortran does not build without on x86