Thread overview
[dmd-internals] [D-Programming-Language/dmd] fb8947: make -m64 the default for 64 bit dmd
Apr 30, 2011
Brad Roberts
Apr 30, 2011
Walter Bright
Apr 30, 2011
Brad Roberts
May 01, 2011
Brad Roberts
May 03, 2011
Sean Kelly
April 30, 2011
Branch: refs/heads/master
Home:   https://github.com/D-Programming-Language/dmd

Commit: fb8947c5c679b1d9a3b8e50368d0a8ba9bfd1fbf
    https://github.com/D-Programming-Language/dmd/commit/fb8947c5c679b1d9a3b8e50368d0a8ba9bfd1fbf
Author: Walter Bright <walter at walterbright.com>
Date:   2011-04-30 (Sat, 30 Apr 2011)

Changed paths:
  M src/mars.c

Log Message:
-----------
make -m64 the default for 64 bit dmd


April 30, 2011
Looks like this triggers a 'bug' while building 64 bit output:

>From http://d.puremagic.com/test-results/test_data.ghtml?dataid=59151

../dmd/src/dmd -m64 -c -d -o- -Isrc -Iimport -Hfimport/core/sys/windows/stacktrace.di src/core/sys/windows/stacktrace.d src/core/sys/windows/stacktrace.d(302): Error: cannot implicitly convert expression (symbolSize) of type ulong to uint


This happens for both Linux 32/64 and Linux 64/64.

It triggered for Linux 64/32 as well, but I fixed it with adding -m$(MODEL) to the make file to at least get the forced -m32 part through to that part of compilation.

I see a few options:
  1) disable .di generation for the windows files
  2) force -m32 for the windows files
  3) change the windows files to be 32/64 clean.
  4) other options?

Later,
Brad

On 4/30/2011 1:40 PM, noreply at github.com wrote:
> Branch: refs/heads/master
> Home:   https://github.com/D-Programming-Language/dmd
> 
> Commit: fb8947c5c679b1d9a3b8e50368d0a8ba9bfd1fbf
>     https://github.com/D-Programming-Language/dmd/commit/fb8947c5c679b1d9a3b8e50368d0a8ba9bfd1fbf
> Author: Walter Bright <walter at walterbright.com>
> Date:   2011-04-30 (Sat, 30 Apr 2011)
> 
> Changed paths:
>   M src/mars.c
> 
> Log Message:
> -----------
> make -m64 the default for 64 bit dmd
> 
> 

April 30, 2011
I think forcing -m32 for Windows files is the right approach. We don't have 64 bit Windows support.

On 4/30/2011 2:26 PM, Brad Roberts wrote:
> Looks like this triggers a 'bug' while building 64 bit output:
>
> > From http://d.puremagic.com/test-results/test_data.ghtml?dataid=59151
>
> ../dmd/src/dmd -m64 -c -d -o- -Isrc -Iimport -Hfimport/core/sys/windows/stacktrace.di src/core/sys/windows/stacktrace.d src/core/sys/windows/stacktrace.d(302): Error: cannot implicitly convert expression (symbolSize) of type ulong to uint
>
>
> This happens for both Linux 32/64 and Linux 64/64.
>
> It triggered for Linux 64/32 as well, but I fixed it with adding -m$(MODEL) to the make file to at least get the forced -m32 part through to that part of compilation.
>
> I see a few options:
>    1) disable .di generation for the windows files
>    2) force -m32 for the windows files
>    3) change the windows files to be 32/64 clean.
>    4) other options?
>
> Later,
> Brad
April 30, 2011
I'm leaning towards #1.  Having the wrong .di files for windows in a linux 64 environment seems worse than not having them at all.

