www.digitalmars.com         C & C++   DMDScript  

D.gnu - Build GDC on Windows

reply Daniel Green <venix1 gmail.com> writes:
First I want to mention, this is not a usable version of GDC.  There is 
a link issue with the phobos library and if you go through the effort of 
compiling tango-0.99.8, you're bound to run into a couple other issues.

On the other hand, I don't know of anyone who is actively working with 
GDC and windows so any help would be appreciated in bringing an up to 
date GDC compiler to the platform.

GDC Issues
----------
There seem to be a couple issues with GDC, I want to investigate further 
before writing bug reports.
  * I believe GDC is not storing enough file information with the -g 
option because GDB cannot find any source files.
  * Template errors, can give the wrong file name when it fails to 
instantiate a template.

Phobos Issues
-------------
Since I do not have any projects utilizing phobos, I can't test beyond 
simple linking which fails with an undefined reference.
  * undefined reference to 'libmsvcrt_a_iname'


Tango Issues
------------
The newest release 0.99.9 does not yet support GDC, 0.99.8 does not 
support win32 & GDC.  However it can be done and is not overly 
difficult, but you will likely encounter the following issues.
  * Variant with arrays fails with a template error.  I believe it's 
related to void initliaziers resetting type to void.  char[] tmp = void; 
declares tmp as void instead of char[].
  * Throwing an exception inside a catch block causes the runtime to abort.
  * I believe there may be an GC issue somewhere.  I wrote a program to 
try to understand D's garbage collection better, which would run 
indefinately when compiled with an older version of GDC.  Now it 
segfaults after running about 10 seconds.  It makes use of GC.addRoot 
method to hold on to malloced memory.
Feb 28 2010
parent Daniel Green <venix1 gmail.com> writes:
I forgot to mention the extra files needed to finish installation, 
because I really wouldn't recommend copying the files from your MinGW 
install.
Copied from http://www.tdragon.net/recentgcc/

All files can be found at http://sourceforge.net/projects/mingw/files/

  * binutils : binutils-2.19.1-mingw32-bin.tar.gz
  * mingw-runtime : mingwrt-3.16-mingw32-dev.tar.gz & 
mingwrt-3.16-mingw32-dll.tar.gz
  * w32api : w32api-3.13-mingw32-dev.tar.gz

Optional:
  * mingw-utils : mingw-utils-0.4-1-mingw32-bin.tar.lzma
  * mingw32-make : make-3.81-20090914-mingw32-bin.tar.gz
  * gdb. http://gdcwin.sourceforge.net/ has one, but I think there was a 
newer 6.8 out there.
Feb 28 2010