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-devel-16.2.1.s20261003:
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-devel: fix build after base d08296c7ab0d
After base d08296c7ab0d7bb259bf7b8cdf9ffb819c1929ab ("libc: Implement
qualifier-preserving standard library functions"), lang/gcc16-devel
fails to build with an error like:
In file included from
/wrkdirs/usr/ports/lang/gcc16-devel/work/.build/gcc/include-fixed/stdio.h:52,
from cp-demangle.c:109:
/wrkdirs/usr/ports/lang/gcc16-devel/work/gcc-16-20260725/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/gcc16-devel: 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/gcc16-devel: Update to 16.0.1.s20260201
Also introduces a fix for upstream bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123366, authored by
Mark Millard <marklmi@yahoo.com>.
Co-authored-by: Mark Millard <marklmi@yahoo.com>
lang/gcc16-devel: Allow build without bootstrap
Enabling a boostrap option was experimentally enforced on some GCC
devel ports, as building GCC on FreeBSD with FreeBSD's default compiler
(clang) is not fully supported. Stop enforcing it: many users of
production ports actually disable both bootstrap options, so it makes
sense to attempt to keep allowing no-bootstrap builds.
However, since building jit without bootstrap does not work, we add jit
to the enabled languages only if a bootstrap option has been selected [1].
See commit 5ee63cc45413954077b2b0c0546b8342585b41ba and e-mail
https://lists.freebsd.org/archives/dev-commits-ports-main/2025-August/160223.html
for more details.
Reported by: vishwin [1]
lang/gcc16-devel: Update to 16.0.0.s20250810
Also removes patch files/patch-libgcc_enable-execute-stack-mprotect.c,
obsolete after upstream commit a107b01da42b2f2303ffe53df5ea4a796f40597d.
lang/gcc16-devel: Unbreak on aarch64
FreeBSD defines ElfW(x) to translate Linux's convention to FreeBSD's convention.
GCC defines ElfW to convert its convention to FreeBSD's convention. This patch
removes the conversion defined by GCC so that the FreeBSD conversion only is
applied.
Co-authored-by: Mark Millard <marklmi26-fbsd@yahoo.com>
PR: 282797
Reported by: John F. Carr <jfc@mit.edu>
Email Thread:
https://lists.freebsd.org/archives/freebsd-toolchain/2025-May/002282.html
lang/gcc16-devel: Fix PORTVERSION
I had committed the new port with the wrong PORTVERSION value. Fix it.
Adding PORTEPOCH should not be needed because the wrong PORTVERSION
value causes package build to fail, so no package with that PORTVERSION
can exist.
lang/gcc16-devel: 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 snapshot from trunk with the GCC 16 designation. It
largely is a copy of lang/gcc15-devel.
Note: files/patch-libgcc_unwind.inc will get obsolete once all supported
FreeBSD releases include commit
22e564c74eb20e14bd93fd9fdde20e38a29cfcf1. [1]
PR: 285711 [1]