Thread overview
Release: MinGW64 GCC 4.6.1 GDC 1.070/2.055
Dec 19, 2011
Daniel Green
Dec 19, 2011
Andrej Mitrovic
Dec 19, 2011
dsimcha
Dec 19, 2011
Daniel Green
Dec 19, 2011
dsimcha
Dec 19, 2011
Andrej Mitrovic
Dec 19, 2011
Andrej Mitrovic
Dec 19, 2011
dsimcha
Dec 19, 2011
dsimcha
Dec 19, 2011
Daniel Green
December 19, 2011
Please post all issues in D.gnu or on GDC's bitbucket site https://bitbucket.org/goshawk/gdc

 * Built against TDM64 GCC 4.6.1:  http://tdm-gcc.tdragon.net/
 * Built against GDC revision 7e22befef29c.
 * Working TLS support.
 * Updated binutils and mingw runtime for TLS support.
   * new gas directive @secrel32 will generate a constant offset usable
     as an immediate or displacement value.
     Works like posix counterparts @tpoff, @dtpoff, etc.
   * Fixes issue with the mingw runtime related to TLS.
   * Fixes issue with binutils and secrel32 relocations.
 * 7-zip format for size reasons:  http://7-zip.org
 * Release includes both D versions.
   * -v1(default) compiles for D1.
   * -v2 compiles for D2.
   * The switch must be used for linking as well.

To install simply extract to you TDM MinGW64 directory.

This release
https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-7e22befef29c-20111218.7z

All MinGW GDC downloads.
https://bitbucket.org/goshawk/gdc/downloads

All patches, source files and build scripts can be found at https://bitbucket.org/venix1/mingw-gdc/

I will be updating to tip and making -v2 default for the next release.
December 19, 2011
It compiles all of my dwinsamples (although I have to verify if I've introduced any 32/64 bugs), great work on the release!
December 19, 2011
Nice work.  One question, though:  Why are you using an ancient revision of GDC?  I'll try your build out, but I'm not sure most of my code still compiles on 2.055.  That's **two** releases behind now, and two very significant releases.

On 12/18/2011 10:27 PM, Daniel Green wrote:
> Please post all issues in D.gnu or on GDC's bitbucket site
> https://bitbucket.org/goshawk/gdc
>
> * Built against TDM64 GCC 4.6.1: http://tdm-gcc.tdragon.net/
> * Built against GDC revision 7e22befef29c.
> * Working TLS support.
> * Updated binutils and mingw runtime for TLS support.
> * new gas directive @secrel32 will generate a constant offset usable
> as an immediate or displacement value.
> Works like posix counterparts @tpoff, @dtpoff, etc.
> * Fixes issue with the mingw runtime related to TLS.
> * Fixes issue with binutils and secrel32 relocations.
> * 7-zip format for size reasons: http://7-zip.org
> * Release includes both D versions.
> * -v1(default) compiles for D1.
> * -v2 compiles for D2.
> * The switch must be used for linking as well.
>
> To install simply extract to you TDM MinGW64 directory.
>
> This release
> https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-7e22befef29c-20111218.7z
>
>
> All MinGW GDC downloads.
> https://bitbucket.org/goshawk/gdc/downloads
>
> All patches, source files and build scripts can be found at
> https://bitbucket.org/venix1/mingw-gdc/
>
> I will be updating to tip and making -v2 default for the next release.

December 19, 2011
On 12/19/2011 12:04 AM, dsimcha wrote:
> Nice work. One question, though: Why are you using an ancient revision
> of GDC? I'll try your build out, but I'm not sure most of my code still
> compiles on 2.055. That's **two** releases behind now, and two very
> significant releases.

GDC support for 2.056 and 2.057 is less than 2 weeks old.  I didn't see it beneficial to update while testing a new feature.  Now that the support is there, I will be updating to tip.
December 19, 2011
Seems to work in 32-bit mode, but crashes in 64-bit mode.

hello.d:

import std.stdio;

void main() {
   writeln("Hello, world.");
}

>gdc -o hello.exe hello.d -m64 -v2

>hello.exe

(crash)

Running Windows 7, TDM-GCC 64 installed with the bundle installer.

On Monday, 19 December 2011 at 03:27:07 UTC, Daniel Green wrote:
> Please post all issues in D.gnu or on GDC's bitbucket site https://bitbucket.org/goshawk/gdc
>
> * Built against TDM64 GCC 4.6.1:  http://tdm-gcc.tdragon.net/
> * Built against GDC revision 7e22befef29c.
> * Working TLS support.
> * Updated binutils and mingw runtime for TLS support.
>   * new gas directive @secrel32 will generate a constant offset usable
>     as an immediate or displacement value.
>     Works like posix counterparts @tpoff, @dtpoff, etc.
>   * Fixes issue with the mingw runtime related to TLS.
>   * Fixes issue with binutils and secrel32 relocations.
> * 7-zip format for size reasons:  http://7-zip.org
> * Release includes both D versions.
>   * -v1(default) compiles for D1.
>   * -v2 compiles for D2.
>   * The switch must be used for linking as well.
>
> To install simply extract to you TDM MinGW64 directory.
>
> This release
> https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-7e22befef29c-20111218.7z
>
> All MinGW GDC downloads.
> https://bitbucket.org/goshawk/gdc/downloads
>
> All patches, source files and build scripts can be found at https://bitbucket.org/venix1/mingw-gdc/
>
> I will be updating to tip and making -v2 default for the next release.


December 19, 2011
I think it compiles in 64bit mode by default. This assert passes without -m64: static assert(size_t.sizeof == 8);

The crash seems related to stdio. It doesn't happen with -m32.
December 19, 2011
On 12/19/11, Andrej Mitrovic <andrej.mitrovich@gmail.com> wrote:
> I think it compiles in 64bit mode by default. This assert passes without
> -m64:
> static assert(size_t.sizeof == 8);

Woops, sorry I assumed you meant it doesn't, but you didn't say that. My bad. :)
December 19, 2011
...And with D1, everything works again in 32-bit mode but in 64-bit mode:

