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 uses 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
standards.
WWW: http://www.dragonlace.net/

* - deleted ports are only shown under the This port is required by section. It was harder to do for the Required section. Perhaps later...
Configuration Options

===> The following configuration options are available for gcc-aux-20150626:
====> Options available for the group Standard
FORT=on: Fortran language support
OBJC=on: Objective-C language support
NLS=on: Native Language Support
TESTSUITE=off: Activate test support
STATIC=off: Link compilers and drivers statically
====> Options available for the group Bootstrap
BOOTSTRAP=off: Create bootstrap compiler (overrides other options)
===> Use 'make config' to modify these settings

lang/gcc-aux: deprecate, set expiration for 15 May 2016
There are no more ports dependent on gcc-aux anymore, and there's no
known reason to use this compiler over the newer gcc5-aux and gcc6-aux
compilers. Ideally, there should only be two compilers featured in the
Ada framework: The default and the upcoming one.

Add gnatdroid-x86 (3 new ports), X-compiler to Android-x86
Similar to lang/gnatdroid-armv7, lang/gnatdroid-x86 is a cross-compiler
targetting Android. The former targets ARMv7 processors while the latter
targets Android on x86 (32-bit). The latter also runs on Virtualbox as
a bonus. The new ports are implemented as slaves to the ARMv7 versions.
The GNAT ACATS were run, and it passed every test except CXG2024,
"accuracy of multiplication and division of mixed decimal and binary
fixed point numbers".
subtest 13: expected -51.00 got 50.0
subtest 14: expected 51.0 got 50.0
This is probably a rounding error unique to 32-bit x86. Overall this
version passed better than gnatdroid-armv7 because unwind is supported,

gnatdroid-sysroot: Add Android API Level 21 (Lollipop)
The latest Android Native Development Kit (NDK) has API Level 21
in it (but not 20, nor 22 or the latest Level 23). Add this option
to gnatdroid's sysroot port, and change the default API from Jelly Bean 1
(Level 16) to Kitkat (Level 19).
Bump gnatdroid's binutils and gnatdroid itself as a consequence of this
default change. A new patch had to be added to lang/gcc-aux to handle
the CTYPE changes which haven't made to GCC yet.
Gnatdroid has been testing for building on all API's but not for
functionality beyond Level 16 due to lack of hardware. I may soon
install an Android emulator to see if that will suffice.

MASTER_SITES cleanup.
- Replace ${MASTER_SITE_FOO} with FOO.
- Merge MASTER_SITE_SUBDIR into MASTER_SITES when possible. (This means 99.9%
of the time.)
- Remove occurrences of MASTER_SITE_LOCAL when no subdirectory was present and
no hint of what it should be was present.
- Fix some logic.
- And generally, make things more simple and easy to understand.
While there, add magic values to the FESTIVAL, GENTOO, GIMP, GNUPG, QT and
SAMBA macros.
Also, replace some EXTRACT_SUFX occurences with USES=tar:*.
Checked by: make fetch-urlall-list
With hat: portmgr
Sponsored by: Absolight

devel/gps: Restore missing project properties switches
The project properties were missing several tabs in the "switches"
sections, but it wasn't immediately obvious why. It turns out that this
was caused by a missing generated file (gnat_switches.py). Restoring
that file along with having PATH set to the Ada compiler restored the
missing tabs.
The trick is that the generated file needs a texi file that is not present
in the distfile. The texi file was discarded by gnat_util (and its parent
gccX), so the solution is change gnat_util to install the file at its own
DOCDIR. Pregeneration of the gnat_switches.py is a bad idea IMO, so we
stick with the intended generation.
while here, install gps as gps_exe and create a wrapper named "gps" that

lang/gnat_util, devel/gprbuild: Support gcc5-aux
GPRBuild is too highly tethered to the compiler -- in practical terms
each version of GPRBuild is meant to be built by a specific GPL GNAT,
but we're trying to build it with multiple FSF GNATS that are out of sync.
This patch set does allow GPRBuild to build and apparently work with both
gcc-aux and gcc5-aux. There is no real change for gcc-aux (OpenVMS is
removed from the code but it should be same difference) ang for gcc5-aux,
the previous patches aren't needed but new ones are. Thus, EXTRA_PATCHES
had to be set for each of the two supported compilers.
lang/gnat_utils had to be modified to stop packaging OpenVMS target files
as apparently this target has been removed from gcc5-aux.

lang/gcc-aux, lang/gcc47-aux, lang/gnatdroid-arm*: Add CPE information
There are no active CVEs against GCC 4.7.x or 4.9.x, but GCC is listed
in the CPE database due to earlier CVEs. To prepare for future CVEs, add
the CPE information. Note that CPE_VERSION has to be defined since these
ports use their own version schemes rather than GCC version numbers.
PR: 198252
PR: 198257
Submitted by: shun (dropcut.net)

Split devel/gettext in devel/gettext-runtime and devel/gettext-tools. The
first contains runtime libraries such as libintl and the latter contains
developer tools such as msgfmt. Ports that use gettext will usually need
a LIB_DEPENDS on gettext-runtime and a BUILD_DEPENDS on gettext-tools.
USES=gettext-runtime can be used to set a LIB/BUILD/RUN_DEPENDS on
devel/gettext-runtime and USES=gettext-tools can be used to set a
BUILD/RUN_DEPENDS on devel/gettext-tools. USES=gettext is now the same
as "USES=gettext-runtime gettext-tools" meaning a LIB_DEPENDS on
devel/gettext-runtime and a BUILD_DEPENDS on devel/gettext-tools.
Update gettext to 0.19.3.
Remove :oldver from converters/libiconv and devel/gettext-runtime. Leave
symlinks with the old library versions to avoid the need to bump
PORTREVISION on a large number of dependent ports. When most of the
dependent ports have had normal version updates, PORTREVISION can be
bumped on the remaining ones (low number) and the links can be removed.
Fix some ports that installed files in lib/locale instead of share/locale.
PR: 194038
Reviewed by: bapt
Exp-run: antoine
Approved by: portmgr (antoine)

