./lang/gcc-aux, GNAT Ada compiler based on GCC 4.9

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 20141023, Package name: gcc-aux-20141023, Maintainer: draco

The AUX compiler supports several languages: Ada, C, C++, Fortran and
Objective-C. Since Ada support must be built by an Ada-capable compiler,
only platforms for which a bootstrap compiler is available can build it.

The AUX compiler is based on release versions of the Free Software
Foundation's GNU Compiler Collection. It carries with it the GMGPL license,
the modified version of the GPL that exempts generic instantiation from
resulting in a GPL-licensed executable. It also carries the GCC Runtime
Library Exception, so the resulting binaries have no licensing requirements.
Binaries produced by the AUX compiler should be legally handled the same as
binaries produced by any FSF compiler.

This compiler implements the full Ada-83, Ada-95, Ada-2005 and Ada-2012

Required to run:
[math/mpfr] [devel/gmp] [devel/binutils] [math/mpcomplex]

Package options: fortran, objc

Master sites: (Expand)

Version history: (Expand)

CVS history: (Expand)

   2015-06-15 20:22:55 by John Marino | Files touched by this commit (1)
Log message:
lang/gcc-aux: Fix build on NetBSD 7.0-Beta

Like lang/gcc5-aux, gcc-aux was failing to build on NetBSD 7.0-beta
due to a "operation not permitted" error emitted by pkgsrc gold linker.

The root cause isn't known (problem with NetBSD 7 full-stop?  problem
with binutils, but only NetBSD7?).  However, the base binutils which
is version 2.23 is sufficient (barely) for gcc 4.9.

The build failure is solved by using base binutils for NetBSD 7*.
No revbump required because there is no change for platforms on which
gcc-aux has already potentially been built.

