pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/42217 CVS commit: pkgsrc/lang



The following reply was made to PR pkg/42217; it has been noted by GNATS.

From: "Adam Ciarcinski" <adam%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/42217 CVS commit: pkgsrc/lang
Date: Thu, 16 Jun 2022 15:43:55 +0000

 Module Name:	pkgsrc
 Committed By:	adam
 Date:		Thu Jun 16 15:43:55 UTC 2022
 
 Modified Files:
 	pkgsrc/lang: Makefile
 Added Files:
 	pkgsrc/lang/gcc12: DESCR Makefile buildlink3.mk distinfo options.mk
 	    version.mk
 	pkgsrc/lang/gcc12-libs: DESCR Makefile buildlink3.mk
 	pkgsrc/lang/gcc12/patches: patch-fixincludes_inclhack.def
 	    patch-gcc_Makefile.in patch-gcc_config.gcc patch-gcc_config.host
 	    patch-gcc_config_aarch64_aarch64-netbsd.h
 	    patch-gcc_config_arm_arm.h patch-gcc_config_arm_bpabi.h
 	    patch-gcc_config_arm_elf.h patch-gcc_config_arm_netbsd-eabi.h
 	    patch-gcc_config_arm_netbsd-elf.h patch-gcc_config_nvptx_gen-opt.sh
 	    patch-gcc_configure patch-isl_configure patch-libffi_configure
 	    patch-libffi_testsuite_libffi.call_float2.c
 	    patch-libgcc_config.host patch-libgcc_crtstuff.c
 	    patch-libgfortran_io_io.h
 	    patch-libquadmath_printf_quadmath-printf.c
 	    patch-libquadmath_strtod_strtod__l.c
 	    patch-libstdc++-v3_libsupc++_new__opa.cc
 
 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.
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.649 -r1.650 pkgsrc/lang/Makefile
 cvs rdiff -u -r0 -r1.1 pkgsrc/lang/gcc12/DESCR pkgsrc/lang/gcc12/Makefile \
     pkgsrc/lang/gcc12/buildlink3.mk pkgsrc/lang/gcc12/distinfo \
     pkgsrc/lang/gcc12/options.mk pkgsrc/lang/gcc12/version.mk
 cvs rdiff -u -r0 -r1.1 pkgsrc/lang/gcc12-libs/DESCR \
     pkgsrc/lang/gcc12-libs/Makefile pkgsrc/lang/gcc12-libs/buildlink3.mk
 cvs rdiff -u -r0 -r1.1 \
     pkgsrc/lang/gcc12/patches/patch-fixincludes_inclhack.def \
     pkgsrc/lang/gcc12/patches/patch-gcc_Makefile.in \
     pkgsrc/lang/gcc12/patches/patch-gcc_config.gcc \
     pkgsrc/lang/gcc12/patches/patch-gcc_config.host \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_aarch64_aarch64-netbsd.h \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_arm_arm.h \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_arm_bpabi.h \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_arm_elf.h \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_arm_netbsd-eabi.h \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_arm_netbsd-elf.h \
     pkgsrc/lang/gcc12/patches/patch-gcc_config_nvptx_gen-opt.sh \
     pkgsrc/lang/gcc12/patches/patch-gcc_configure \
     pkgsrc/lang/gcc12/patches/patch-isl_configure \
     pkgsrc/lang/gcc12/patches/patch-libffi_configure \
     pkgsrc/lang/gcc12/patches/patch-libffi_testsuite_libffi.call_float2.c \
     pkgsrc/lang/gcc12/patches/patch-libgcc_config.host \
     pkgsrc/lang/gcc12/patches/patch-libgcc_crtstuff.c \
     pkgsrc/lang/gcc12/patches/patch-libgfortran_io_io.h \
     pkgsrc/lang/gcc12/patches/patch-libquadmath_printf_quadmath-printf.c \
     pkgsrc/lang/gcc12/patches/patch-libquadmath_strtod_strtod__l.c \
     pkgsrc/lang/gcc12/patches/patch-libstdc++-v3_libsupc++_new__opa.cc
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index