If the pkgsrc compiler is GCC, don't install libgcc.
Having an older libgcc is problematic: it may be missing symbols from
newer libgcc. This is what happened in PR pkg/54506.
Use this on gcc-aux and gcc5-aux: the libgcc_s.so they install is going
to be older in all the operating systems these packages support.
(Other GCC packages will require a more elaborate rule)
Leaving SmartOS unchanged, by request from jperkin.
This is based on an already upstreamed patched that exists in GCC>9.0.
GCC stddef.h relied on the include guards of headers, and those were
changed in netbsd 9.0, so these packages no longer build.
Since we are using a bootstrap GCC, we also need to patch the headers
in the bootstrap fixincludes, patching the package is not sufficient.
Ada part of PR toolchain/54362.
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
The runpath issue only affected the x86-64 arch on NetBSD. The
spec change was only effective on i386, so relocating the change
enables the RUNPATH tag in the gcc libraries on the amd64 platform.
NetBSD doesn't seem to be honoring -rpath, at least not with binutils
from base. Using binutils from pkgsrc doesn't work either because it
uses the gold linker (for an unknown reason) which fails with an
"unsupported operation". As a result, gcc5-aux was limited to base
binutils for NetBSD 7 and later. The issue was never resolved.
This compiler is mainly used for Ada which normally does not require
gcc5-aux to be installed. Set it as a build dependency by default.
While here, remove obsolete NLS option check.
The compiler failed to build on DragonFly and I think it was because
--enable-shared wasn't explicitly set. Previously this was the default
but maybe it's not anymore. While here I added a new (non-default)
option to build via a long 3 stages instead of a quick single stage.
The signal trampoline detection for NetBSD 7 and later is still broken.
Support for NetBSD 6.99 has been removed along with supporte for
32-bit DragonFly. The modifications to the testsuite were misguided and
have also been removed.
There are three major issues with gcc5-aux on NetBSD 7.0 Beta.
1) The gold linker fails in the middle of the build with an
"operation not permitted" error. I believe this is either an issue
directory with NetBSD 7.0 beta (not seen on 6.99) or an issue with
the binutils 2.25 from pkgsrc.
It turns out that NetBSD 7.0 uses binutils 2.23 which is new enough.
By removing the requirement for using pkgsrc binutils, it will build
until it hits issue #2 which is ...
2) Fortran no longer builds on NetBSD 7.0. Something about an "old"
version of locale symbol. Something changed with locales and gcc5's
Fortran does not like it.
The solution is to turn off fortran and objc options by default. This
means only C, C++, and Ada languages are supported by default. Obviously
this is not a "solution" but it will have to do for now.
3) The signal trampoline has changed. The pattern for the signal
trampoline has been altered and now the NetBSD unwind support can't
recognize the end of the stack. This causes all the stack overflow
and stack check tests to fail.
I didn't do anything here. It requires a lot of work with gdb to figure
out what the new pattern looks like and I don't have any sort of time
for that. Stack handling still works for NetBSD 5 and 6 though.
This compiler package is not like the lang/gcc4* packages, but rather
the lang/gcc-aux package which exists to bring GNAT, the Ada language
compiler. The lang/gcc-aux package is based on gcc-4.9, and this
package is based on gcc-5. This is the first gcc5 package in pkgsrc,
and it does support C, C++, ObjC, and Fortran in addition to Ada thus
it is very useful, but it does have a different purpose than other
gcc ports.
This port has had minimal testing. I verified GNAT passes 100% of the
testsuite on NetBSD 6.1/amd64, but it has not been tested on any
NetBSD 5, 7.0 or 7.99 platform yet. I don't have any hardware, so it
will require using a VM or having others report failure/success. Due
to similarity with lang/gcc-aux, chances are good that it will build
and function properly on other platforms.
See http://gcc.gnu.org/gcc-5/changes.html for more information about
improvements over the gcc-4.9 series.