Closed ElemenTP closed 2 years ago
Aside: Many of the .exe
files are just hard links back to the core git.exe
, so task might not be as large as may be thought. See the Git-for-Windows FAQ
I plan on merging this today, after building a new perl
package (and all the dependent packages).
Please note that my two PRs should significantly shorten the long list above, but won't fix all entries.
I haven't gotten around to starting on PRs for MINGW-Pacakges, MSYS2-Packages and Git LFS.
Please note that my two PRs should significantly shorten the long list above, but won't fix all entries.
In the context of Git for Windows, I think it should be good enough to focus on the git-*
executables.
Setup
none
Details
Terminal Server aware is an optional flag in the PE header.
According to the doc by Microsoft Create Terminal Server aware application, when loading an application with no Terminal Server aware flag, Terminal Server will do extra work(makes loading slower). This behavior is for compatibility with very old applications. Microsoft 's toolchain has made this flag set for every app by default for a long time.
I use a script and MSVC dumpbin util to check every .exe file in git for windows folder, finding git.exe and many bundled applications do not have Terminal Server aware flag set. They are in the list below. (By the way, the little program here https://github.com/git-for-windows/git/issues/644 is also a good choice to check this flag)
Some most used applications(git.exe, sh.exe, curl.exe, etc) do not have Terminal Server aware flag set, I think it will improve the performance of git for windows if we can set that flag of those apps.
For a mingw linker like git for windows is using, specifing --tsaware to the linker(-Wl,--tsaware) will get the work done. I have tested this with building aria2, but I havn't tried with git for windows yet.