I should have done this when I bumped the port port earlier. A few
of the changes to the diff-* files directly affect FreeBSD although
most are results of other platforms (NetBSD, OpenBSD mainly)
The most invasive change was exchanging strcpy and printf for their
"n" versions. It was to make OpenBSD happy but the code is better
for it.
The socket support on Gnatdroid was broken, and it had to be fixed at
lang/gcc-aux.
Until now, the dejagnu testsuite did not work on remote targets. To fix
this, support files had to be installed at ${LOCALBASE}/share/dejagnu.
Dejagnu was not made a run dependency, conditional or otherwise. The
test targets for gnatdroid are really maintainer targets.
Running the gnat.dg testsuite confirms that everything works in the
cross-compiler except stack checking (there's no support in gcc for this
just yet).
The majority of the 234k c++ testsuite patch can be eliminated with
REINPLACE_CMD at the post-extract phase. Now it's 1/100th the size
at 2.3k. No revbump necessary; the testsuite isn't even a default
option. The same treatment can be done to lang/gcc47-aux later.
Since the April 6 snapshot, a lot of work has entered the GCC tree to
fix the arm-android GNAT port. Currently it passes everything except
stack checking.
A lot of the additional lines in diff-ada will be removed with the
next snapshot. Future plans also include significantly reducing the
size of the diff-cxx-testsuite file too.
The cause for the build errors are due to a GCC makefile bug.
C++ is now required to build gnattools, but libstdc++ was not listed
as a dependency. The fix for this bug will be posted to GCC's bugzilla
shortly. While here, bump gcc-aux to the latest snapshot (16 March).
Now gcc-aux passes Redports 8x.
Reported by: pkg-fallout
GCC4.9 hasn't been released yet, but the Ada portion of it is pretty
stable and perfectly passes ACATS and gnat.dg testsuites. The only
trick was to change the unwind mechanism on i386 away from KERN_PS_STRINGS
because it will not work with 32-bit compatability mode on AMD64. This
is because on AMD64, the signal trampoline is located on a random area
on a shared page rather than a fixed location before KERN_PS_STRINGS. To
support both true i386 and AMD64-32 compatibility mode, unwind now looks
for frame pattern in all cases. Apparently stack checking has been broken
on AMD64-32 until now.
It is important to get the Ada Framework in ports to be based on gcc49
because this compiler supports the full Ada-2012 standard implementation,
and in fact some new programs require this already.
This port will stay on snapshots until 4.9.0 is released, then it will
return to be based on releases.
The Ada and C++ options have been removed. These are now always built.
In fact, GCC now requires C++ to build, so new bootstraps had to be
created. FreeBSD8 has its own bootstrap, and FreeBSD 9+ uses a pure
static bootstrap (including GNAT tools) which should last a long time.
Additionally a "Bootstrap" option was added, but this overrides all
other options to create new bootstraps. It is not intended for general
use.
Most of the Ada Framework in ports has been pretested and adjusted to
work with gcc49 out of the box, but some ports will need to be updated
immediately, which will happen right after this one. The update to
lang/gnat_util had to be synchronized with lang/gcc-aux because they
share version information and the PORTREVISION needed to be reset.
The majority of these changes affect the android cross-compiler builds.
The only build change for the host compiler is builds convert_addresses
within a separate file rather than as part of adaint.c. Given that this
does not represent a functional change in any way, I just don't see the
need to bump PORTREVISION as a result.
This change covers:
1) portlint cleanup
2) Support for bootstrapping on DragonFly 3.5+
3) Removal of uneeded shared library version specifications
4) USES+= gmake
5) Splits out version to separate makefile for Ada framework
6) Fixes typo that caused DragonFly to use mktemp
7) Adds aggregate array index fix from gcc 4.8
8) NetBSD lstdc++ fixes were pulled in from diff reneration
9) c++ testsuite diff was corrected (how it was committed wrong is unknown)
Approved by: bapt (mentor)
was planned for lang/gnat-aux to upgrade to version 4.7, then 4.8, etc.
However, some cross-compilers are based on it and there are some significant
differences between gcc 4.6 and 4.7. lang/gnat-aux also installs with a
${LOCALBASE} of /usr/local which has a high potential of file conflicts with
other lang/ compilers. Another reason for keeping them separate is just about
every Ada program will need to be patched for it due to new binding
interpretations stemming from Ada-2012 work. Simply updating gnat-aux would
break them all instantly.
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 the AUX
compiler.
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.
The AUX GNAT compiler implements the full Ada-83, Ada-95, Ada-2005 standard and
provides a partial implementation of Ada-2012.
WWW: http://www.dragonlace.net/
PR: ports/169951
Submitted by: John Marino <draco@marino.st>