www.digitalmars.com         C & C++   DMDScript  

D.gnu - Release: MinGW 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 TDM 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 an error with the mingw runtime related to TLS.
  * 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.
  * Made possible by Iain Buclaw's hard work in maintaining GDC.
  * 64bit and up to date GDC forthcoming.

To install simply extract to you TDM MinGW32 directory.

This release
https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef29c-20111205.zip

All MinGW GDC downloads.
It's highly recommended to ignore all prior builds.  TLS *will* not work.
https://bitbucket.org/goshawk/gdc/downloads


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

Enjoy.
Dec 05 2011
next sibling parent reply Trass3r <un known.com> writes:
Thx!

   * Release includes both D versions.
     * -v1(default) compiles for D1.
     * -v2 compiles for D2.
     * The switch must be used for linking as well.

   * 64bit and up to date GDC forthcoming.

option at all to produce Win64 binaries. (and of course beginning with Win7 everyone should use an x64 OS anyway ;))
   * 7-zip format for size reasons:  http://7-zip.org

 This release
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef29c-20111205.zip

but why is there a zip version anyway?
Dec 05 2011
next sibling parent reply Daniel Green <venix1 gmail.com> writes:
On 12/5/2011 8:28 PM, Trass3r wrote:
 Why is D1 still the default?

the default and I forgot about it until writing the post. It also requires some reworking of the changes that enable dual compilers.
 but why is there a zip version anyway?

letting everyone get an 404 error, I just uploaded a zip file.
Dec 05 2011
parent =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <xtzgzorex gmail.com> writes:
On 06-12-2011 02:46, Trass3r wrote:
 Why is D1 still the default?

the default and I forgot about it until writing the post. It also requires some reworking of the changes that enable dual compilers.
 but why is there a zip version anyway?

letting everyone get an 404 error, I just uploaded a zip file.

I see. btw, is there something like gdmd for Windoze too?

That would be very helpful, indeed! I don't feel like rewriting all of my makefiles to use GDC's parameter syntax. ;) - Alex
Dec 06 2011
prev sibling parent Trass3r <un known.com> writes:
 Why is D1 still the default?

the default and I forgot about it until writing the post. It also requires some reworking of the changes that enable dual compilers.
 but why is there a zip version anyway?

letting everyone get an 404 error, I just uploaded a zip file.

I see. btw, is there something like gdmd for Windoze too?
Dec 05 2011
prev sibling next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
Daniel Green:

     * -v1(default) compiles for D1.

I suggest to make D2 the default. I have installed the latest TDM GCC in C:\MinGW Then I have unpacked the 7-zip over the directories of the MinGW install. 150+ files got overwritten, some executables too. I have made sure C:\MinGW\bin and C:\MinGW\lib are in the path. C:\MinGW\lib contains libgphobos.a too. If now I compile a little program using: gdc -v2 test.d It probably doesn't find Phobos: c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../libgphobos2.a(bitmanip.o): In function `D3std8bitmanip8BitArray7opIndexMxFkZb': C:\crossdev\gdc\v2\build\mingw32\libphobos/../../../gcc-4.6.1/libphobos std/bitmanip.d:410: undefined reference to `__sync_fetch_and_add_4' ... c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../libgphobos2.a(bitmanip.o):C:\crossdev\gdc\v2\build\mingw32\libphobos/../../../gcc-4.6.1/libphobos std/bitmanip.d:410: more undefined references to `__sync_fetch_and_add_4' follow I don't even know what C:\crossdev\ is, I don't have that directory. Do you know how to improve this situation? Bye and thank you, bearophile
Dec 05 2011
parent Daniel Green <venix1 gmail.com> writes:
On 12/5/2011 9:47 PM, bearophile wrote:

 I suggest to make D2 the default.

 I have installed the latest TDM GCC in
 C:\MinGW

 Then I have unpacked the 7-zip over the directories of the MinGW install. 150+
files got overwritten, some executables too.

 I have made sure C:\MinGW\bin and C:\MinGW\lib are in the path. C:\MinGW\lib
contains libgphobos.a too.

 If now I compile a little program using:
 gdc -v2 test.d

 It probably doesn't find Phobos:

 c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../libgphobos2.a(bitmanip.o): In
function `D3std8bitmanip8BitArray7opIndexMxFkZb':
 C:\crossdev\gdc\v2\build\mingw32\libphobos/../../../gcc-4.6.1/libphobos
std/bitmanip.d:410: undefined reference to `__sync_fetch_and_add_4'
 ...
 c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../libgphobos2.a(bitmanip.o):C:\crossdev\gdc\v2\build\mingw32\libphobos/../../../gcc-4.6.1/libphobos
