www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 18509] New: [Beta 2.079] lld-link.exe needs msvcp140.dll

https://issues.dlang.org/show_bug.cgi?id=18509

          Issue ID: 18509
           Summary: [Beta 2.079] lld-link.exe needs msvcp140.dll
           Product: D
           Version: D2
          Hardware: All
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: installer
          Assignee: nobody puremagic.com
          Reporter: code dawg.eu
                CC: r.sagitario gmx.de

While we're installing the VC++ 2010 redisditributable, we've apparently linked
lld-link.exe against VC++ 2015 or so.
I just deinstalled all MSVC++ redistributables prior to trying the installer
with the new MinGW option.
Seems like we have a couple of options:

- compile lld-link.exe with VC++ 2010 if that still works (could possibly break
depending on lld codebase)
- use VC++ 2015 redist as C runtime (requires some changes in the mingw build
script and possibly the msvcrt stub)
(https://github.com/dlang/installer/pull/289)
- install both redistributables with the MinGW option
- ship msvcp140.dll with lld-link.exe
(https://msdn.microsoft.com/en-us/library/dd293574.aspx#Anchor_1)
- link lld-link.exe statically against MSVCRT

Any opionion?
Why was 2010 choosen as redistributable? It feels weird to install such an old
C runtime.
IIRC there was some point about msvcrt100.dll being preinstalled on all Windows
versions, that would be a plus for distributing D apps.
But I'm not sure how relevant that is and why the installer requires me to
install a redistributable VC++ 2010 regardless.

--
Feb 23 2018