Happy holidays everybody,
I'm happy to finally announce the release of new GDC binaries at
https://gdcproject.org/downloads . GDC is the GNU D Compiler, a D
compiler using GCC as the compiler backend.
This release was delayed by massive internal changes in GDC in
preparation for the DDMD frontend and related regressions. We think GDC
is now sufficiently stable for a new release though. New features since
the last release include:
* D frontend updated to 2.068.2, the last C++ frontend version. We
additionally include some backported changes (e.g. loading libcurl
dynamically). Although this is of course still kind of outdated it
should be a useful improvement compared to the last release (2.066.1).
* New GCC versions. The new binaries are based on these backend
versions: 4.8.5, 4.9.4, 5.4.0, 6.3.0. We use new, customized build
scripts for GCC to produce 40 different toolchains from 5
* Multilib support: The new build scripts allow for building multilib
compilers. This means there are now less compiler archives to choose
from and one compiler can compile for different targets using -m
flags. This includes the famous -m32/-m64 for x86 but we now also
support -mfloat-abi=soft/softfp/hard for the ARM target.
* Shared library support: We added support for shared libraries to GDC
and all toolchain binaries ship with static and shared libraries
installed. GDC still defaults to static libraries so pass the
-shared-libphobos flag to use the shared library instead.
* New mechanism to link system dependencies: All system libraries
needed by phobos (-ldl, -lrt, -latomic) are detected in the
phobos ./configure script. The required dependencies are added to a
libgphobos.spec file and installed along with the libgphobos.so/.a
libraries. GDC then reads this file to detect the required libraries,
so the libraries are no longer hard coded in GDC. Note for
distribution packagers: You must make sure to manually install this
file if you do not use the standard make install command.
* New GDMD tool: We now ship a new gdmd binary which replaces the old
perl script. It's written in D and up-to-date with the DMD 2.068.2
interface. Compared to the old script gdmd now does not need any
additional dependencies and supports more advanced DMD functions
(e.g gdmd -main -run a.d --program-args).
Travis-CI should pick up the new release from now on. Packagers can use
the following git tags when creating packages: v2.068.2_gcc6
v2.068.2_gcc5 v2.068.2_gcc4.9 v2.068.2_gcc4.8