Skip to content

Commit 87bcacc

Browse files
committed
AGENTS.md: reflect recent changes from main
The merge brought in UCRT64 support across the tooling (make-file-list, check-for-missing-dlls, please.sh, and CI), a PowerShell-based PE import parser (pe-imports.ps1) as fallback for objdump on cross-arch binaries, and the removal of the tracked git-extra.install file in favor of generating it from .install.in at build time. Update the Key Scripts table to include check-for-missing-dlls.sh and pe-imports.ps1, rewrite the check-for-missing-dlls section to describe the current two-stage approach (objdump then PowerShell fallback) and the api-ms-* skip, document the UCRT64 migration in the Architectures section with a reference to git-for-windows/git-sdk-64#117, and note that git-extra's .install is now generated.
1 parent 6a52429 commit 87bcacc

1 file changed

Lines changed: 23 additions & 9 deletions

File tree

AGENTS.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ the git-sdk-64/32/arm64 repos (`update-via-pacman.ps1`).
8787
| `please.sh` | SDK artifact creation and PDB bundling |
8888
| `shears.sh` | "Git garden shears" for merging-rebases |
8989
| `make-file-list.sh` | Generates file lists for installer artifacts (see below) |
90+
| `check-for-missing-dlls.sh` | Verifies DLL dependencies in installer file lists |
91+
| `pe-imports.ps1` | PowerShell PE import-table parser (fallback for `objdump`) |
9092
| `add-release-note.js` | Adds entries to `ReleaseNotes.md` (Node.js) |
9193
| `render-release-notes.sh` | Converts `ReleaseNotes.md` to HTML |
9294
| `pacman-helper.sh` | Helper for Pacman package operations |
@@ -165,11 +167,15 @@ repos ([git-sdk-64](https://github.com/git-for-windows/git-sdk-64),
165167
[git-sdk-32](https://github.com/git-for-windows/git-sdk-32),
166168
[git-sdk-arm64](https://github.com/git-for-windows/git-sdk-arm64)).
167169
It calls `make-file-list.sh` to obtain the installer file list, then
168-
for every `.dll`/`.exe` in that list it checks (via `objdump -p` and
169-
`ldd`) that all DLL dependencies are satisfied by either a system DLL
170-
or another DLL in the file list. MSYS2 binaries (`usr/*`) are checked
171-
against `usr/bin/*.dll`; MinGW binaries (`$MINGW_PREFIX/*`) are checked
172-
against `$MINGW_PREFIX/bin/*.dll`.
170+
for every `.dll`/`.exe` in that list it checks that all DLL dependencies
171+
are satisfied by either a system DLL or another DLL in the file list.
172+
Dependencies are extracted via `objdump -p`; binaries that `objdump`
173+
cannot parse (e.g. ARM64 PE files on an x86_64 host) fall back to
174+
`pe-imports.ps1`, a PowerShell script that reads the PE import table
175+
directly. Windows API-set DLLs (`api-ms-*`) are skipped automatically.
176+
MSYS2 binaries (`usr/*`) are checked against `usr/bin/*.dll`; MinGW
177+
binaries (`$MINGW_PREFIX/*`) are checked against
178+
`$MINGW_PREFIX/bin/*.dll`.
173179

174180
## Building and Testing
175181

@@ -321,8 +327,9 @@ from `*.inc.iss` files.
321327

322328
Follow the Arch Linux / MSYS2 `PKGBUILD` conventions. Each package
323329
directory contains a `PKGBUILD` and optionally a `.install` script for
324-
post-install hooks. Checksums must be updated whenever source archives
325-
change.
330+
post-install hooks (in `git-extra/`, the `.install` file is generated from
331+
`.install.in` at build time and is not tracked). Checksums must be updated
332+
whenever source archives change.
326333

327334
## Platform Considerations
328335

@@ -336,8 +343,15 @@ Git for Windows supports three architectures:
336343
| i686 | `mingw-w64-i686` | `MINGW32` | `git-sdk-32` |
337344
| aarch64 | `mingw-w64-clang-aarch64` | `CLANGARM64`| `git-sdk-arm64` |
338345

339-
The CI workflow matrix covers x86_64 and aarch64 (and i686 for selected
340-
jobs).
346+
A fourth variant, UCRT64 (`mingw-w64-ucrt-x86_64`, `MSYSTEM=UCRT64`), is
347+
being introduced to replace MINGW64 on x86_64; MSYS2 deprecated the
348+
MINGW64 environment in early 2026 and the SDK is migrating accordingly
349+
(see git-for-windows/git-sdk-64#117). The CI workflow and
350+
`make-file-list.sh`/`check-for-missing-dlls.sh`/`please.sh` already accept
351+
`--architecture=ucrt64`.
352+
353+
The CI workflow matrix covers x86_64, aarch64, and ucrt64 (and i686 for
354+
selected jobs).
341355

342356
### MinGW vs MSYS2
343357

0 commit comments

Comments
 (0)