Bug 18352 – [REG 2.078] dmd can't generate 64-bit binaries on Windows 10 with VS 2015

Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2018-02-01T16:08:45Z
Last change time
2018-02-09T09:36:04Z
Keywords
pull
Assigned to
No Owner
Creator
Atila Neves

Comments

Comment #0 by atila.neves — 2018-02-01T16:08:45Z
The bug started in dmd 2.078.0. On a hello world app: dmd -m64 hello.d LINK : fatal error LNK1104: cannot open file 'shell32.lib' Error: linker exited with status 1104 dmd -m64 -v hello.d C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe /NOLOGO app /OPT:NOICF /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64" legacy_stdio_definitions.lib I looked and on my system shell32.lib is at: C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\{arm,x64,x86}
Comment #1 by greensunny12 — 2018-02-01T17:11:01Z
Comment #2 by r.sagitario — 2018-02-01T18:44:00Z
The problem seems to be that the UCRT shares the "KitsRoot10" folder with the Windows 10 SDK, but the 8.1 SDK is elsewhere.
Comment #3 by r.sagitario — 2018-02-01T18:46:18Z
Comment #4 by github-bugzilla — 2018-02-09T09:35:57Z
Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/0dca6e288bcee60b25b6fc5f5a8c064127ea4d6c fix issue 18352 - [REG 2.078] dmd can't generate 64-bit binaries on Windows 10 with VS 2015 checking the KitsRoot10 lib folder is not good enough to detect the SDK, it might just contain the UCRT https://github.com/dlang/dmd/commit/fa69a174763c1ed94f9e56622b49ed5d4df1628a Merge pull request #7827 from rainers/issue18352 fix issue 18352 - [REG 2.078] dmd can't generate 64-bit binaries on Windows