Assembly - 64-bit registers supported?

Mike Wey mike-wey at example.com
Sun Jan 20 07:06:12 PST 2013


On 01/20/2013 03:21 PM, deed wrote:
>>> Do I need another linker?
>>
>> Ach, Windows.
>>
>> Yeah, you need VS Linker when compiling for 64bits on Windows.
>> Can't help you more with this. I think there is somewhere step-by-step
>> guide for 64bits+windows. (wiki.dlang.org maybe? not sure)
>
> Thanks for your help!
>
> The solution that worked out for me:
> - compile with -m64
> - convert objs to coffs (with external tool)
> - link with microsoft visual studio linker. (Include phobos64.lib,
> libcmt.lib, oldnames.lib, shell32.lib and kernel32.lib)
>
> I couldn't find the -m64 switch by running dmd or at
> http://dlang.org/dmd-windows.html. Is there another hidden switch to
> output coff-format directly?

dmd should output coff when compiling with -m64

> Also, I didn't get it to work by configuring the sc.ini file and ended
> up with lots of unresolved symbols. Anyone having a correct sc.ini file
> they could post?

Mine looks like this:

[Version]
version=7.51 Build 020

[Environment]
LIB="%@P%\..\lib"
DFLAGS="-I%@P%\..\phobos" "-I%@P%\..\druntime\import"
VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\
WindowsSdkDir=C:\Program Files\Microsoft SDKs\Windows\v7.0\
LINKCMD=c:\dmd\bin\link.exe
LINKCMD64=%VCINSTALLDIR%bin\amd64\link.exe

VCINSTALLDIR and WindowsSdkDir may be different depending on the version 
of the installed windows SDK.

-- 
Mike Wey


More information about the Digitalmars-d-learn mailing list