www.digitalmars.com         C & C++   DMDScript  

D.gnu - Release: MinGW64 GCC 4.6.1 GDC 1.070/2.055

reply Daniel Green <venix1 gmail.com> writes:
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.
Dec 18 2011
next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
It compiles all of my dwinsamples (although I have to verify if I've
introduced any 32/64 bugs), great work on the release!
Dec 18 2011
prev sibling next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
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.
Dec 18 2011
parent Daniel Green <venix1 gmail.com> writes:
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.
Dec 18 2011
prev sibling parent reply "dsimcha" <dsimcha yahoo.com> writes:
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.
Dec 19 2011
next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
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.
Dec 19 2011
prev sibling next sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
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. :)
Dec 19 2011
parent "dsimcha" <dsimcha yahoo.com> writes:
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. :)
Dec 19 2011
prev sibling parent reply "dsimcha" <dsimcha yahoo.com> writes:
...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.
Dec 19 2011
parent Daniel Green <venix1 gmail.com> writes:
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.
Dec 19 2011