lang/gcc-aux: Fix symbolic trace on FreeBSD
Recent gcc creates debug information in dwarf4 format, something that
the base version of addr2line on FreeBSD cannot understand. When the
compiler requires binutils from ports to build, then ensure the
symbolic tracing code also uses addr2line from the same binutils (which
is already available due to RUN_DEPENDS requirements). Since DragonFly
3.6 and lower are no longer officially supported, this change only
affects FreeBSD, but it affects all supported releases. The conditional
code for DragonFly 3.6 has been removed while here.
Reported by: Natacha Porte
PR: 195465

lang/gnat_util: Move PORTREVISION to central location
Many of the ports based on gcc-aux sources have a central location
defining their PORTREVISION to make it easy to reset all them all when
the base version is updated. lang/gnat_util should have had, but did not
and as a result the PORTREVISION didn't get reset at all. Centralize
it for the future.

lang/gcc-aux: Bring in latest diffs-*
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.

lang/gcc-aux: Require latest binutils for DF 3.6 and earlier
Based on observations from pkgsrc and recent failures on Dragonfly 3.6,
it appears that GCC 4.9 requires a linker from binutils 2.23 or later.
DF 3.6 uses binutils 2.22 while the master branch uses 2.24 by default.
This adds the binutils requirement for DF 3.6 and earlier.

Convert all :U to :tu and :L to :tl
Since FreeBSD 8.4 and FreeBSD 9.1 make(1) do support :tu and :tl as a
replacement for :U and :L (which has been marked as deprecated)
bmake which is the default on FreeBSD 10+ only support by default
:tu/:tl a hack has been added at the time to support :U and :L to ease
migration. This hack is now not necessary anymore
Note that this makes the ports tree incompatible with make(1) from
FreeBSD 8.3 or earlier
With hat: portmgr

lang/gcc-aux: Fix a testsuite application typo, add test to list
Both of these issues affect dragonfly only. The *-*-dragonfly* target
for dejagnu needs to be added to a few hundred tests but a typo
prevented that from happening. No revbump as testing does not affect
the final package, nor is it a default option.

lang/gnatdroid-armv7 (&gcc-aux): Fix socket support and gnat.dg testsuite
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).

lang/gcc-aux: significantly reduce c++ testsuite diff file size
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.

lang/gcc-aux: Add binutils requirement for FreeBSD
This patch was previously developed but lost somewhere along the way.
The linker and assembly must be explicitly defined otherwise it is
defined as "ld" and "as" and as such is affected by the value of PATH.
We don't want this, and it actually breaks the gnatdroid cross compilers.
For FreeBSD, use the binutils port like the gcc ports do. DragonFly
has binutils 2.24 in base so let's keep using the base binutils on that
platform.
Also the Makefile.version file now defines the PORTREVISION for all
the ports that use it to make future updating easier.
Binutils patch omission partly detected by jenkins failure (thx swills)

lang/gcc-aux: Upgrade from 30 March snapshot to 6 April
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.

lang/gcc-aux: Fix parallel jobs build (GCC bug)
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

lang/gcc-aux: Upgrade from gcc-4.7.3 to gcc49-20140302 snapshot
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.

lang/gcc-aux: Fix skip-bootstrap functionality
I don't know when the skip-bootstrap logic stopped working, but I'm
reasonably sure it did once. Apparently PREFIX isn't defined at the
time of the "if exists" evaluation. Using LOCALBASE instead will allow
the compiler to build using the compiler on the system rather than
the older bootstrap compiler. The bug was discovered while trying to
move gcc-aux to a gcc49 base.

Define GPLv3RLE license (GPLv3 Runtime Library Exception)
The GCC ports either do not have any license defined, or they are defined
as GPLv3 which is not completely correct. The runtime libraries in the
FSF-issued GCC releases have a standard exception to the GPLv3 license.
In order to properly reflect this, the GCC ports can define a "multi"
license, GPLv3 and GPLv3RLE, which are both in effect.
Concerns PR: ports/185970
Approved by: portmgr (bapt)

lang/gcc-aux: Update diff-ada, diff-core for Android
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.

Update to libmpc version 1.0.1 which brings the following fixes:
- Switched to automake 1.11.6, see CVE-2012-3386.
- #14669: Fixed extraction of CC from gmp.h.
- Fixed case of intermediate zero real or imaginary part in mpc_fma,
found by hydra with GMP_CHECK_RANDOMIZE=1346362345.
This is on top of the following changes from version 1.0
- Licence change towards LGPLv3+ for the code and GFDLv1.3+ (with no
invariant sections) for the documentation.
- 100% of all lines are covered by tests
- Renamed functions
. mpc_mul_2exp to mpc_mul_2ui
. mpc_div_2exp to mpc_div_2ui

Replace John Marino email address with FreeBSD version
While I'm here, also trim the headers on a couple of ports and remove
a reference to the Dragonlace mirror which is down indefinitely.
Approved by: bapt (mentor)

gcc-aux is the successor to the gcc-4.6-based lang/gnat-aux. Originally it
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.