./lang/gcc12, The GNU Compiler Collection (GCC) - 12.0 Release Series

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 12.2.0, Package name: gcc12-12.2.0, Maintainer: pkgsrc-users

The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
Fortran, and Go.



Package options: gcc-c++, gcc-fortran, gcc-graphite, gcc-inplace-math, gcc-objc, gcc-objc++, nls

Master sites: (Expand)

Filesize: 82661.418 KB

Version history: (Expand)


CVS history: (Expand)


   2023-06-03 15:22:44 by Taylor R Campbell | Files touched by this commit (7)
Log message:
lang/gcc*: USE_TOOLS+=sed, not sed:run.

As far as I can tell, gcc needs this at build-time, not at run-time.

https://mail-index.netbsd.org/tech-pkg/2023/06/02/msg027624.html
   2023-06-03 15:22:05 by Taylor R Campbell | Files touched by this commit (7)
Log message:
lang/gcc*: Set CC_FOR_BUILD and CXX_FOR_BUILD if cross-compiling.

Verified gcc6 and gcc7 cross-compile on NetBSD, at least if the
gcc-fortran option is disabled.  gcc8 and gcc9 have trouble because
of python (why do these have a full dependency on python?); gcc10 and
gcc12 are missing gcc/config/mips/netbsd64.h; gcc12 and gcc13 have a
cross-compile bug with missing __LIBGCC_*__ macros -- but in any
case, setting CC_FOR_BUILD and CXX_FOR_BUILD is obviously necessary
for cross-compilation.  Conditional on USE_CROSS_COMPILE, so no harm
to native builds.
   2023-04-07 08:48:27 by Thomas Klausner | Files touched by this commit (3)
Log message:
gcc12: split off Makefile.common

Sync more with gcc10 package.
   2022-12-06 15:23:02 by Jonathan Perkin | Files touched by this commit (2)
Log message:
gcc12: Support Darwin/aarch64.
   2022-08-22 14:16:15 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
gcc12: update to 12.2.0.

Bug fixes, full list here:
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.2
   2022-06-28 13:38:00 by Thomas Klausner | Files touched by this commit (3952)
Log message:
*: recursive bump for perl 5.36
   2022-06-16 17:43:55 by Adam Ciarcinski | Files touched by this commit (30)
Log message:
gcc12: added version 12.1.0

GCC 12

Caveats

An ABI incompatibility between C and C++ when passing or returning by value \ 
certain aggregates containing zero width bit-fields has been discovered on \ 
various targets. As mentioned in PR102024, since the PR42217 fix in GCC 4.5 the \ 
C++ front-end has been removing zero width bit-fields from the internal \ 
representation of the aggregates after the layout of those aggregates, but the C \ 
front-end kept them, so passing e.g. struct S { float a; int : 0; float b; } or \ 
struct T { float c; int : 0; } by value could differ between C and C++. Starting \ 
with GCC 12 the C++ front-end no longer removes those bit-fields from the \ 
internal representation and per clarified psABI some targets have been changed, \ 
so that they either ignore those bit-fields in the argument passing by value \ 
decisions in both C and C++, or they always take them into account. x86-64, ARM \ 
and AArch64 will always ignore them (so there is a C ABI incompatibility between \ 
GCC 11 and earlier with GCC 12 or later), PowerPC64 E
LFv2 and S/390 always take them into account (so there is a C++ ABI \ 
incompatibility, GCC 4.4 and earlier compatible with GCC 12 or later, \ 
incompatible with GCC 4.5 through GCC 11). RISC-V has changed the handling of \ 
these already starting with GCC 10. As the ABI requires, MIPS takes them into \ 
account handling function return values so there is a C++ ABI incompatibility \ 
with GCC 4.5 through 11. For function arguments on MIPS, refer to the MIPS \ 
specific entry. GCC 12 on the above targets will report such incompatibilities \ 
as warnings or other diagnostics unless -Wno-psabi is used.
C: Computed gotos require a pointer type now.
C++: Two non-standard std::pair constructors have been deprecated. These allowed \ 
the use of an rvalue and a literal 0 to construct a pair containing a move-only \ 
type and a pointer. The nullptr keyword should be used to initialize the pointer \ 
member instead of a literal 0, as this is portable to other C++ implementations.
The configuration option --enable-libstdcxx-allocator no longer supports the \ 
bitmap, mt, and pool arguments. Those configurations had been broken for some \ 
time.
Fortran: OpenMP code using the omp_lib.h include file can no longer be compiled \ 
with -std=f95 but now requires at least -std=f2003. Alternatively, use the \ 
omp_lib module, which still supports -std=f95 and is recommended to be used \ 
instead in general.
OpenMP offloading to Intel MIC has been deprecated and will be removed in a \ 
future release.
The cr16 target with the cr16-*-* configuration has been obsoleted and will be \ 
removed in a future release.
The hppa[12]*-*-hpux10* and hppa[12]*-*-hpux11* configurations targeting 32-bit \ 
PA-RISC with HP-UX have been obsoleted and will be removed in a future release.
The m32c*-*-rtems* configuration has been obsoleted and will be removed in a \ 
future release.
The support for the m32r-*-linux*, m32rle-*-linux*, m68k*-*-openbsd* and \ 
vax-*-openbsd* configurations has been removed.
STABS: Support for emitting the STABS debugging format is deprecated and will be \ 
removed in the next release. All ports now default to emit DWARF (version 2 or \ 
later) debugging info or are obsoleted.
The optimization level -Ofast now implies -fno-semantic-interposition.

General Improvements

Vectorization is enabled at -O2 which is now equivalent to the original -O2 \ 
-ftree-vectorize -fvect-cost-model=very-cheap. Note that default vectorizer cost \ 
model has been changed which used to behave as -fvect-cost-model=cheap were \ 
specified.
GCC now supports the ShadowCallStack sanitizer, which can be enabled using the \ 
command-line option -fsanitize=shadow-call-stack. This sanitizer currently only \ 
works on AArch64 targets and it requires an environment in which all code has \ 
been compiled with -ffixed-r18. Its primary initial user is the Linux kernel.