--- Makefile.tpl.jj	2024-01-10 12:19:07.609682386 +0100
+++ Makefile.tpl	2024-03-28 15:38:31.471917678 +0100
@@ -1976,7 +1976,7 @@ configure-target-[+module+]: maybe-all-g
    (define dep-maybe (lambda ()
       (if (exist? "hard") "" "maybe-")))
 
-   ;; dep-kind returns returns "prebootstrap" for configure or build
+   ;; dep-kind returns "prebootstrap" for configure or build
    ;; dependencies of bootstrapped modules on a build module
    ;; (e.g. all-gcc on all-build-bison); "normal" if the dependency is
    ;; on an "install" target, or if the dependence module is not
--- config/lcmessage.m4.jj	2020-01-11 16:31:53.155321678 +0100
+++ config/lcmessage.m4	2024-03-28 16:01:40.879060037 +0100
@@ -6,13 +6,13 @@ dnl Public License, this file may be dis
 dnl that contains a configuration script generated by Autoconf, under
 dnl the same distribution terms as the rest of that program.
 dnl
-dnl This file can can be used in projects which are not available under
+dnl This file can be used in projects which are not available under
 dnl the GNU General Public License or the GNU Library General Public
 dnl License but which still want to provide support for the GNU gettext
 dnl functionality.
 dnl Please note that the actual code of the GNU gettext library is covered
 dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
+dnl gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
--- libdecnumber/decCommon.c.jj	2024-01-03 12:07:28.096370943 +0100
+++ libdecnumber/decCommon.c	2024-03-28 16:00:26.576068973 +0100
@@ -388,7 +388,7 @@ static decFloat * decFinalize(decFloat *
 	    UBFROMUI(ub-3, 0);		     /* to 00000000 */
 	    }
 	  /* [note ub could now be to left of msd, and it is not safe */
-	  /* to write to the the left of the msd] */
+	  /* to write to the left of the msd] */
 	  /* now at most 3 digits left to non-9 (usually just the one) */
 	  for (; ub>=umsd; *ub=0, ub--) {
 	    if (*ub==9) continue;	     /* carry */
--- libgcc/unwind-dw2-fde.c.jj	2024-03-23 08:22:50.622605182 +0100
+++ libgcc/unwind-dw2-fde.c	2024-03-28 15:59:32.552802535 +0100
@@ -501,7 +501,7 @@ fde_mixed_encoding_extract (struct objec
 typedef void (*fde_extractor_t) (struct object *, _Unwind_Ptr *, const fde **,
 				 int);
 
-// Data is is sorted using radix sort if possible, using an temporary
+// Data is sorted using radix sort if possible, using an temporary
 // auxiliary data structure of the same size as the input. When running
 // out of memory do in-place heap sort.
 
--- libgfortran/configure.host.jj	2022-01-11 23:11:23.816270115 +0100
+++ libgfortran/configure.host	2024-03-28 15:58:11.247906549 +0100
@@ -1,7 +1,7 @@
 # configure.host
 #
 # This shell script handles all host based configuration for libgfortran.
-# It sets various shell variables based on the the host triplet.
+# It sets various shell variables based on the host triplet.
 # You can modify this shell script without rerunning autoconf/aclocal/etc.
 # This file is "sourced", not executed.
 #
--- libgm2/configure.host.jj	2023-11-13 21:39:19.790341988 +0100
+++ libgm2/configure.host	2024-03-28 15:57:52.175165531 +0100
@@ -1,7 +1,7 @@
 # configure.host
 #
 # This shell script handles all host based configuration for libstdc++.
-# It sets various shell variables based on the the host and the
+# It sets various shell variables based on the host and the
 # configuration options.  You can modify this shell script without needing
 # to rerun autoconf/aclocal/etc.  This file is "sourced" not executed.
 #
--- libgomp/libgomp.texi.jj	2024-03-13 09:11:45.425972326 +0100
+++ libgomp/libgomp.texi	2024-03-28 15:57:18.081628399 +0100
@@ -385,7 +385,7 @@ to address of matching mapped list item
       @code{-Wunknown-pragmas} (implied by @code{-Wall}) and @code{-Wattributes}
       (enabled by default), respectively; for Fortran free-source code, there is
       a warning enabled by default and, for fixed-source code, the @code{omx}
-      sentinel is warned for with with @code{-Wsurprising} (enabled by
+      sentinel is warned for with @code{-Wsurprising} (enabled by
       @code{-Wall}).  Unknown clauses are always rejected with an error.}
 @item Clauses on @code{end} directive can be on directive @tab Y @tab
 @item @code{destroy} clause with destroy-var argument on @code{depobj}
@@ -2218,7 +2218,7 @@ in the @code{to} and @code{from} clauses
 to transfer data between the associated pointers. The reference count of such
 associated storage is infinite.  The association can be removed by calling
 @code{omp_target_disassociate_ptr} which should be done before the lifetime
-of either either storage ends.
+of either storage ends.
 
 The routine returns nonzero (@code{EINVAL}) when the @var{device_num} invalid,
 for when the initial device or the associated device shares memory with the
@@ -2815,7 +2815,7 @@ traits; if an allocator that fulfills th
 @code{omp_null_allocator} is returned.
 
 The predefined memory spaces and available traits can be found at
-@ref{OMP_ALLOCATOR}, where the trait names have to be be prefixed by
+@ref{OMP_ALLOCATOR}, where the trait names have to be prefixed by
 @code{omp_atk_} (e.g. @code{omp_atk_pinned}) and the named trait values by
 @code{omp_atv_} (e.g. @code{omp_atv_true}); additionally, @code{omp_atv_default}
 may be used as trait value to specify that the default value should be used.
@@ -3210,7 +3210,7 @@ The @var{allocator} and @var{free_alloca
 allocator, an allocator handle or @code{omp_null_allocator}.  If
 @var{free_allocator} is @code{omp_null_allocator}, the implementation
 automatically determines the allocator used for the allocation of @var{ptr}.
-If @var{allocator} is @code{omp_null_allocator} and @var{ptr} is is not a
+If @var{allocator} is @code{omp_null_allocator} and @var{ptr} is not a
 null pointer, the same allocator as @code{free_allocator} is used and
 when @var{ptr} is a null pointer the allocator specified by the
 @var{def-allocator-var} ICV is used.
@@ -3468,7 +3468,7 @@ as listed below.  Except that the last t
 
 For the @code{fallback} trait, the default value is @code{null_fb} for the
 @code{omp_default_mem_alloc} allocator and any allocator that is associated
-with device memory; for all other other allocators, it is @code{default_mem_fb}
+with device memory; for all other allocators, it is @code{default_mem_fb}
 by default.
 
 Examples:
--- libgomp/priority_queue.h.jj	2024-01-03 12:07:47.708096186 +0100
+++ libgomp/priority_queue.h	2024-03-28 15:55:55.300752071 +0100
@@ -137,7 +137,7 @@ extern struct gomp_task *priority_tree_n
 						  bool *);
 
 /* Return TRUE if there is more than one priority in HEAD.  This is
-   used throughout to to choose between the fast path (priority 0 only
+   used throughout to choose between the fast path (priority 0 only
    items) and a world with multiple priorities.  */
 
 static inline bool
--- libiberty/regex.c.jj	2024-01-03 12:07:48.530084670 +0100
+++ libiberty/regex.c	2024-03-28 15:54:19.611050948 +0100
@@ -5597,7 +5597,7 @@ byte_re_match_2_internal (struct re_patt
      to resume scanning the pattern; the second one is where to resume
      scanning the strings.  If the latter is zero, the failure point is
      a ``dummy''; if a failure happens and the failure point is a dummy,
-     it gets discarded and the next next one is tried.  */
+     it gets discarded and the next one is tried.  */
 #ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global.  */
   PREFIX(fail_stack_type) fail_stack;
 #endif
--- libiberty/dyn-string.c.jj	2024-01-03 12:07:48.505085020 +0100
+++ libiberty/dyn-string.c	2024-03-28 15:54:43.817722365 +0100
@@ -47,7 +47,7 @@ Boston, MA 02110-1301, USA.  */
 
 /* Performs in-place initialization of a dyn_string struct.  This
    function can be used with a dyn_string struct on the stack or
-   embedded in another object.  The contents of of the string itself
+   embedded in another object.  The contents of the string itself
    are still dynamically allocated.  The string initially is capable
    of holding at least SPACE characeters, including the terminating
    NUL.  If SPACE is 0, it will silently be increated to 1.  
--- libitm/beginend.cc.jj	2024-01-03 12:07:48.784081112 +0100
+++ libitm/beginend.cc	2024-03-28 15:53:31.595702705 +0100
@@ -200,7 +200,7 @@ GTM::gtm_thread::begin_transaction (uint
     {
       // Note that the snapshot of htm_fastpath that we take here could be
       // outdated, and a different method group than dispatch_htm may have
-      // been chosen in the meantime.  Therefore, take care not not touch
+      // been chosen in the meantime.  Therefore, take care not to touch
       // anything besides the serial lock, which is independent of method
       // groups.
       for (uint32_t t = serial_lock.get_htm_fastpath(); t; t--)
--- libobjc/init.c.jj	2024-01-03 12:07:49.201075270 +0100
+++ libobjc/init.c	2024-03-28 15:52:06.592856528 +0100
@@ -63,7 +63,7 @@ static struct objc_list *uninitialized_s
    a class twice, we ignore it the second time.  On some platforms,
    where the order in which modules are loaded is well defined, this
    allows you to replace a class in a shared library by linking in a
-   new implementation which is loaded in in the right order, and which
+   new implementation which is loaded in the right order, and which
    overrides the existing one.
 
    Protected by __objc_runtime_mutex.  */
--- libobjc/sendmsg.c.jj	2024-01-03 12:07:49.208075172 +0100
+++ libobjc/sendmsg.c	2024-03-28 15:51:47.403117009 +0100
@@ -1047,7 +1047,7 @@ __objc_prepare_dtable_for_class (Class c
 
   /* This table could be initialized in init.c.  We cannot use the
      class name since the class maintains the instance methods and the
-     meta class maintains the the class methods yet both share the
+     meta class maintains the class methods yet both share the
      same name.  Classes should be unique in any program.  */
   if (! prepared_dtable_table)
     prepared_dtable_table 
--- libobjc/encoding.c.jj	2024-01-03 12:07:49.236074779 +0100
+++ libobjc/encoding.c	2024-03-28 15:52:44.214345856 +0100
@@ -1088,7 +1088,7 @@ objc_layout_structure (const char *type,
          && *ntype++ != '=')
     /* do nothing */;
 
-  /* If there's a "<name>=", ntype - 1 points to '='; skip the the name */
+  /* If there's a "<name>=", ntype - 1 points to '='; skip the name.  */
   if (*(ntype - 1) == '=')
     type = ntype;
 
--- libstdc++-v3/acinclude.m4.jj	2024-01-31 10:55:37.748164636 +0100
+++ libstdc++-v3/acinclude.m4	2024-03-28 15:50:49.309905562 +0100
@@ -4493,7 +4493,7 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [
 # Check whether LC_MESSAGES is available in <locale.h>.
 # Ulrich Drepper <drepper@cygnus.com>, 1995.
 #
-# This file file be copied and used freely without restrictions.  It can
+# This file can be copied and used freely without restrictions.  It can
 # be used in projects which are not available under the GNU Public License
 # but which still want to provide support for the GNU gettext functionality.
 # Please note that the actual code is *not* freely available.
--- libstdc++-v3/configure.host.jj	2023-09-11 11:05:47.619726474 +0200
+++ libstdc++-v3/configure.host	2024-03-28 15:41:56.740134644 +0100
@@ -1,7 +1,7 @@
 # configure.host
 #
 # This shell script handles all host based configuration for libstdc++.
-# It sets various shell variables based on the the host and the
+# It sets various shell variables based on the host and the
 # configuration options.  You can modify this shell script without needing
 # to rerun autoconf/aclocal/etc.  This file is "sourced" not executed.
 #
--- libvtv/vtv_rts.cc.jj	2024-01-03 12:08:23.803590499 +0100
+++ libvtv/vtv_rts.cc	2024-03-28 15:41:17.621665634 +0100
@@ -1791,7 +1791,7 @@ vtv_fail (const char *msg, void **data_s
               ptr_from_set_handle_handle (*data_set_ptr) :
 	      *data_set_ptr);
   buf_len = strlen (buffer);
-  /*  Send this to to stderr.  */
+  /* Send this to stderr.  */
   write (2, buffer, buf_len);
 
 #ifndef VTV_NO_ABORT
--- libvtv/vtv_fail.cc.jj	2024-01-03 12:08:23.804590485 +0100
+++ libvtv/vtv_fail.cc	2024-03-28 15:41:05.055836203 +0100
@@ -201,7 +201,7 @@ vtv_fail (const char *msg, void **data_s
               ptr_from_set_handle_handle (*data_set_ptr) :
 	      *data_set_ptr);
   buf_len = strlen (buffer);
-  /*  Send this to to stderr.  */
+  /* Send this to stderr.  */
   write (2, buffer, buf_len);
 
   if (!vtv_no_abort)
