[PATCH] D116358: Make lld to support win-xp
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jan 2 13:55:43 PST 2022
mstorsjo added a comment.
In D116358#3216228 <https://reviews.llvm.org/D116358#3216228>, @mati865 wrote:
> There was similar differential recently: https://reviews.llvm.org/D112093
>
> Quoting myself from that discussion:
>
>> I never had to dig into subsystem versions and what do the mean but looking at subsystem <https://docs.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem?view=msvc-160> docs `4.0` stands for kernel mode drivers which looks wrong to me. They also specify `5.01` as 32-bit, `5.02` as 64-bit and `6.0` as being either 32-bit or 64-bit.
That's not how I interpret it. It's not that `4.0` stands for kernel version. In most cases (for the windows/console subsystem), subsystem version is a synonym for OS version (and when set via the `-subsystem` option to link.exe/lld-link, it sets both subsystem and OS version). And that page probably has been updated when purging documentation/support for older OS versions. When targeting Win9x and NT4, you'd have subsystem/OS version 4.0, when targeting Win2k/XP as baseline, it'd be 5.0, and requiring Vista if it's set to 6.0.
> This means this change breaks compliance with Windows docs for x86_64 and AArch64 without valid reason.
Yes, that's probably true - I wouldn't be surprised if ARM binaries declaring a minimum version of 4.0/5.0 wouldn't be launched at all. (Similarly, Windows refuses to load ARM binaries unless the dynamicbase flag is set.)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D116358/new/
https://reviews.llvm.org/D116358
More information about the llvm-commits
mailing list