Is there a dmd.exe x86_64 out there?

Dlangofile via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jun 25 03:25:38 PDT 2016


On Saturday, 25 June 2016 at 09:39:21 UTC, rikki cattermole wrote:
> On 25/06/2016 9:03 PM, Dlangofile wrote:
>> On Saturday, 25 June 2016 at 03:29:02 UTC, rikki cattermole 
>> wrote:
>>> On 25/06/2016 5:57 AM, Dlangofile wrote:
>>>> Hi all,
>>>>
>>>> I'm building a Docker Alpine linux image with wine, for 
>>>> being able to
>>>> forge Windows executable from my laptop, without having to 
>>>> dual boot.
>>>>
>>>> With my disappointment, I'm not able to run 32bit executable 
>>>> from the
>>>> container right now, so the easy way is running a win64 
>>>> dmd.exe: someone
>>>> can point me to a pre-build executable, based on the latest 
>>>> version?
>>>>
>>>> Thanks
>>>
>>> Umm, x86_64 is backwards compatible with x86.
>>> So if 32bit build of dmd doesn't work, you have bigger 
>>> problems.
>>
>> Well, frankly speaking I don't know!
>>
>> PE32+ executable (console) x86-64, for MS Windows -> working 
>> well
>> PE32 executable (console) Intel 80386, for MS Windows -> not 
>> working at all
>>
>> I tried also to use a WINEARCH=win32, without success: I'm 
>> attaching the
>> Dockerfile at the end, if someone wants to help more on that.
>>
>> In the meantime, any x86-64 DMD executable?
>> What's the problem in having it available by default in the 
>> Windows
>> distribution?
>>
>> Thanks
>>
>> /D
>>
>>
>> FROM alpine:3.4
>> RUN apk --no-cache add wine freetype ncurses file
>> ENV WINEARCH=win64
>> RUN wineboot
>> ADD dmd2 /dmd2
>> CMD ["sh"]
>
> We need to see any errors produced from Wine.
> It is known that dmd does run under it. Which means something 
> is wrong with your setup.

with WINEARCH=win64

/dmd2/windows/bin # wineconsole dmd.exe
err:winediag:nulldrv_CreateWindow Application tried to create a 
window, but no driver could be loaded.
err:winediag:nulldrv_CreateWindow Make sure that your X server is 
running and that $DISPLAY is set correctly.
wineconsole: Starting program "dmd.exe" failed.
The command is invalid.

with WINEARCH=win32

/dmd2/windows/bin # wineconsole dmd.exe
wine: '/root/.wine' is a 32-bit installation, it cannot support 
64-bit applications.

> As I said about x86_64 being backwards compatible with x86 (you 
> can even run old 386 programs on a modern day cpu, go figure) 
> so that isn't the problem.

Maybe the Alpine Linux package for Wine has only 64-bit support...

> The reason why we do not provide a dmd compiled for 64bit is 
> simply, 32bit works in pretty much all cases. The cases it 
> doesn't involve very large code bases being compiled.

I understand, but what's exactly the problem in providing a 64bit 
version of the executable?
Not providing it has just complicated my experience with D...  :-)

> I just had a look into Wine, I'm not sure if this helps[0].
> Right now you're not creating a new Wine environment or 
> configuring it.

I think that the 'wineboot' command in the Dockerfile just do it: 
I can run Win64 console application...

> Otherwise, can you change over to a 32bit image instead of 
> 64bit alpine?
> That probably will also fix it.

Probably yes, maybe with an Ubuntu image as a base.

The point is that everyone in docker is switching to Alpine 
distributions, as an alpine based image is far smaller that the 
other options, and the official Docker image of Alpine is 64bit 
only....




More information about the Digitalmars-d-learn mailing list