std/bitmanip.d:410: more undefined references to `__sync_fetch_and_add_4' follow

 I don't even know what C:\crossdev\ is, I don't have that directory.

 Do you know how to improve this situation?

up some configure options. I will post once I've fixed the issue and uploaded new binaries. -Daniel
Dec 05 2011
prev sibling parent reply Daniel Green <venix1 gmail.com> writes:
Updated binaries.
https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef29c-20111210.7z

  * GDC now targets i686 processors.  Was targeting i386 which required 
substituting functions for atomic instructions.

I will release MinGW64 binaries soon then work on updating to tip and 
changing the default compiler to D2.

-Daniel
Dec 10 2011
next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
Daniel Green:

 Updated binaries.
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef29c-20111210.7z

I have tried the same install operations I have tried in a precedent post, and now it says it is not finding this: libgmp-3.dll This thread that seems related: http://old.nabble.com/GCJ---libgmp-3.dll-was-not-found-td25234066.html Bye, bearophile
Dec 10 2011
parent reply Daniel Green <venix1 gmail.com> writes:
On 12/10/2011 4:38 PM, bearophile wrote:
 I have tried the same install operations I have tried in a precedent post, and
now it says it is not finding this:
 libgmp-3.dll

TDM-GCC is built with shared libraries using gmp-4.3.2. MinGW stable is built with static libraries. The dll you listed comes from gmp-5.0.1. I am using the TDM-GCC build scripts to build the D compiler as well. You can find the files inside the "libexec/mingw32/4.6.1" folder of the TDM-GCC core download from the downloads page.
Dec 10 2011
parent reply bearophile <bearophileHUGS lycos.com> writes:
Daniel Green:

 Did you install TDM-GCC or MinGW Stable?

Like in my precedent test I have installed "tdm-gcc-4.6.1 exe MinGW / sjlj": http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.6.1.exe/download
 TDM-GCC is built with shared libraries using gmp-4.3.2.  MinGW stable is 
 built with static libraries.  The dll you listed comes from gmp-5.0.1. 
 I am using the TDM-GCC build scripts to build the D compiler as well. 
 You can find the files inside the "libexec/mingw32/4.6.1" folder of the 
 TDM-GCC core download from the downloads page.

I have found that libgmp-3.dll and other needed dlls are in this directory, that I have added to the path: C:\MinGW32\libexec\gcc\mingw32\4.6.1 Now it's giving me: ...>gdc -v2 test.d gdc: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found compilation terminated. Despite the C:\MinGW32\libexec\gcc\mingw32\4.6.1 directory contains liblto_plugin-0.dll too. I feel stupid -.- I'd like a single zip/rar/7zip with all needed files inside, with GCC too :-) Bye, bearophile
Dec 10 2011
parent reply Daniel Green <venix1 gmail.com> writes:
On 12/11/2011 2:39 AM, bearophile wrote:
 I feel stupid -.-

changed some library and exectuable paths resulting in these issues.
 I'd like a single zip/rar/7zip with all needed files inside, with GCC too :-)

installations on any system. That's why I chose this path. I've repackaged and tested it from a clean install. https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef29c-20111211.7z
Dec 11 2011
parent reply bearophile <bearophileHUGS lycos.com> writes:
Daniel Green:

 I've repackaged and tested it from a clean install.
 
 https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef29c-20111211.7z

Now it compiles a working hello world, thank you :-) A not stripped hello world is 3_908_177 bytes, much bigger than the binary produced by DMD, and it's 677_888 bytes stripped. DMD 2.057beta+optilink produce a 932_892 bytes hello world binary, while using the same DMD+ulink it becomes 334_576 bytes. If I compile the little D coins program here: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=151610 Using: gdc -v2 coins.d -o coins.exe When I run it it crashes immediately with no error messages :-( Bye, bearophile
Dec 11 2011
parent Daniel Green <venix1 gmail.com> writes:
On 12/11/2011 7:33 PM, bearophile wrote:
 A not stripped hello world is 3_908_177 bytes, much bigger than the binary
produced by DMD, and it's 677_888 bytes stripped.
 DMD 2.057beta+optilink produce a 932_892 bytes hello world binary, while using
the same DMD+ulink it becomes 334_576 bytes.

Try comparing against what GCC's C/C++ compiler produces.
 If I compile the little D coins program here:
 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=151610

 Using:
 gdc -v2 coins.d -o coins.exe

 When I run it it crashes immediately with no error messages :-(

the wrong section. -Dan
Dec 11 2011
prev sibling next sibling parent Andrew Wiley <wiley.andrew.j gmail.com> writes:
On Sun, Dec 11, 2011 at 10:29 AM, Daniel Green <venix1 gmail.com> wrote:
 On 12/11/2011 2:39 AM, bearophile wrote:
 I feel stupid -.-

Sorry, it's really a packaging issue. =A0Switching GDC to target i686 cha=

 some library and exectuable paths resulting in these issues.



 I'd like a single zip/rar/7zip with all needed files inside, with GCC to=


 :-)

That could be done but I never liked the idea of requiring multiple GCC installations on any system. =A0That's why I chose this path. I've repackaged and tested it from a clean install. https://bitbucket.org/goshawk/gdc/downloads/gcc-4.6.1-tdm-1-gdc-7e22befef=


This one works for me on TDM GCC. I had the same gmp problem with the last = one. It seems calling spawn() in std.concurrency causes a segfault, but that's a separate issue.
Dec 11 2011
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
This is great, the binaries now work. Thanks for your hard work Daniel.

Btw, it seems GDMD is hardcoded to D1? -fd-version is always 1,
there's a -v1 switch for GDMD but no -v2 switch. Should I file this?
Dec 12 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Here's what I can add on line 434 in GDMD to make it work:
    } elsif ( $arg =~ m/^-v2$/ ) {
        push  out, '-v2';
Dec 12 2011