On 4/30/2011 2:51 PM, Walter Bright wrote:
> I think forcing -m32 for Windows files is the right approach. We don't have 64 bit Windows support.
> 
> On 4/30/2011 2:26 PM, Brad Roberts wrote:
>> Looks like this triggers a 'bug' while building 64 bit output:
>>
>> > From http://d.puremagic.com/test-results/test_data.ghtml?dataid=59151
>>
>> ../dmd/src/dmd -m64 -c -d -o- -Isrc -Iimport -Hfimport/core/sys/windows/stacktrace.di src/core/sys/windows/stacktrace.d src/core/sys/windows/stacktrace.d(302): Error: cannot implicitly convert expression (symbolSize) of type ulong to uint
>>
>>
>> This happens for both Linux 32/64 and Linux 64/64.
>>
>> It triggered for Linux 64/32 as well, but I fixed it with adding -m$(MODEL) to the make file to at least get the forced -m32 part through to that part of compilation.
>>
>> I see a few options:
>>    1) disable .di generation for the windows files
>>    2) force -m32 for the windows files
>>    3) change the windows files to be 32/64 clean.
>>    4) other options?
>>
>> Later,
>> Brad
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals

April 30, 2011
I just checked in going with path #2 since that's what's been happening since the 64 bit build started, even if it doesn't make a lot of sense to ship 32 bit windows .di files with linux 64 bit builds.

On 4/30/2011 3:08 PM, Brad Roberts wrote:
> I'm leaning towards #1.  Having the wrong .di files for windows in a linux 64 environment seems worse than not having them at all.
> 
> On 4/30/2011 2:51 PM, Walter Bright wrote:
>> I think forcing -m32 for Windows files is the right approach. We don't have 64 bit Windows support.
>>
>> On 4/30/2011 2:26 PM, Brad Roberts wrote:
>>> Looks like this triggers a 'bug' while building 64 bit output:
>>>
>>>> From http://d.puremagic.com/test-results/test_data.ghtml?dataid=59151
>>>
>>> ../dmd/src/dmd -m64 -c -d -o- -Isrc -Iimport -Hfimport/core/sys/windows/stacktrace.di src/core/sys/windows/stacktrace.d src/core/sys/windows/stacktrace.d(302): Error: cannot implicitly convert expression (symbolSize) of type ulong to uint
>>>
>>>
>>> This happens for both Linux 32/64 and Linux 64/64.
>>>
>>> It triggered for Linux 64/32 as well, but I fixed it with adding -m$(MODEL) to the make file to at least get the forced -m32 part through to that part of compilation.
>>>
>>> I see a few options:
>>>    1) disable .di generation for the windows files
>>>    2) force -m32 for the windows files
>>>    3) change the windows files to be 32/64 clean.
>>>    4) other options?
>>>
>>> Later,
>>> Brad

May 03, 2011
I believe there are a bunch of places in druntime that use version(Win32) as well.

On Apr 30, 2011, at 2:26 PM, Brad Roberts wrote:

> Looks like this triggers a 'bug' while building 64 bit output:
> 
> From http://d.puremagic.com/test-results/test_data.ghtml?dataid=59151
> 
> ../dmd/src/dmd -m64 -c -d -o- -Isrc -Iimport -Hfimport/core/sys/windows/stacktrace.di src/core/sys/windows/stacktrace.d src/core/sys/windows/stacktrace.d(302): Error: cannot implicitly convert expression (symbolSize) of type ulong to uint
> 
> 
> This happens for both Linux 32/64 and Linux 64/64.
> 
> It triggered for Linux 64/32 as well, but I fixed it with adding -m$(MODEL) to the make file to at least get the forced -m32 part through to that part of compilation.
> 
> I see a few options:
>  1) disable .di generation for the windows files
>  2) force -m32 for the windows files
>  3) change the windows files to be 32/64 clean.
>  4) other options?
> 
> Later,
> Brad
> 
> On 4/30/2011 1:40 PM, noreply at github.com wrote:
>> Branch: refs/heads/master
>> Home:   https://github.com/D-Programming-Language/dmd
>> 
>> Commit: fb8947c5c679b1d9a3b8e50368d0a8ba9bfd1fbf
>>    https://github.com/D-Programming-Language/dmd/commit/fb8947c5c679b1d9a3b8e50368d0a8ba9bfd1fbf
>> Author: Walter Bright <walter at walterbright.com>
>> Date:   2011-04-30 (Sat, 30 Apr 2011)
>> 
>> Changed paths:
>>  M src/mars.c
>> 
>> Log Message:
>> -----------
>> make -m64 the default for 64 bit dmd
>> 
>> 
> 
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals