Thread (71 messages) flat view 71 messages, 5 authors, 2d ago
WARM2d

Revision v4 of 4 in this series.

Revisions (4)
  1. v1 [diff vs current]
  2. v2 [diff vs current]
  3. v3 [diff vs current]
  4. v4 current

[PATCH v4 00/13] Upstream some more Git for Windows' patches

From: Johannes Schindelin via GitGitGadget <hidden>
Date: 2026-09-10 06:05:29

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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Helped-by: Junio C Hamano [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
  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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## 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 [off-list ref]
          Signed-off-by: Johannes Schindelin [off-list ref]
      
       ## compat/mingw.c ##
  -:  ---------- > 13:  88403ffc9e t0060: adjust the code style

-- 
gitgitgadget
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help