GCC, the GNU Compiler Collection, supports a number of languages.
This port installs the C, C++, and Fortran front ends as gcc16, g++16,
and gfortran16, respectively.
===> The following configuration options are available for gcc16-16.1.0_3:
GRAPHITE=off: Support for Graphite loop optimizations
MULTILIB=on: Build support for 32-bit and 64-bit targets
====> Options available for the radio BOOTSTRAP: you can only select none or one of them
LTO_BOOTSTRAP=off: Build using a full LTO bootstrap
STANDARD_BOOTSTRAP=on: Build using a full bootstrap without LTO
===> Use 'make config' to modify these settings
lang/gcc16: fix build after base d08296c7ab0d
After base d08296c7ab0d7bb259bf7b8cdf9ffb819c1929ab ("libc: Implement
qualifier-preserving standard library functions"), lang/gcc16
fails to build with an error like:
In file included from
/wrkdirs/usr/ports/lang/gcc16/work/.build/gcc/include-fixed/stdio.h:52,
from cp-demangle.c:109:
/wrkdirs/usr/ports/lang/gcc16/work/gcc-16.1.0/libstdc++-v3/../include/libiberty.h:225:14:
error: expected identifier or '(' before '_Generic'
225 | extern void *memrchr(const void *, int, size_t);
| ^~~~~~~
This is because memrchr is now a macro, similar to the other functions
in <string.h>, and libiberty.h attempts to incorrectly redeclare it.
(Only the first 15 lines of the commit message are shown above )
lang/gcc1?: further improvements for powerpc64*
1. Backport of e8385ea3b57862ce6c6ace5e6973b96cf238f4b6. Fixes libgcc
on powerpc64*, found with octave crashing.
2. Merge https://gcc.gnu.org/pipermail/gcc-patches/2026-July/723975.html,
not yet upstreamed, but allows to build all the remaining failing ports
due to ld128 switch for powerpc64le.
Differential Revision: https://reviews.freebsd.org/D58116
lang/gcc16: Fix build on arm64
GCC upstream has removed conditional definitions for some constants,
defining them directly with the same values used on Linux. However,
FreeBSD values for the same constants are different. Then revert
upstream commit.
Co-authored-by: Mark Millard <marklmi26-fbsd@yahoo.com>
PR: 294062
Reported by: Luke Yasuda <jing@jing.rocks>
lang/gcc1[2-6]: actually fix build on powerpc64le/CURRENT
Without this patch, gcc attempts to enable support for IBM long double,
when IEEE long double is enabled, which is wrong. Allow to only
specify IEEE long double.
The whole patchset for IEEE long double on FreeBSD/powerpc64le
is being upstreamed at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126012.
lang/gcc1[2-6]: add necessary contents to patch-gcc_configure
1. For gcc14, restore the lost content.
2. For others, add powerpc64le-related content.
Pointy hat: me
lang/gcc1?: fix runtime on powerpc64le/CURRENT
Since powerpc64le recently switched to 128-bit long double, use them to
generate proper binaries. Patches are necessary to allow use of
--with-long-double-format=ieee on FreeBSD (to be upstreamed).
lang/gcc16: Add port
GCC, the GNU Compiler Collection, supports a number of languages.
This port installs the C, C++, and Fortran front ends as gcc16,
g++16, and gfortran16, respectively.
This is the first release from the GCC 16 series.
It largely is a copy of lang/gcc16-devel, with release-specific
modifications from lang/gcc15.
Common issues that could happen when porting code to GCC 16:
https://gcc.gnu.org/gcc-16/porting_to.html
Changes: https://gcc.gnu.org/gcc-16/changes.html