From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gcc-patches:master commit in: 16.0.0/gentoo/
Date: Wed, 30 Jul 2025 22:35:24 +0000 (UTC) [thread overview]
Message-ID: <1753914904.86b8df0c6eb87e1351819442ba5caaab1ecd11a1.sam@gentoo> (raw)
commit: 86b8df0c6eb87e1351819442ba5caaab1ecd11a1
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 30 22:35:04 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jul 30 22:35:04 2025 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=86b8df0c
16.0.0: drop upstreamed patches
Signed-off-by: Sam James <sam <AT> gentoo.org>
...sufficient-alignment-requirement-for-spec.patch | 164 ---------------------
...ssing-skip-vector-check-for-peeling-with-.patch | 144 ------------------
...ommon-Remove-reference-to-obsolete-termio.patch | 74 ----------
16.0.0/gentoo/README.history | 7 +-
4 files changed, 4 insertions(+), 385 deletions(-)
diff --git a/16.0.0/gentoo/86_all_PR121190-vect-Fix-insufficient-alignment-requirement-for-spec.patch b/16.0.0/gentoo/86_all_PR121190-vect-Fix-insufficient-alignment-requirement-for-spec.patch
deleted file mode 100644
index f05e749..0000000
--- a/16.0.0/gentoo/86_all_PR121190-vect-Fix-insufficient-alignment-requirement-for-spec.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-https://bugs.gentoo.org/959698
-https://inbox.sourceware.org/gcc-patches/DB3PR08MB89626FA52FEA5FB7ACE33B19A425A@DB3PR08MB8962.eurprd08.prod.outlook.com/
-
-From f91a62751e8198e6f02c21dffa35ac803b46d048 Mon Sep 17 00:00:00 2001
-Message-ID: <f91a62751e8198e6f02c21dffa35ac803b46d048.1753836047.git.sam@gentoo.org>
-From: Pengfei Li <Pengfei.Li2@arm.com>
-Date: Tue, 29 Jul 2025 14:58:18 +0000
-Subject: [PATCH 1/2] vect: Fix insufficient alignment requirement for
- speculative loads [PR121190]
-
-This patch fixes a segmentation fault issue that can occur in vectorized
-loops with an early break. When GCC vectorizes such loops, it may insert
-a versioning check to ensure that data references (DRs) with speculative
-loads are aligned. The check normally requires DRs to be aligned to the
-vector mode size, which prevents generated vector load instructions from
-crossing page boundaries.
-
-However, this is not sufficient when a single scalar load is vectorized
-into multiple loads within the same iteration. In such cases, even if
-none of the vector loads crosses page boundaries, subsequent loads after
-the first one may still access memory beyond current valid page.
-
-Consider the following loop as an example:
-
- while (i < MAX_COMPARE) {
- if (*(p + i) != *(q + i))
- return i;
- i++;
- }
-
-When compiled with "-O3 -march=znver2" on x86, the vectorized loop may
-include instructions like:
-
- vmovdqa (%rcx,%rax), %ymm0
- vmovdqa 32(%rcx,%rax), %ymm1
- vpcmpeqq (%rdx,%rax), %ymm0, %ymm0
- vpcmpeqq 32(%rdx,%rax), %ymm1, %ymm1
-
-Note two speculative vector loads are generated for each DR (p and q).
-The first vmovdqa and vpcmpeqq are safe due to the vector size (32-byte)
-alignment, but the following ones (at offset 32) may not be safe because
-they could read from the beginning of the next memory page, potentially
-leading to segmentation faults.
-
-To avoid the issue, this patch increases the alignment requirement to
-DR_TARGET_ALIGNMENT. It ensures all vector loads in the same vector
-iteration access memory within the same page.
-
-This patch is bootstrapped and regression-tested on x86_64-linux-gnu,
-arm-linux-gnueabihf and aarch64-linux-gnu.
-
- PR tree-optimization/121190
-
-gcc/ChangeLog:
-
- * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
- Increase alignment requirement for speculative loads.
-
-gcc/testsuite/ChangeLog:
-
-* gcc.dg/vect/vect-early-break_52.c: Update an unsafe test.
- * gcc.dg/vect/vect-early-break_137.c-pr121190: New test.
----
- .../vect/vect-early-break_137-pr121190.c | 62 +++++++++++++++++++
- .../gcc.dg/vect/vect-early-break_52.c | 2 +-
- gcc/tree-vect-data-refs.cc | 3 +-
- 3 files changed, 65 insertions(+), 2 deletions(-)
- create mode 100644 gcc/testsuite/gcc.dg/vect/vect-early-break_137-pr121190.c
-
-diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_137-pr121190.c b/gcc/testsuite/gcc.dg/vect/vect-early-break_137-pr121190.c
-new file mode 100644
-index 000000000000..e6b071c411cf
---- /dev/null
-+++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_137-pr121190.c
-@@ -0,0 +1,62 @@
-+/* PR tree-optimization/121190 */
-+/* { dg-options "-O3" } */
-+/* { dg-additional-options "-march=znver2" { target x86_64-*-* i?86-*-* } } */
-+/* { dg-require-effective-target mmap } */
-+/* { dg-require-effective-target vect_early_break } */
-+
-+#include <stdint.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <sys/mman.h>
-+#include <unistd.h>
-+#include "tree-vect.h"
-+
-+#define MAX_COMPARE 5000
-+
-+__attribute__((noipa))
-+int diff (uint64_t *restrict p, uint64_t *restrict q)
-+{
-+ int i = 0;
-+ while (i < MAX_COMPARE) {
-+ if (*(p + i) != *(q + i))
-+ return i;
-+ i++;
-+ }
-+ return -1;
-+}
-+
-+int main ()
-+{
-+ check_vect ();
-+
-+ long pgsz = sysconf (_SC_PAGESIZE);
-+ if (pgsz == -1) {
-+ fprintf (stderr, "sysconf failed\n");
-+ return 0;
-+ }
-+
-+ /* Allocate 2 consecutive pages of memory and let p1 and p2 point to the
-+ beginning of each. */
-+ void *mem = mmap (NULL, pgsz * 2, PROT_READ | PROT_WRITE,
-+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-+ if (mem == MAP_FAILED) {
-+ fprintf (stderr, "mmap failed\n");
-+ return 0;
-+ }
-+ uint64_t *p1 = (uint64_t *) mem;
-+ uint64_t *p2 = (uint64_t *) mem + pgsz / sizeof (uint64_t);
-+
-+ /* Fill the first page with zeros, except for its last 64 bits. */
-+ memset (p1, 0, pgsz);
-+ *(p2 - 1) = -1;
-+
-+ /* Make the 2nd page not accessable. */
-+ mprotect (p2, pgsz, PROT_NONE);
-+
-+ /* Calls to diff should not read the 2nd page. */
-+ for (int i = 1; i <= 20; i++) {
-+ if (diff (p2 - i, p1) != i - 1)
-+ __builtin_abort ();
-+ }
-+}
-+
-diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_52.c b/gcc/testsuite/gcc.dg/vect/vect-early-break_52.c
-index 86a632f2a822..6abfcd6580e4 100644
---- a/gcc/testsuite/gcc.dg/vect/vect-early-break_52.c
-+++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_52.c
-@@ -18,4 +18,4 @@ int main1 (short X)
- }
- }
-
--/* { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" { target { ! "x86_64-*-* i?86-*-*" } } } } */
-+/* { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" { target { ! "x86_64-*-* i?86-*-* arm*-*-*" } } } } */
-diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
-index e7919b73c258..66217c54b050 100644
---- a/gcc/tree-vect-data-refs.cc
-+++ b/gcc/tree-vect-data-refs.cc
-@@ -2969,7 +2969,8 @@ vect_enhance_data_refs_alignment (loop_vec_info loop_vinfo)
- VF is a power of two. We could relax this if we added
- a way of enforcing a power-of-two size. */
- unsigned HOST_WIDE_INT size;
-- if (!GET_MODE_SIZE (TYPE_MODE (vectype)).is_constant (&size))
-+ if (!LOOP_VINFO_VECT_FACTOR (loop_vinfo).is_constant ()
-+ || !DR_TARGET_ALIGNMENT (dr_info).is_constant (&size))
- {
- do_versioning = false;
- break;
---
-2.50.1
-
diff --git a/16.0.0/gentoo/87_all_PR121020-vect-Add-missing-skip-vector-check-for-peeling-with-.patch b/16.0.0/gentoo/87_all_PR121020-vect-Add-missing-skip-vector-check-for-peeling-with-.patch
deleted file mode 100644
index c472d5d..0000000
--- a/16.0.0/gentoo/87_all_PR121020-vect-Add-missing-skip-vector-check-for-peeling-with-.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-https://bugs.gentoo.org/959698
-https://inbox.sourceware.org/gcc-patches/DB3PR08MB8962138B27178069736147E5A425A@DB3PR08MB8962.eurprd08.prod.outlook.com/
-
-From 652f42c43949e64961721b7c78758030a8b9b1e0 Mon Sep 17 00:00:00 2001
-Message-ID: <652f42c43949e64961721b7c78758030a8b9b1e0.1753836047.git.sam@gentoo.org>
-In-Reply-To: <f91a62751e8198e6f02c21dffa35ac803b46d048.1753836047.git.sam@gentoo.org>
-References: <f91a62751e8198e6f02c21dffa35ac803b46d048.1753836047.git.sam@gentoo.org>
-From: Pengfei Li <Pengfei.Li2@arm.com>
-Date: Tue, 29 Jul 2025 14:53:46 +0000
-Subject: [PATCH 2/2] vect: Add missing skip-vector check for peeling with
- versioning [PR121020]
-
-This fixes a miscompilation issue introduced by the enablement of
-combined loop peeling and versioning. A test case that reproduces the
-issue is included in the patch.
-
-When performing loop peeling, GCC usually inserts a skip-vector check.
-This ensures that after peeling, there are enough remaining iterations
-to enter the main vectorized loop. Previously, the check was omitted if
-loop versioning for alignment was applied. It was safe before because
-versioning and peeling for alignment were mutually exclusive.
-
-However, with combined peeling and versioning enabled, this is not safe
-any more. A loop may be peeled and versioned at the same time. Without
-the skip-vector check, the main vectorized loop can be entered even if
-its iteration count is zero. This can cause the loop running many more
-iterations than needed, resulting in incorrect results.
-
-To fix this, the patch updates the condition of omitting the skip-vector
-check to when versioning is performed alone without peeling.
-
-This patch is bootstrapped and regression-tested on x86_64-linux-gnu,
-arm-linux-gnueabihf and aarch64-linux-gnu.
-
- PR tree-optimization/121020
-
-gcc/ChangeLog:
-
- * tree-vect-loop-manip.cc (vect_do_peeling): Update the
- condition of omitting the skip-vector check.
- * tree-vectorizer.h (LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING):
- Add a helper macro.
-
-gcc/testsuite/ChangeLog:
-
-* gcc.dg/vect/vect-early-break_138-pr121020.c: New test.
----
- .../vect/vect-early-break_138-pr121020.c | 54 +++++++++++++++++++
- gcc/tree-vect-loop-manip.cc | 2 +-
- gcc/tree-vectorizer.h | 4 ++
- 3 files changed, 59 insertions(+), 1 deletion(-)
- create mode 100644 gcc/testsuite/gcc.dg/vect/vect-early-break_138-pr121020.c
-
-diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_138-pr121020.c b/gcc/testsuite/gcc.dg/vect/vect-early-break_138-pr121020.c
-new file mode 100644
-index 000000000000..8cb62bf5bc93
---- /dev/null
-+++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_138-pr121020.c
-@@ -0,0 +1,54 @@
-+/* PR tree-optimization/121020 */
-+/* { dg-options "-O3 --vect-cost-model=unlimited" } */
-+/* { dg-additional-options "-march=znver2" { target x86_64-*-* i?86-*-* } } */
-+/* { dg-require-effective-target mmap } */
-+/* { dg-require-effective-target vect_early_break } */
-+
-+#include <stdint.h>
-+#include <stdio.h>
-+#include <sys/mman.h>
-+#include <unistd.h>
-+#include "tree-vect.h"
-+
-+__attribute__((noipa))
-+bool equal (uint64_t *restrict p, uint64_t *restrict q, int length)
-+{
-+ for (int i = 0; i < length; i++) {
-+ if (*(p + i) != *(q + i))
-+ return false;
-+ }
-+ return true;
-+}
-+
-+int main ()
-+{
-+ check_vect ();
-+
-+ long pgsz = sysconf (_SC_PAGESIZE);
-+ if (pgsz == -1) {
-+ fprintf (stderr, "sysconf failed\n");
-+ return 0;
-+ }
-+
-+ /* Allocate a whole page of memory. */
-+ void *mem = mmap (NULL, pgsz, PROT_READ | PROT_WRITE,
-+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-+ if (mem == MAP_FAILED) {
-+ fprintf (stderr, "mmap failed\n");
-+ return 0;
-+ }
-+ uint64_t *p1 = (uint64_t *) mem;
-+ uint64_t *p2 = (uint64_t *) mem + 32;
-+
-+ /* The first 16 elements pointed to by p1 and p2 are the same. */
-+ for (int i = 0; i < 32; i++) {
-+ *(p1 + i) = 0;
-+ *(p2 + i) = (i < 16 ? 0 : -1);
-+ }
-+
-+ /* All calls to equal should return true. */
-+ for (int len = 0; len < 16; len++) {
-+ if (!equal (p1 + 1, p2 + 1, len))
-+ __builtin_abort();
-+ }
-+}
-diff --git a/gcc/tree-vect-loop-manip.cc b/gcc/tree-vect-loop-manip.cc
-index 2d01a4b0ed1c..7fcbc1ad2eb8 100644
---- a/gcc/tree-vect-loop-manip.cc
-+++ b/gcc/tree-vect-loop-manip.cc
-@@ -3295,7 +3295,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
- bool skip_vector = (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
- ? maybe_lt (LOOP_VINFO_INT_NITERS (loop_vinfo),
- bound_prolog + bound_epilog)
-- : (!LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo)
-+ : (!LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING (loop_vinfo)
- || vect_epilogues));
-
- /* Epilog loop must be executed if the number of iterations for epilog
-diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
-index 203e5ad964a6..e19002794324 100644
---- a/gcc/tree-vectorizer.h
-+++ b/gcc/tree-vectorizer.h
-@@ -1197,6 +1197,10 @@ public:
- || LOOP_REQUIRES_VERSIONING_FOR_NITERS (L) \
- || LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND (L))
-
-+#define LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING(L) \
-+ ((L)->may_misalign_stmts.length () > 0 \
-+ && !LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT (L))
-+
- #define LOOP_VINFO_NITERS_KNOWN_P(L) \
- (tree_fits_shwi_p ((L)->num_iters) && tree_to_shwi ((L)->num_iters) > 0)
-
---
-2.50.1
-
diff --git a/16.0.0/gentoo/88_all-sanitizer_common-Remove-reference-to-obsolete-termio.patch b/16.0.0/gentoo/88_all-sanitizer_common-Remove-reference-to-obsolete-termio.patch
deleted file mode 100644
index eece80d..0000000
--- a/16.0.0/gentoo/88_all-sanitizer_common-Remove-reference-to-obsolete-termio.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 50cff2194bcb8321414437169d443bf48695972c Mon Sep 17 00:00:00 2001
-Message-ID: <50cff2194bcb8321414437169d443bf48695972c.1753469285.git.sam@gentoo.org>
-From: Sam James <sam@gentoo.org>
-Date: Fri, 25 Jul 2025 19:45:18 +0100
-Subject: [PATCH] [sanitizer_common] Remove reference to obsolete termio ioctls
- (#138822)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Cherry picked from LLVM commit c99b1bcd505064f2e086e6b1034ce0b0c91ea5b9.
-
-The termio ioctls are no longer used after commit 59978b21ad9c
-("[sanitizer_common] Remove interceptors for deprecated struct termio
-(#137403)"), remove them. Fixes this build error:
-
-../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:765:27: error: invalid application of ‘sizeof’ to incomplete type ‘__sanitizer::termio’
- 765 | unsigned IOCTL_TCGETA = TCGETA;
- | ^~~~~~
-../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:769:27: error: invalid application of ‘sizeof’ to incomplete type ‘__sanitizer::termio’
- 769 | unsigned IOCTL_TCSETA = TCSETA;
- | ^~~~~~
-../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:770:28: error: invalid application of ‘sizeof’ to incomplete type ‘__sanitizer::termio’
- 770 | unsigned IOCTL_TCSETAF = TCSETAF;
- | ^~~~~~~
-../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:771:28: error: invalid application of ‘sizeof’ to incomplete type ‘__sanitizer::termio’
- 771 | unsigned IOCTL_TCSETAW = TCSETAW;
- | ^~~~~~~
----
- .../sanitizer_common/sanitizer_platform_limits_posix.cpp | 4 ----
- .../sanitizer_common/sanitizer_platform_limits_posix.h | 4 ----
- 2 files changed, 8 deletions(-)
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-index 490e75fe8f65..9856ac3c3ec4 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-@@ -762,13 +762,9 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
- unsigned IOCTL_SOUND_PCM_WRITE_FILTER = SOUND_PCM_WRITE_FILTER;
- #endif // SOUND_VERSION
- unsigned IOCTL_TCFLSH = TCFLSH;
-- unsigned IOCTL_TCGETA = TCGETA;
- unsigned IOCTL_TCGETS = TCGETS;
- unsigned IOCTL_TCSBRK = TCSBRK;
- unsigned IOCTL_TCSBRKP = TCSBRKP;
-- unsigned IOCTL_TCSETA = TCSETA;
-- unsigned IOCTL_TCSETAF = TCSETAF;
-- unsigned IOCTL_TCSETAW = TCSETAW;
- unsigned IOCTL_TCSETS = TCSETS;
- unsigned IOCTL_TCSETSF = TCSETSF;
- unsigned IOCTL_TCSETSW = TCSETSW;
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-index a80df656826e..cfac4903b76b 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -1274,13 +1274,9 @@ extern unsigned IOCTL_SNDCTL_COPR_SENDMSG;
- extern unsigned IOCTL_SNDCTL_COPR_WCODE;
- extern unsigned IOCTL_SNDCTL_COPR_WDATA;
- extern unsigned IOCTL_TCFLSH;
--extern unsigned IOCTL_TCGETA;
- extern unsigned IOCTL_TCGETS;
- extern unsigned IOCTL_TCSBRK;
- extern unsigned IOCTL_TCSBRKP;
--extern unsigned IOCTL_TCSETA;
--extern unsigned IOCTL_TCSETAF;
--extern unsigned IOCTL_TCSETAW;
- extern unsigned IOCTL_TCSETS;
- extern unsigned IOCTL_TCSETSF;
- extern unsigned IOCTL_TCSETSW;
-
-base-commit: ba5a6787374dea3e90f09771134d16b9f6d2714e
---
-2.50.1
-
diff --git a/16.0.0/gentoo/README.history b/16.0.0/gentoo/README.history
index c0dd40f..c130b16 100644
--- a/16.0.0/gentoo/README.history
+++ b/16.0.0/gentoo/README.history
@@ -1,7 +1,8 @@
-9 ????
+9 ???
- U 86_all_PR121190-vect-Fix-insufficient-alignment-requirement-for-spec.patch
- U 87_all_PR121020-vect-Add-missing-skip-vector-check-for-peeling-with-.patch
+ - 86_all_PR121190-vect-Fix-insufficient-alignment-requirement-for-spec.patch
+ - 87_all_PR121020-vect-Add-missing-skip-vector-check-for-peeling-with-.patch
+ - 88_all-sanitizer_common-Remove-reference-to-obsolete-termio.patch
8 30 July 2025
next reply other threads:[~2025-07-30 22:35 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-30 22:35 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-10-19 22:41 [gentoo-commits] proj/gcc-patches:master commit in: 16.0.0/gentoo/ Sam James
2025-10-18 18:22 Sam James
2025-10-13 2:49 Sam James
2025-10-09 7:31 Sam James
2025-10-09 2:26 Sam James
2025-10-09 2:26 Sam James
2025-10-05 23:05 Sam James
2025-10-05 22:50 Sam James
2025-10-02 11:05 Sam James
2025-10-02 11:04 Sam James
2025-10-02 4:55 Sam James
2025-10-02 1:18 Sam James
2025-10-02 0:40 Sam James
2025-10-02 0:36 Sam James
2025-10-02 0:30 Sam James
2025-09-17 18:41 Sam James
2025-09-17 3:04 Sam James
2025-09-16 19:23 Sam James
2025-09-14 11:26 Sam James
2025-09-13 13:16 Sam James
2025-09-07 22:42 Sam James
2025-09-06 2:42 Sam James
2025-09-05 12:44 Sam James
2025-09-01 8:04 Sam James
2025-08-31 22:43 Sam James
2025-08-30 14:06 Sam James
2025-08-30 8:05 Sam James
2025-08-30 6:57 Sam James
2025-08-30 0:12 Sam James
2025-08-29 21:26 Sam James
2025-08-29 21:02 Sam James
2025-08-29 20:24 Sam James
2025-08-29 20:18 Sam James
2025-08-29 18:38 Sam James
2025-08-29 12:15 Sam James
2025-08-28 17:57 Sam James
2025-08-28 5:27 Sam James
2025-08-27 4:19 Sam James
2025-08-26 23:42 Sam James
2025-08-26 4:48 Sam James
2025-08-26 0:56 Sam James
2025-08-25 3:55 Sam James
2025-08-24 23:42 Sam James
2025-08-21 16:11 Sam James
2025-08-20 20:45 Sam James
2025-08-20 14:10 Sam James
2025-08-20 1:16 Sam James
2025-08-20 1:10 Sam James
2025-08-19 16:30 Sam James
2025-08-18 23:52 Sam James
2025-08-18 23:08 Sam James
2025-08-17 22:45 Sam James
2025-08-17 21:01 Sam James
2025-08-17 16:30 Sam James
2025-08-17 15:44 Sam James
2025-08-17 15:10 Sam James
2025-08-16 23:06 Sam James
2025-08-05 0:23 Sam James
2025-07-30 0:44 Sam James
2025-07-30 0:44 Sam James
2025-07-25 18:49 Sam James
2025-07-23 11:22 Sam James
2025-07-22 23:56 Sam James
2025-07-21 14:02 Sam James
2025-07-21 1:12 Sam James
2025-07-14 16:03 Sam James
2025-07-14 4:09 Sam James
2025-07-14 2:55 Sam James
2025-07-14 2:55 Sam James
2025-07-14 2:40 Sam James
2025-07-13 23:11 Sam James
2025-07-13 1:09 Sam James
2025-07-12 15:24 Sam James
2025-07-12 15:23 Sam James
2025-07-10 12:34 Sam James
2025-07-10 1:22 Sam James
2025-07-10 0:50 Sam James
2025-07-07 20:49 Sam James
2025-07-06 22:41 Sam James
2025-07-03 1:29 Sam James
2025-06-30 6:26 Sam James
2025-06-29 0:29 Sam James
2025-06-19 16:59 Sam James
2025-06-19 0:58 Sam James
2025-06-19 0:58 Sam James
2025-06-18 21:17 Sam James
2025-06-18 9:53 Sam James
2025-06-18 9:06 Sam James
2025-06-13 12:03 Sam James
2025-06-12 20:34 Sam James
2025-06-12 14:05 Sam James
2025-06-12 7:27 Sam James
2025-06-12 5:46 Sam James
2025-06-11 5:05 Sam James
2025-06-11 3:19 Sam James
2025-06-01 22:39 Sam James
2025-05-31 18:48 Sam James
2025-05-11 22:52 Sam James
2025-05-10 15:28 Sam James
2025-05-09 23:29 Sam James
2025-05-05 14:39 Sam James
2025-05-05 13:05 Sam James
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1753914904.86b8df0c6eb87e1351819442ba5caaab1ecd11a1.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox