Git development
 help / color / mirror / Atom feed
From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Sixt <j6t@kdbg.org>,
	Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: [PATCH v4 00/13] Upstream some more Git for Windows' patches
Date: Thu, 10 Sep 2026 06:05:14 +0000	[thread overview]
Message-ID: <pull.2195.v4.git.1789020327.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2195.git.1785939999.gitgitgadget@gmail.com>

With the imminent switch of Git for Windows from the old MINGW64 environment
(that was deprecated by MSYS2) to the UCRT64 environment, this patch series
became quite urgent; I will have to work around this patch series not yet
being in master via setup-git-for-windows-sdk to be able to switch without
breaking Git's CI builds.

Originally, I noticed that these patches had not been upstreamed yet when
rebasing a Git for Windows commit to enable Rust in Windows CI.

Changes since v3:

 * Reinstated the fly-by style fix as a separate commit.
 * Added Helped-by trailers
 * Moved and reworded a paragraph from the commit message of 08/12 to 12/12;
   This should have been done as part of v2.

Changes since v2:

 * Moved some hunks that belonged into 12/12 out of 08/12.
 * Dropped a fly-by style cleanup from t0060.

Changes since v1:

 * Fixed the meson-side handling of the MINGW_PREFIX constant (this was not
   noticed in the Git for Windows project because it does not use Meson to
   build the project).

Johannes Schindelin (13):
  mingw: include the Python parts in the build
  mingw: stop hard-coding `CC = gcc`
  mingw: drop the -D_USE_32BIT_TIME_T option
  mingw: only use -Wl,--large-address-aware for 32-bit builds
  mingw: avoid over-specifying `--pic-executable`
  mingw: set the prefix and HOST_CPU as per MSYS2's settings
  mingw: only enable the MSYS2-specific stuff when compiling in MSYS2
  mingw: rely on MSYS2's metadata instead of hard-coding it
  windows: skip linking `git-<command>` for built-ins
  mingw: always define `ETC_*` for MSYS2 environments
  mingw: ensure valid CTYPE
  mingw: allow `git.exe` to be used instead of the "Git wrapper"
  t0060: adjust the code style

 compat/mingw.c                      | 68 +++++++++++++++++++++++++++++
 config.mak.uname                    | 61 ++++++++++++--------------
 contrib/buildsystems/CMakeLists.txt |  9 +++-
 meson.build                         | 15 ++++++-
 meson_options.txt                   |  4 ++
 t/t0060-path-utils.sh               | 33 +++++++++++++-
 6 files changed, 153 insertions(+), 37 deletions(-)


base-commit: 5b2471720c93ee30e5764a19f3d3b3ae9ec9712a
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2195%2Fdscho%2Fupstream-some-more-git-for-windows-patches-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2195/dscho/upstream-some-more-git-for-windows-patches-v4
Pull-Request: https://github.com/gitgitgadget/git/pull/2195

