Path to this page:
./
lang/gcc12,
The GNU Compiler Collection (GCC) - 12.0 Release Series
Branch: CURRENT,
Version: 12.2.0,
Package name: gcc12-12.2.0,
Maintainer: pkgsrc-usersThe 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)
- (2022-08-22) Updated to version: gcc12-12.2.0
- (2022-06-28) Updated to version: gcc12-12.1.0nb1
- (2022-06-16) Package added to pkgsrc.se, version gcc12-12.1.0 (created)
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) |  |
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.
|