New GDC binaries: 2.068.2, shared library support, multilib support & a new gdmd tool

Johannes Pfau via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Dec 25 11:41:38 PST 2016


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
  configuration files.

* 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


Regards,
Johannes


More information about the Digitalmars-d-announce mailing list