www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 17197] New: Link failure with -m64 on Windows

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

          Issue ID: 17197
           Summary: Link failure with -m64 on Windows
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: visuald
          Assignee: nobody puremagic.com
          Reporter: zan77137 nifty.com

VisualD produces a build error at link process:
std.utf.UTFException c:\s\d\rainers\phobos\std\utf.d(1339): Invalid UTF-8
sequence (at index 3)

As far as I searched, an argument with pipedmd.exe that is a build command
generated by VisualD was lacked.

------
"C:\Program Files (x86)\VisualD\pipedmd.exe" -deps
obj\debug\dummy\test\test.lnkdep link.exe
 C:\Work\test\.dub\obj\debug\dummy\test\test.build.lnkarg
------
Probably, as for the command mentioned above in build log, the following
commands are more right.
------
"C:\Program Files (x86)\VisualD\pipedmd.exe" -msmode -deps
obj\debug\dummy\test\test.lnkdep link.exe
 C:\Work\test\.dub\obj\debug\dummy\test\test.build.lnkarg
------


This error occurs because of pipedmd.exe does not convert the localized string
that link.exe output into UTF-8 correctly.
pepedmd.exe has to convert correctly and has been already implemented with the
function.
I found the function in tools/pipedmd.d(338).
-msmode flag is necessary to let the function activate.
VisualD has to generate a command correctly to pass -msmode flag to
pipedmd.exe.

--
Feb 19 2017