public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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
 


             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