Range-diff vs v3:

  1:  fd594ffa6c !  1:  0b8ca0e3b9 mingw: include the Python parts in the build
     @@ Commit message
          bandwidth), MSYS2 provides very fine Python interpreters that users can
          easily take advantage of, by using Git for Windows within its SDK.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  2:  47fc974582 !  2:  9894892ff5 mingw: stop hard-coding `CC = gcc`
     @@ Commit message
          This is no longer true in general, not with supporting Clang out of the
          box.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  3:  53f1fd5763 !  3:  340dd18f27 mingw: drop the -D_USE_32BIT_TIME_T option
     @@ Commit message
      
          So let's send that option into its well-deserved retirement.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  4:  ad96aedda6 !  4:  37c6563d74 mingw: only use -Wl,--large-address-aware for 32-bit builds
     @@ Commit message
          those builds; UCRT64 versions of GCC, for example, do not know what to
          do with that option.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  5:  d67201f9b3 !  5:  0063f2d96a mingw: avoid over-specifying `--pic-executable`
     @@ Commit message
      
          So let's drop the overly-specific definition.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  6:  b49c42c50d !  6:  e03279a0df mingw: set the prefix and HOST_CPU as per MSYS2's settings
     @@ Commit message
          can use those to infer the installation location as well as the CPU. No
          need for hard-coding ;-)
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  7:  b00d242621 !  7:  29caf78bdd mingw: only enable the MSYS2-specific stuff when compiling in MSYS2
     @@ Commit message
          course. In that case, we want to ensure that `MSYSTEM` is set when
          running `git.exe`, and also enable the magic MSYS2 tty detection.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
  8:  4cc14553dc !  8:  a9665a3304 mingw: rely on MSYS2's metadata instead of hard-coding it
     @@ Commit message
          Incidentally, this also broadens the support to all the configurations
          supported by the MSYS2 project, i.e. clang64 & ucrt64, too.
      
     -    Note: This keeps the same, hard-coded MSYSTEM platform support for CMake
     -    as before, but drops it for Meson (because it is unclear how Meson could
     -    do this in a more flexible manner).
     -
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Helped-by: Junio C Hamano <gitster@pobox.com>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
  9:  19c600cbee !  9:  0d2990aa14 windows: skip linking `git-<command>` for built-ins
     @@ Commit message
          This deprecation was never finalized by skipping these hard-links, but
          we can start the process now, in Git for Windows.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
 10:  b8cc067e92 ! 10:  b5a78f65b6 mingw: always define `ETC_*` for MSYS2 environments
     @@ Commit message
      
          Special-casing even more configurations simply does not make sense.
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## config.mak.uname ##
 11:  09c90015fb ! 11:  1bbd0dc6aa mingw: ensure valid CTYPE
     @@ Commit message
      
          This fixes https://github.com/git-for-windows/git/issues/1036
      
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## compat/mingw.c ##
 12:  4a4f24a1ba ! 12:  e8115c158c mingw: allow `git.exe` to be used instead of the "Git wrapper"
     @@ Commit message
      
          This addresses https://github.com/git-for-windows/git/issues/2283
      
     +    Note: This keeps the same, hard-coded MSYSTEM platform support for CMake
     +    as before, and introduces an `msystem' and `mingw-prefix` knob for Meson
     +    (read: neither CMake nor Meson will automatically inherit the setting
     +    from the current build environment).
     +
     +    Helped-by: Johannes Sixt <j6t@kdbg.org>
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
       ## compat/mingw.c ##
  -:  ---------- > 13:  88403ffc9e t0060: adjust the code style

-- 
gitgitgadget

  parent reply	other threads:[~2026-09-10  6:05 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-05 14:26 [PATCH 00/12] Upstream some more Git for Windows' patches Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 01/12] mingw: include the Python parts in the build Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 02/12] mingw: stop hard-coding `CC = gcc` Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 03/12] mingw: drop the -D_USE_32BIT_TIME_T option Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 04/12] mingw: only use -Wl,--large-address-aware for 32-bit builds Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 05/12] mingw: avoid over-specifying `--pic-executable` Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 06/12] mingw: set the prefix and HOST_CPU as per MSYS2's settings Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 07/12] mingw: only enable the MSYS2-specific stuff when compiling in MSYS2 Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 08/12] mingw: rely on MSYS2's metadata instead of hard-coding it Johannes Schindelin via GitGitGadget
2026-08-05 17:29   ` Junio C Hamano
2026-08-06 12:50     ` Johannes Schindelin
2026-08-05 14:26 ` [PATCH 09/12] windows: skip linking `git-<command>` for built-ins Johannes Schindelin via GitGitGadget
2026-08-05 17:12   ` Junio C Hamano
2026-08-05 14:26 ` [PATCH 10/12] mingw: always define `ETC_*` for MSYS2 environments Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 11/12] mingw: ensure valid CTYPE Johannes Schindelin via GitGitGadget
2026-08-05 14:26 ` [PATCH 12/12] mingw: allow `git.exe` to be used instead of the "Git wrapper" Johannes Schindelin via GitGitGadget
2026-08-06 17:26   ` Junio C Hamano
2026-08-12  7:51     ` Johannes Schindelin
2026-08-12 14:27       ` Junio C Hamano
2026-08-12  7:52 ` [PATCH v2 00/12] Upstream some more Git for Windows' patches Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 01/12] mingw: include the Python parts in the build Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 02/12] mingw: stop hard-coding `CC = gcc` Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 03/12] mingw: drop the -D_USE_32BIT_TIME_T option Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 04/12] mingw: only use -Wl,--large-address-aware for 32-bit builds Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 05/12] mingw: avoid over-specifying `--pic-executable` Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 06/12] mingw: set the prefix and HOST_CPU as per MSYS2's settings Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 07/12] mingw: only enable the MSYS2-specific stuff when compiling in MSYS2 Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 08/12] mingw: rely on MSYS2's metadata instead of hard-coding it Johannes Schindelin via GitGitGadget
2026-08-15 13:44     ` Johannes Sixt
2026-08-31 18:59       ` Junio C Hamano
2026-09-09 18:56       ` Johannes Schindelin
2026-09-09 19:09         ` Johannes Schindelin
2026-08-12  7:52   ` [PATCH v2 09/12] windows: skip linking `git-<command>` for built-ins Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 10/12] mingw: always define `ETC_*` for MSYS2 environments Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 11/12] mingw: ensure valid CTYPE Johannes Schindelin via GitGitGadget
2026-08-12  7:52   ` [PATCH v2 12/12] mingw: allow `git.exe` to be used instead of the "Git wrapper" Johannes Schindelin via GitGitGadget
2026-08-15 14:10   ` [PATCH v2 00/12] Upstream some more Git for Windows' patches Johannes Sixt
2026-09-09 19:17 ` [PATCH v3 " Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 01/12] mingw: include the Python parts in the build Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 02/12] mingw: stop hard-coding `CC = gcc` Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 03/12] mingw: drop the -D_USE_32BIT_TIME_T option Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 04/12] mingw: only use -Wl,--large-address-aware for 32-bit builds Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 05/12] mingw: avoid over-specifying `--pic-executable` Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 06/12] mingw: set the prefix and HOST_CPU as per MSYS2's settings Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 07/12] mingw: only enable the MSYS2-specific stuff when compiling in MSYS2 Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 08/12] mingw: rely on MSYS2's metadata instead of hard-coding it Johannes Schindelin via GitGitGadget
2026-09-09 19:47     ` Johannes Sixt
2026-09-09 20:13       ` Johannes Schindelin
2026-09-09 21:17         ` Junio C Hamano
2026-09-09 19:17   ` [PATCH v3 09/12] windows: skip linking `git-<command>` for built-ins Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 10/12] mingw: always define `ETC_*` for MSYS2 environments Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 11/12] mingw: ensure valid CTYPE Johannes Schindelin via GitGitGadget
2026-09-09 19:17   ` [PATCH v3 12/12] mingw: allow `git.exe` to be used instead of the "Git wrapper" Johannes Schindelin via GitGitGadget
2026-09-09 19:41     ` Junio C Hamano
2026-09-10  6:05 ` Johannes Schindelin via GitGitGadget [this message]
2026-09-10  6:05   ` [PATCH v4 01/13] mingw: include the Python parts in the build Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 02/13] mingw: stop hard-coding `CC = gcc` Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 03/13] mingw: drop the -D_USE_32BIT_TIME_T option Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 04/13] mingw: only use -Wl,--large-address-aware for 32-bit builds Johannes Schindelin via GitGitGadget
2026-09-11 13:22     ` Oswald Buddenhagen
2026-09-10  6:05   ` [PATCH v4 05/13] mingw: avoid over-specifying `--pic-executable` Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 06/13] mingw: set the prefix and HOST_CPU as per MSYS2's settings Johannes Schindelin via GitGitGadget
2026-09-11 13:26     ` Oswald Buddenhagen
2026-09-10  6:05   ` [PATCH v4 07/13] mingw: only enable the MSYS2-specific stuff when compiling in MSYS2 Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 08/13] mingw: rely on MSYS2's metadata instead of hard-coding it Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 09/13] windows: skip linking `git-<command>` for built-ins Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 10/13] mingw: always define `ETC_*` for MSYS2 environments Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 11/13] mingw: ensure valid CTYPE Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 12/13] mingw: allow `git.exe` to be used instead of the "Git wrapper" Johannes Schindelin via GitGitGadget
2026-09-10  6:05   ` [PATCH v4 13/13] t0060: adjust the code style Johannes Schindelin via GitGitGadget
2026-09-10 12:51   ` [PATCH v4 00/13] Upstream some more Git for Windows' patches Junio C Hamano

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=pull.2195.v4.git.1789020327.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j6t@kdbg.org \
    --cc=johannes.schindelin@gmx.de \
    /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