www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 18072] New: Compile/link fails, DMD 2.077.1

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

          Issue ID: 18072
           Summary: Compile/link fails, DMD 2.077.1
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: thornik gmail.com

I took stable DMD 2.077.1 and tried to compile simple program:

dmd ComposeFunction.d

Output:

OPTLINK (R) for Win32  Release 8.00.16
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
c:\dmd2\windows\bin\..\lib\phobos.lib(dmain2)
 Error 42: Symbol Undefined _GetCommandLineW 0

 ...and next goes a huge set of similar errors + new kind of errors:

 OPTLINK : Warning 148: USE16/USE32 Mismatch : DGROUP
c:\dmd2\windows\bin\..\lib\phobos.lib(deh_win32)
 Error 35: Cannot Reach TARGET from FRAME at Relative 002E2H  from
 Segment _TEXT
 FRAME  = Frame of Group FLAT 00000H
 TARGET = External Symbol
_D2rt9deh_win3221inflightExceptionListPSQBmQBm16EXCEPTION_RECORD 2FCD0H
 FIXUPP Type = Unknown Type

...and so on.

In my PATH dmd folder stays first and VC2015 - second.

What's happen to the compiler? Why it calls OPTLINK? Isn't DMD should build EXE
w/o separate linker? (and w/o errors, of course :) )

And all this mess with "linker type"... isn't it obvious that "war of
compilers" is finished? VC is a standard and widely used tool, it's smarter to
make all DMD libraries with MS link standard than annoying users with all those
"symbol undefined". OPTLINK should go, today there is no time and space for two
standards. Twice true if you remember who links x64 EXE.

--
Dec 13 2017