NOTE: As noted on gcc5-aux, stack-checks that passed on NetBSD 5 and 6
are now failing on GNAT on NetBSD 7.  This is because the signal
trampoline has apparently changed and the pattern the unwinder was
looking for is never found, resulting in a segfault instead of a frame
unwind.  The fix would be to determine the new signal trampoline
pattern and have it switch based on param.h version (or something like
   2015-06-14 21:46:51 by John Marino | Files touched by this commit (8) | Package updated
Log message:
lang/gcc-aux: various fixes, remove NLS option

This update is a by-product of working on new package, gcc5-aux, and
applying those concepts here.  Several changes were made, including:

- Version date was not updated when version changed from 4.9.0 => 4.9.2
  (revbump occurred instead).  Remove revbump and fix date
- Remove DragonFly-i386 from permitted platforms.  This platform will be
  completely unsupported when DragonFly 4.2 is released (very soon)
- Remove references to OpenBSD and MirBSD.  Support was never activated
  due to technical issues and likely will not happen.
- Reindent (cosmetic)
- It is seemingly impossible to work around NetBSD's binary compatibility
  scheme (e.g. __socket30, __nanosleep50).  These weak symbols are simply
  ignored by Ada's pragma Import and no c-tricks seem to avoid conflicts.
  (Why can't NetBSD use symbol versioning???)  Anyway, having NetBSD-
  specific copies of source files to handle a couple of symbol differences
  is simply not sustainable, so move to a new scheme where these are
  replaced on the fly.  By the way, this problem basically means that I
  cannot fix GNAT upstream, even if I found somebody to sponsor getting
  the NUMEROUS non-ada patches upstream.  GCC devs would laugh at me if I
  describe why I want to introduce so many new but similar files to
  support NetBSD.  So it's very likely never going to happen.
- Disable libitm and libcilkrts by default.  They are out of scope and not
  worth building / fixing.
- Apparently NLS support doesn't build on NetBSD 6.1?  Nobody reported
  this to me, but there are linking issues.  I'm just removing the option
  (which was on by default) until further notice.  Having NLS support on
  by default was questionable anyway.
- Remove exetim mods, this was wrong (for all BSD platforms)
- Android support leaked in, but it's not used here
- The diff-ada file dropped about 150k in size, and could have been more
  had the android osinte file been masked too.
   2015-06-12 12:52:19 by Thomas Klausner | Files touched by this commit (3152)
Log message:
Recursive PKGREVISION bump for all packages mentioning 'perl',
having a PKGNAME of p5-*, or depending such a package,
for perl-5.22.0.
   2014-12-07 11:45:32 by Ryo ONODERA | Files touched by this commit (3) | Package updated
Log message:

* Switch to GCC 4.9.2 based.
* binutils of NetBSD 7.99 is modern enough, and use binutils in base.
  Fix build under NetBSD/amd64 7.99.1 with this workaround.
   2014-05-30 01:38:20 by Thomas Klausner | Files touched by this commit (3049)
Log message:
Bump for perl-5.20.0.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
   2014-05-15 11:50:44 by John Marino | Files touched by this commit (1)
Log message:
lang/gcc-aux: Save work on OpenBSD - work suspended

gcc-aux builds on OpenBSD, but the default posix thread handling for Ada
tasking no longer works.  All tasks get stuck in a "Thread Sleep" sleep
state.  The gcc4.8.2-based egcc in OpenBSD ports supports Ada and passes
all tests.  There is no difference in the configuration between that and
gcc-aux.  To fix, it probably requires tasking support unique to OpenBSD
and that's out of scope for me at the moment, especially considering the
lack of a suitable development machine.

As such, I'm suspending my work on OpenBSD.  This commit captures some
minor bug fixes.  The addition of "--enable-checking" configuration switch
should be the default so there's no need bump gcc-aux again.
   2014-05-13 10:18:05 by John Marino | Files touched by this commit (4)
Log message:
lang/gcc-aux: Enable dl_iterate_phdr and link with gold

These changes are for NetBSD only although non-functional OpenBSD support
continues to be added.  The biggest change is configuring the compiler to
use the gold linker from binutils 2.24 instead of the system linker.  The
ld.bfd linker from binutils 2.24 is buggy on NetBSD and OpenBSD; it cannot
properly produce/recognize PIC files in every case, which is why gcc-aux
had been limited to the system linker.  The system linker was too old for
gcc-aux and devel/gps failed to link because of it.

At the same time, the dormant dl_iterate_phdr support has been activated
for NetBSD.  It seems to work; the Ada testsuite still passes perfectly.

Due to lack of testing, gold is restricted from building on NetBSD 5,
which means lang/gcc-aux will fail to build as a result.  If someone
verifies gold builds on NetBSD 5, then the restriction on binutils can
be removed and lang/gcc-aux will be able to build on NetBSD 5 again.
   2014-05-09 11:50:47 by John Marino | Files touched by this commit (6)
Log message:
lang/gcc-aux: Primarily add Solaris i386 and x86_64 targets

I was never able to build gcc-aux with multilib support when it was
based on gcc 4.7.  It turns out that this is because Ada support for
multilib was broken per GCC's bugzilla.  It's been fixed since.  After
some significant effort and many hours, I finally produced a multilib
bootstrap for Solaris.  It can produce other multilib compilers (x86-64)
and it can produce 32-bit only compilers (i386).  This was tested on a
stock OmniOS x86-64 installation and the Joyent dev area (i386).

Solaris has not supported static linking since Solaris 9, so it is not
possible to create a static bootstrap like the BSDs have, nor is it
possible to build the compiler statically, so that option is disabled.
That means it is unlikely that the bootstrap will run on Solaris 10 or
Solaris 11, but this theory has not been tested.

Much of the changes to the diff-* patchsets are a result of OpenBSD work.
An OpenBSD static bootstrap has been created against devel/binutils, and
as a result it fails to find system libraries such as libc and libm. That
is a side note explaining the OpenBSD additions.  There are some DragonFly
and NetBSD changes in the diff-* patches though.

The bootstrap target was significantly modified, mainly to capture the
special needs of creating a Solaris bootstrap.  The creation of the
bootstrap tarball was put in it's own target.  The zlib and math libraries
were connected to the bootstrap option.  It's not a good idea to use
system zlib on Illumos because the zlib header is not guaranteed to be

The feature to rebuild the compiler with the installed gcc-aux was fixed;
it should use it's own c++ compiler instead of the system c++ compiler.

OpenBSD 5.5 does not support "cp -a", so this was changed to "cp \ 
-RpP" for
portability reasons.