DragonLace.Net
Home of the GNAT AUX and future DRACO Ada compilers.

While DragonFly and FreeBSD have been enjoying FSF GNAT 4.9 for several weeks now (first snapshots and finally the actual 22 April 2014 release) from FreeBSD's Ports Collection, NetBSD was excluded as exclusively uses the FSF GNAT 4.7 from pkgsrc.

This changed yesterday though. New bootstrap compilers were made for NetBSD i386 and x86-64, and the bootstraps from the Ports Collection were also utilized. Now pkgsrc also features the latest GNAT, which is also the only version of GCC 4.9 available in pkgsrc. This means GNAT is available on six pkgsrc platforms: i386 and x86-64 on DragonFly, FreeBSD, and NetBSD. Due to the lack of a current and conforming bootstrap compiler, the SunOS support was disabled. Potential future work is to add OpenBSD bootstraps to add GNAT for OpenBSD and MirBSD through pkgsrc, and also to restore support for SunOS (Solaris 11 / SmartOS / OmniOS).

The Ada testsuites were run on the latest NetBSD 6.1.4 releases and passed perfectly. The results on display on the front page of DragonLace.

There is one downside. The new GNAT apparently requires a version of binutils newer that what NetBSD 6.1 features (version 2.21). The GNAT Programming Studio will not link with the new GNAT when it uses the base linker, but unfortunately GNAT fails to build on NetBSD 6.1 with newer binutils from pkgsrc. NetBSD 6.99 (the precursor to NetBSD 7) features binutils 2.23 in base and thus GPS builds fine. A Problem Report has been raised, but there is no estimate of when (or if) a fix for NetBSD 6 or earlier will come.

Posted Thu May 01 06:33:32 2014

Despite good intentions, support for GNAT-AUX/GCC-AUX had never been added to pkgsrc. The reason is that multilib support was desired (this means x86-64 Solaris can build 32-bit executables), but all builds failed on the Ada libraries on gcc 4.7.x. It turns out that this was a reported bug and it has since been fixed.

Happily a multilib-capable x86-64 bootstrap compiler was created on OmniOS. After some tweaking, pkgsrc is now capable of building gcc 4.9.0 i386 compilers (demonstrated on Joyent's SmartOS development server) and new x86-64 compilers on OmniOS.

This has not been tested on Solaris 10 or Solaris 11 yet, but it is not expected to work as the bootstrap is dynamically linked to system libraries (static linking is no longer possible since Solaris 9). There could be symbols created by Illumos that Solaris 10/11 don't understand. If that is the case, another bootstrap compiler specifically for Solaris 10/11 will be required for those platforms.

After pkgsrc branches its next quarterly, Joyent will start producing binary packages of gcc-aux which can be used on any Illumos distribution. Otherwise any installation of pkgsrc on an Illumos platform can build it from source right now.

By the way, it passed both testsuites perfectly. It's a reliable compiler!

Posted Fri May 09 05:14:59 2014

Adacore releases most of its GPL-licensed software on an annual basis, usually in May. That happened again, and as a result a number of packages have been updated to their latest releases in ports for FreeBSD and DragonFly:

  • florist 2014
  • gprbuild 2014
  • ASIS 2014
  • PolyOrb 2014
  • XML/Ada 4.5.0.0 (repo)
  • AWS and demos 3.2.0.0 (repo)
  • GNAT Programming Studio 6.1.0.0 (repo)

Additional two more ports were added:

  • GNATColl 2014 (devel/gnatcoll)
  • GTKAda3 3.8.3.1 (repo) (x11-toolkits/gtkada3)

Note that versions that equal "2014" are the exact Adacore GPL release and the ports with 4-group versions are working versions from public-facing repositories. In some cases it was necessary to use later versions, e.g. we don't want two versions of xmlada (one for GPS, one for general use) and sometimes trying to maintain a single version of the dependencies means using codebase from something newer than the release. For example, GPS was frozen 7 months ago and the release wasn't compatible with the latest versions of gtkada3 and xmlada.

In other news, ANet was updated to version 0.3.0, a release that exists mainly to clean up the code for BSD based on our patches.

Posted Sun May 25 04:00:00 2014
Last edited Wed Jan 01 00:00:01 2014
© 2010 John Marino | design elements by styleshout | artwork by Arturo Aguirre