GDC2 [Re: GDC2 compilation warnings]

Iain Buclaw ibuclaw at ubuntu.com
Wed Nov 24 05:39:48 PST 2010


== Quote from bearophile (bearophileHUGS at lycos.com)'s article
> ------------------
> I have done some tests on the 32 bit gdc D2, compiled today on Ubuntu. Some
comments:
> The compilation and the compiler works! This is great considering that it's a
card castle about 2 lighyears high that uses no glue.
> To compile it I have had to use, this, suggested by bernardh on IRC:
> sudo apt-get install libgmp3-dev
> sudo apt-get install libmpfr-dev
> You may add that to the compilation recipe. Several alternatives have failed.

Will add that to the dependencies later. If I were to build gdc on a new Debian
installation, the first packages I'd grab are:
g++-multilib, libgmp-dev, libmpfr-dev, patch

On 64bit platforms, this allows the build to make 32bit libraries for installation
too.

> I have used gcc-4.4.5 as suggested. I have tried to use gcc-4.4.5.tar.bz2, but
it has failed, hundreds of undefined symbols. I have then used
gcc-core-4.4.5.tar.bz2 and it was OK.
> Using the latest LDC 1, the stripped binary of a little raytracer-like program
that mostly uses the C standard library is about 174_960 bytes, similar code
compiled with GDC2 is 458_052 bytes stripped, and over 2 MB unstripped, this is
not good.

If you compare GDC1 and GDC2, you'll see the same thing. The problem is likely
because Phobos2 is heavily templated in comparison to Phobos1, so you're pulling
in a lot more functions than you bargain for.


> The compilation of templates (the Nqueens program I've shown recently) was
dead-slow and I was unable to compile the program for N higher than 5 (DMD works
up to 6 or 7, I think, G++ reaches higher values).

Not sure what you are talking about. I'll be sure to have a look at it later
though. :~)


> I don't like the need to write:
> gdc foo.d -o foo

There is a Perl script included - gdmd - script that essentially mimics this dmd
functionality.

> I appreciate that dmd just needs:
> dmd foo.d
> Or even:
> dmd foo
> (and "a.out" is bad).

File a bug against GCC then.


> This page doesn't list the command line arguments of GDC:
> http://bitbucket.org/goshawk/gdc/wiki/Home
> I have had to find them here, but I am not sure they are correct still:
> http://dgcc.sourceforge.net/gdc/manual.html

man gdc

> And I don't know/remember the version identifier for GDC, I think this page
doesn't list it:
> http://www.digitalmars.com/d/2.0/version.html
> Bye,
> bearophile

version (GNU){}



More information about the Digitalmars-d mailing list