>gdc -o hello.exe hello.d -m64
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib/libgphobos.a(
win32.o):(.text+0xc3): undefined reference to `_data_start__'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib/libgphobos.a(
win32.o):(.text+0xca): undefined reference to `_bss_end__'
collect2: ld returned 1 exit status

On Monday, 19 December 2011 at 16:10:32 UTC, dsimcha wrote:
> Seems to work in 32-bit mode, but crashes in 64-bit mode.
>
> hello.d:
>
> import std.stdio;
>
> void main() {
>   writeln("Hello, world.");
> }
>
>>gdc -o hello.exe hello.d -m64 -v2
>
>>hello.exe
>
> (crash)
>
> Running Windows 7, TDM-GCC 64 installed with the bundle installer.
>
> On Monday, 19 December 2011 at 03:27:07 UTC, Daniel Green wrote:
>> Please post all issues in D.gnu or on GDC's bitbucket site https://bitbucket.org/goshawk/gdc
>>
>> * Built against TDM64 GCC 4.6.1:  http://tdm-gcc.tdragon.net/
>> * Built against GDC revision 7e22befef29c.
>> * Working TLS support.
>> * Updated binutils and mingw runtime for TLS support.
>> * new gas directive @secrel32 will generate a constant offset usable
>>   as an immediate or displacement value.
>>   Works like posix counterparts @tpoff, @dtpoff, etc.
>> * Fixes issue with the mingw runtime related to TLS.
>> * Fixes issue with binutils and secrel32 relocations.
>> * 7-zip format for size reasons:  http://7-zip.org
>> * Release includes both D versions.
>> * -v1(default) compiles for D1.
>> * -v2 compiles for D2.
>> * The switch must be used for linking as well.
>>
>> To install simply extract to you TDM MinGW64 directory.
>>
>> This release
>> https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm64-1-gdc-7e22befef29c-20111218.7z
>>
>> All MinGW GDC downloads.
>> https://bitbucket.org/goshawk/gdc/downloads
>>
>> All patches, source files and build scripts can be found at https://bitbucket.org/venix1/mingw-gdc/
>>
>> I will be updating to tip and making -v2 default for the next release.


December 19, 2011
Yeah, I just added the -m64 to the command line for explicitness.
 I figured out that 64 is the default.

On Monday, 19 December 2011 at 16:42:16 UTC, Andrej Mitrovic wrote:
> On 12/19/11, Andrej Mitrovic <andrej.mitrovich@gmail.com> wrote:
>> I think it compiles in 64bit mode by default. This assert passes without
>> -m64:
>> static assert(size_t.sizeof == 8);
>
> Woops, sorry I assumed you meant it doesn't, but you didn't say that. My bad. :)


December 19, 2011
On 12/19/2011 12:07 PM, dsimcha wrote:
> ...And with D1, everything works again in 32-bit mode but in 64-bit mode:
>
>> gdc -o hello.exe hello.d -m64
> c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib/libgphobos.a(
>
> win32.o):(.text+0xc3): undefined reference to `_data_start__'
> c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../lib/libgphobos.a(
>
> win32.o):(.text+0xca): undefined reference to `_bss_end__'
> collect2: ld returned 1 exit status
That's an oversight on my part.  binutils linker scripts don't follow the Win64 ABI.  The variables are still being defined as __data_start__ and __bss_end__ by the linker scripts.  I forgot to change the symbols for D1.

Regarding this and your previous issue, I just updated to tip.  So it may be a few days before I can upload new/fixed binaries.