import gcc-toolset-12-gcc-12.2.1-7.4.el9
This commit is contained in:
parent
78a46c0860
commit
2c8c7edede
@ -1,8 +1,8 @@
|
||||
7f4348418dc3efefd357b32a2b5c8010211ab284 SOURCES/doxygen-1.8.0.src.tar.gz
|
||||
b745356ea1afec83ef254a5b1ce8bdf9e4eb69c8 SOURCES/gcc-12.1.1-20220628.tar.xz
|
||||
ecaedb16188931aa35d627f2edb28dbab5f8f3c1 SOURCES/gcc-12.2.1-20221121.tar.xz
|
||||
db38c7b67f8eea9f2e5b8a48d219165b2fdab11f SOURCES/gmp-6.1.0.tar.bz2
|
||||
bbffc5a2b05e4f0c97e882f96c448504491dc4ed SOURCES/isl-0.18.tar.bz2
|
||||
ae5fbb33bcb442121fbbf482a93f6b3c84d489ee SOURCES/isl-0.24.tar.bz2
|
||||
b8be66396c726fdc36ebb0f692ed8a8cca3bcc66 SOURCES/mpc-1.0.3.tar.gz
|
||||
e3b0af77f18505184410d621fe0aae179e229dba SOURCES/mpfr-3.1.4.tar.bz2
|
||||
6ec33952e824e837fef0e829c93d39d6a507082f SOURCES/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
|
||||
0e0c6f8d68ab0878f02287ac082c1077c831cd81 SOURCES/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
|
||||
1923f9401ce16ce5b818c104e3b09b0bdbb15606 SOURCES/newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz
|
||||
ea865cf7e6834b88a8f8aee22b7a7065813ccc99 SOURCES/nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz
|
||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,8 +1,8 @@
|
||||
SOURCES/doxygen-1.8.0.src.tar.gz
|
||||
SOURCES/gcc-12.1.1-20220628.tar.xz
|
||||
SOURCES/gcc-12.2.1-20221121.tar.xz
|
||||
SOURCES/gmp-6.1.0.tar.bz2
|
||||
SOURCES/isl-0.18.tar.bz2
|
||||
SOURCES/isl-0.24.tar.bz2
|
||||
SOURCES/mpc-1.0.3.tar.gz
|
||||
SOURCES/mpfr-3.1.4.tar.bz2
|
||||
SOURCES/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
|
||||
SOURCES/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
|
||||
SOURCES/newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz
|
||||
SOURCES/nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz
|
||||
|
@ -11,3 +11,16 @@ index 47f97dcb636..66f07aaa749 100644
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
diff --git a/gcc/testsuite/g++.dg/torture/pr106922.C b/gcc/testsuite/g++.dg/torture/pr106922.C
|
||||
index 046fc6cce76..4214a31f276 100644
|
||||
--- a/gcc/testsuite/g++.dg/torture/pr106922.C
|
||||
+++ b/gcc/testsuite/g++.dg/torture/pr106922.C
|
||||
@@ -4,6 +4,8 @@
|
||||
// -O1 doesn't iterate VN and thus has bogus uninit diagnostics
|
||||
// { dg-skip-if "" { *-*-* } { "-O1" } { "" } }
|
||||
|
||||
+#define _GLIBCXX_USE_CXX11_ABI 1
|
||||
+
|
||||
#include <vector>
|
||||
|
||||
#include <optional>
|
||||
|
29
SOURCES/gcc12-FMA-chains.patch
Normal file
29
SOURCES/gcc12-FMA-chains.patch
Normal file
@ -0,0 +1,29 @@
|
||||
commit 8ac76d504ee1216ebffab08463a544d691d85112
|
||||
Author: Hongyu Wang <hongyu.wang@intel.com>
|
||||
Date: Tue Dec 6 09:53:35 2022 +0800
|
||||
|
||||
i386: Avoid fma_chain for -march=alderlake and sapphirerapids.
|
||||
|
||||
For Alderlake there is similar issue like PR81616, enable
|
||||
avoid_fma256_chain will also benefit on Intel latest platforms
|
||||
Alderlake and Sapphire Rapids.
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
* config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Add
|
||||
m_SAPPHIRERAPIDS, m_ALDERLAKE.
|
||||
|
||||
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
|
||||
index d983e2f6213..1e1b206a71c 100644
|
||||
--- a/gcc/config/i386/x86-tune.def
|
||||
+++ b/gcc/config/i386/x86-tune.def
|
||||
@@ -485,7 +485,8 @@ DEF_TUNE (X86_TUNE_AVOID_128FMA_CHAINS, "avoid_fma_chains", m_ZNVER)
|
||||
|
||||
/* X86_TUNE_AVOID_256FMA_CHAINS: Avoid creating loops with tight 256bit or
|
||||
smaller FMA chain. */
|
||||
-DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains", m_ZNVER2 | m_ZNVER3)
|
||||
+DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains", m_ZNVER2 | m_ZNVER3
|
||||
+ | m_ALDERLAKE | m_SAPPHIRERAPIDS)
|
||||
|
||||
/* X86_TUNE_V2DF_REDUCTION_PREFER_PHADDPD: Prefer haddpd
|
||||
for v2df vector reduction. */
|
@ -1,78 +0,0 @@
|
||||
commit d644dfe36d9733c767af62d37250253ced6efd8c
|
||||
Author: Cui,Lili <lili.cui@intel.com>
|
||||
Date: Mon Nov 7 11:25:41 2022 +0800
|
||||
|
||||
Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
* config/i386/driver-i386.cc (host_detect_local_cpu):
|
||||
Move sapphirerapids out of AVX512_VP2INTERSECT.
|
||||
* config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
|
||||
* doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS
|
||||
|
||||
(cherry picked from commit d644dfe36d9733c767af62d37250253ced6efd8c)
|
||||
|
||||
diff --git a/gcc/config/i386/driver-i386.cc b/gcc/config/i386/driver-i386.cc
|
||||
index 9e0ae0b2baa..fcf23fd921d 100644
|
||||
--- a/gcc/config/i386/driver-i386.cc
|
||||
+++ b/gcc/config/i386/driver-i386.cc
|
||||
@@ -574,15 +574,12 @@ const char *host_detect_local_cpu (int argc, const char **argv)
|
||||
/* This is unknown family 0x6 CPU. */
|
||||
if (has_feature (FEATURE_AVX))
|
||||
{
|
||||
+ /* Assume Tiger Lake */
|
||||
if (has_feature (FEATURE_AVX512VP2INTERSECT))
|
||||
- {
|
||||
- if (has_feature (FEATURE_TSXLDTRK))
|
||||
- /* Assume Sapphire Rapids. */
|
||||
- cpu = "sapphirerapids";
|
||||
- else
|
||||
- /* Assume Tiger Lake */
|
||||
- cpu = "tigerlake";
|
||||
- }
|
||||
+ cpu = "tigerlake";
|
||||
+ /* Assume Sapphire Rapids. */
|
||||
+ else if (has_feature (FEATURE_TSXLDTRK))
|
||||
+ cpu = "sapphirerapids";
|
||||
/* Assume Cooper Lake */
|
||||
else if (has_feature (FEATURE_AVX512BF16))
|
||||
cpu = "cooperlake";
|
||||
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
|
||||
index 363082ba47b..a61c32b8957 100644
|
||||
--- a/gcc/config/i386/i386.h
|
||||
+++ b/gcc/config/i386/i386.h
|
||||
@@ -2328,10 +2328,9 @@ constexpr wide_int_bitmask PTA_ICELAKE_SERVER = PTA_ICELAKE_CLIENT
|
||||
constexpr wide_int_bitmask PTA_TIGERLAKE = PTA_ICELAKE_CLIENT | PTA_MOVDIRI
|
||||
| PTA_MOVDIR64B | PTA_CLWB | PTA_AVX512VP2INTERSECT | PTA_KL | PTA_WIDEKL;
|
||||
constexpr wide_int_bitmask PTA_SAPPHIRERAPIDS = PTA_ICELAKE_SERVER | PTA_MOVDIRI
|
||||
- | PTA_MOVDIR64B | PTA_AVX512VP2INTERSECT | PTA_ENQCMD | PTA_CLDEMOTE
|
||||
- | PTA_PTWRITE | PTA_WAITPKG | PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE
|
||||
- | PTA_AMX_INT8 | PTA_AMX_BF16 | PTA_UINTR | PTA_AVXVNNI | PTA_AVX512FP16
|
||||
- | PTA_AVX512BF16;
|
||||
+ | PTA_MOVDIR64B | PTA_ENQCMD | PTA_CLDEMOTE | PTA_PTWRITE | PTA_WAITPKG
|
||||
+ | PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE | PTA_AMX_INT8 | PTA_AMX_BF16
|
||||
+ | PTA_UINTR | PTA_AVXVNNI | PTA_AVX512FP16 | PTA_AVX512BF16;
|
||||
constexpr wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF
|
||||
| PTA_AVX512ER | PTA_AVX512F | PTA_AVX512CD | PTA_PREFETCHWT1;
|
||||
constexpr wide_int_bitmask PTA_BONNELL = PTA_CORE2 | PTA_MOVBE;
|
||||
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
|
||||
index 3749e06f13e..cee057a70bf 100644
|
||||
--- a/gcc/doc/invoke.texi
|
||||
+++ b/gcc/doc/invoke.texi
|
||||
@@ -31541,11 +31541,11 @@ Intel sapphirerapids CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
|
||||
SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
|
||||
RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
|
||||
AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
|
||||
-AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2
|
||||
+AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2,
|
||||
VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD, CLWB,
|
||||
-MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG,
|
||||
-SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16
|
||||
-and AVX512BF16 instruction set support.
|
||||
+MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK,
|
||||
+UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16 and AVX512BF16
|
||||
+instruction set support.
|
||||
|
||||
@item alderlake
|
||||
Intel Alderlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
|
@ -1,13 +1,3 @@
|
||||
--- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-2.c
|
||||
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-2.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-additional-options "--param openacc-kernels=decompose" } */
|
||||
|
||||
-/* { dg-additional-options "-fchecking" }
|
||||
+/* { dg-additional-options "-fchecking -fno-report-bug" }
|
||||
{ dg-ice TODO { c++ } }
|
||||
{ dg-prune-output "during GIMPLE pass: omp_oacc_kernels_decompose" } */
|
||||
|
||||
--- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
|
||||
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
|
||||
@@ -1,6 +1,6 @@
|
||||
|
@ -26,17 +26,17 @@ diff --git a/gcc/fortran/lang.opt b/gcc/fortran/lang.opt
|
||||
index 4a269ebb22d..d886c2f33ed 100644
|
||||
--- a/gcc/fortran/lang.opt
|
||||
+++ b/gcc/fortran/lang.opt
|
||||
@@ -502,6 +502,10 @@ fdec-math
|
||||
Fortran Var(flag_dec_math)
|
||||
Enable legacy math intrinsics for compatibility.
|
||||
@@ -506,6 +506,10 @@ fdec-override-kind
|
||||
Fortran Var(flag_dec_override_kind)
|
||||
Enable support for per variable kind specification.
|
||||
|
||||
+fdec-non-logical-if
|
||||
+Fortran Var(flag_dec_non_logical_if)
|
||||
+Enable support for non-logical expressions in if statements.
|
||||
+
|
||||
fdec-override-kind
|
||||
Fortran Var(flag_dec_override_kind)
|
||||
Enable support for per variable kind specification.
|
||||
fdec-structure
|
||||
Fortran Var(flag_dec_structure)
|
||||
Enable support for DEC STRUCTURE/RECORD.
|
||||
diff --git a/gcc/fortran/options.cc b/gcc/fortran/options.cc
|
||||
index edbab483b36..a946c86790a 100644
|
||||
--- a/gcc/fortran/options.cc
|
||||
|
@ -26,7 +26,7 @@
|
||||
# Generate header and source files from the machine description,
|
||||
# and compile them.
|
||||
--- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
|
||||
+++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
|
||||
+++ gcc/graphite.h 2022-11-03 19:14:50.369690720 +0100
|
||||
@@ -24,6 +24,591 @@ along with GCC; see the file COPYING3.
|
||||
|
||||
#include "sese.h"
|
||||
@ -41,15 +41,15 @@
|
||||
+ DYNSYM (isl_aff_set_coefficient_si); \
|
||||
+ DYNSYM (isl_aff_set_constant_si); \
|
||||
+ DYNSYM (isl_aff_zero_on_domain); \
|
||||
+ DYNSYM (isl_band_free); \
|
||||
+ DYNSYM (isl_band_get_children); \
|
||||
+ DYNSYM (isl_band_get_partial_schedule); \
|
||||
+ DYNSYM (isl_band_has_children); \
|
||||
+ DYNSYM (isl_band_list_free); \
|
||||
+ DYNSYM (isl_band_list_get_band); \
|
||||
+ DYNSYM (isl_band_list_get_ctx); \
|
||||
+ DYNSYM (isl_band_list_n_band); \
|
||||
+ DYNSYM (isl_band_n_member); \
|
||||
+ /* DYNSYM (isl_band_free); */ \
|
||||
+ /* DYNSYM (isl_band_get_children); */ \
|
||||
+ /* DYNSYM (isl_band_get_partial_schedule); */ \
|
||||
+ /* DYNSYM (isl_band_has_children); */ \
|
||||
+ /* DYNSYM (isl_band_list_free); */ \
|
||||
+ /* DYNSYM (isl_band_list_get_band); */ \
|
||||
+ /* DYNSYM (isl_band_list_get_ctx); */ \
|
||||
+ /* DYNSYM (isl_band_list_n_band); */ \
|
||||
+ /* DYNSYM (isl_band_n_member); */ \
|
||||
+ DYNSYM (isl_basic_map_add_constraint); \
|
||||
+ DYNSYM (isl_basic_map_project_out); \
|
||||
+ DYNSYM (isl_basic_map_universe); \
|
||||
@ -91,7 +91,7 @@
|
||||
+ DYNSYM (isl_map_is_empty); \
|
||||
+ DYNSYM (isl_map_lex_ge); \
|
||||
+ DYNSYM (isl_map_lex_le); \
|
||||
+ DYNSYM (isl_map_n_out); \
|
||||
+ /* DYNSYM (isl_map_n_out); */ \
|
||||
+ DYNSYM (isl_map_range); \
|
||||
+ DYNSYM (isl_map_set_tuple_id); \
|
||||
+ DYNSYM (isl_map_universe); \
|
||||
@ -124,7 +124,7 @@
|
||||
+ DYNSYM (isl_pw_aff_sub); \
|
||||
+ DYNSYM (isl_pw_aff_zero_set); \
|
||||
+ DYNSYM (isl_schedule_free); \
|
||||
+ DYNSYM (isl_schedule_get_band_forest); \
|
||||
+ /* DYNSYM (isl_schedule_get_band_forest); */ \
|
||||
+ DYNSYM (isl_set_add_constraint); \
|
||||
+ DYNSYM (isl_set_add_dims); \
|
||||
+ DYNSYM (isl_set_apply); \
|
||||
@ -641,7 +641,7 @@
|
||||
+
|
||||
+ if (isl_pointers__.inited)
|
||||
+ return isl_pointers__.h != NULL;
|
||||
+ h = dlopen ("libisl.so.15", RTLD_LAZY);
|
||||
+ h = dlopen ("libisl.so.23", RTLD_LAZY);
|
||||
+ isl_pointers__.h = h;
|
||||
+ if (h == NULL)
|
||||
+ return false;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
* toplev.cc (toplev_main_argv): New variable.
|
||||
(toplev_main): Initialize it.
|
||||
* graphite.cc (init_isl_pointers): Load libisl.so.15 from gcc's private
|
||||
* graphite.cc (init_isl_pointers): Load libisl.so.23 from gcc's private
|
||||
directory.
|
||||
|
||||
--- gcc/toplev.cc.jj 2008-12-09 23:59:10.000000000 +0100
|
||||
@ -39,12 +39,12 @@
|
||||
|
||||
if (isl_pointers__.inited)
|
||||
return isl_pointers__.h != NULL;
|
||||
- h = dlopen ("libisl.so.15", RTLD_LAZY);
|
||||
- h = dlopen ("libisl.so.23", RTLD_LAZY);
|
||||
+ len = progname - toplev_main_argv[0];
|
||||
+ buf = XALLOCAVAR (char, len + sizeof "libisl.so.15");
|
||||
+ buf = XALLOCAVAR (char, len + sizeof "libisl.so.23");
|
||||
+ memcpy (buf, toplev_main_argv[0], len);
|
||||
+ strcpy (buf + len, "libisl.so.15");
|
||||
+ len += sizeof "libisl.so.15";
|
||||
+ strcpy (buf + len, "libisl.so.23");
|
||||
+ len += sizeof "libisl.so.23";
|
||||
+ p = strstr (buf, "/libexec/");
|
||||
+ if (p != NULL)
|
||||
+ {
|
||||
@ -61,7 +61,7 @@
|
||||
+ {
|
||||
+ len = progname - toplev_main_argv[0];
|
||||
+ memcpy (buf, toplev_main_argv[0], len);
|
||||
+ strcpy (buf + len, "libisl.so.15");
|
||||
+ strcpy (buf + len, "libisl.so.23");
|
||||
+ }
|
||||
+ }
|
||||
+ if (h == NULL)
|
||||
|
@ -11348,7 +11348,7 @@
|
||||
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE9_M_mutateEmmPKcm");
|
||||
+#endif
|
||||
+#if defined(__s390x__) || defined(__powerpc64__)
|
||||
+asm (".hidden _ZSt10from_charsPKcS0_RgSt12chars_format");
|
||||
+//asm (".hidden _ZSt10from_charsPKcS0_RgSt12chars_format");
|
||||
+#endif
|
||||
+#if !defined(__i386__)
|
||||
+asm (".hidden _ZSt10from_charsIiENSt9enable_ifIXsrSt5__or_IJS1_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt17from_chars_resultE4typeEPKcSR_RS4_i");
|
||||
@ -11446,7 +11446,7 @@
|
||||
+#endif
|
||||
--- libstdc++-v3/src/nonshared17/cow-fs_path.cc.jj 2022-05-12 10:06:51.403502355 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/cow-fs_path.cc 2022-05-12 17:51:19.637951045 +0200
|
||||
@@ -0,0 +1,117 @@
|
||||
@@ -0,0 +1,129 @@
|
||||
+// Copyright (C) 2019-2022 Free Software Foundation, Inc.
|
||||
+//
|
||||
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -11520,12 +11520,12 @@
|
||||
+asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev");
|
||||
+asm (".hidden _ZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_");
|
||||
+asm (".hidden _ZNSt10filesystem8__detail24__throw_conversion_errorEv");
|
||||
+asm (".hidden _ZTIZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt");
|
||||
+asm (".hidden _ZTSZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt");
|
||||
+asm (".hidden _ZTVZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt");
|
||||
+asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD0Ev");
|
||||
+asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD1Ev");
|
||||
+asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD2Ev");
|
||||
+//asm (".hidden _ZTIZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt");
|
||||
+//asm (".hidden _ZTSZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt");
|
||||
+//asm (".hidden _ZTVZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_E5_UCvt");
|
||||
+//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD0Ev");
|
||||
+//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD1Ev");
|
||||
+//asm (".hidden _ZZNSt10filesystem4path10_S_convertIwEEDaPKT_S4_EN5_UCvtD2Ev");
|
||||
+asm (".hidden _ZNKSt10filesystem4path5_List5_Impl4copyEv");
|
||||
+asm (".hidden _ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv");
|
||||
+asm (".hidden _ZNSs12_M_leak_hardEv");
|
||||
@ -11564,6 +11564,18 @@
|
||||
+asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RjT3_");
|
||||
+asm (".hidden _ZSt16__do_str_codecvtISswSt7codecvtIwc11__mbstate_tES1_MS2_KFNSt12codecvt_base6resultERS1_PKwS7_RS7_PcS9_RS9_EEbPKT0_SF_RT_RKT1_RT2_RjT3_");
|
||||
+#endif
|
||||
+asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED0Ev");
|
||||
+asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED1Ev");
|
||||
+asm (".hidden _ZNSt10filesystem4path8_CodecvtIwED2Ev");
|
||||
+asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED0Ev");
|
||||
+asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED1Ev");
|
||||
+asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED2Ev");
|
||||
+asm (".hidden _ZTINSt10filesystem4path8_CodecvtIwEE");
|
||||
+asm (".hidden _ZTISt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE");
|
||||
+asm (".hidden _ZTSNSt10filesystem4path8_CodecvtIwEE");
|
||||
+asm (".hidden _ZTSSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE");
|
||||
+asm (".hidden _ZTVNSt10filesystem4path8_CodecvtIwEE");
|
||||
+asm (".hidden _ZTVSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE");
|
||||
--- libstdc++-v3/src/nonshared17/memory_resource.cc.jj 2022-05-12 10:06:51.403502355 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/memory_resource.cc 2022-05-12 10:06:51.403502355 +0200
|
||||
@@ -0,0 +1,68 @@
|
||||
@ -11637,7 +11649,7 @@
|
||||
+asm (".hidden _ZNSt22__shared_mutex_pthread6unlockEv");
|
||||
--- libstdc++-v3/src/nonshared17/fs_dir.cc.jj 2022-05-12 10:06:51.404502342 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/fs_dir.cc 2022-05-12 17:52:31.745989435 +0200
|
||||
@@ -0,0 +1,100 @@
|
||||
@@ -0,0 +1,103 @@
|
||||
+// Copyright (C) 2019-2022 Free Software Foundation, Inc.
|
||||
+//
|
||||
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -11737,7 +11749,10 @@
|
||||
+asm (".hidden _ZNKSt10filesystem7__cxx114_Dir11open_subdirEbbRSt10error_code");
|
||||
+asm (".hidden _ZNKSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stack12current_pathEv");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx1128recursive_directory_iterator7__eraseEPSt10error_code");
|
||||
+asm (".hidden _ZNKSt10filesystem7__cxx114_Dir16dir_and_pathnameEv");
|
||||
+//asm (".hidden _ZNKSt10filesystem7__cxx114_Dir16dir_and_pathnameEv");
|
||||
+asm (".hidden _ZNKSt10filesystem7__cxx114_Dir7currentEv");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114_DirC1ERKNS0_4pathEbbbRSt10error_code");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114_DirC2ERKNS0_4pathEbbbRSt10error_code");
|
||||
--- libstdc++-v3/src/nonshared17/fs_ops80.cc.jj 2022-05-12 10:06:51.404502342 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/fs_ops80.cc 2022-05-12 17:52:52.357714560 +0200
|
||||
@@ -0,0 +1,41 @@
|
||||
@ -11784,7 +11799,7 @@
|
||||
+#endif
|
||||
--- libstdc++-v3/src/nonshared17/fs_path80.cc.jj 2022-05-12 10:06:51.404502342 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/fs_path80.cc 2022-05-12 17:53:21.460326486 +0200
|
||||
@@ -0,0 +1,66 @@
|
||||
@@ -0,0 +1,77 @@
|
||||
+// Copyright (C) 2019-2022 Free Software Foundation, Inc.
|
||||
+//
|
||||
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -11810,12 +11825,12 @@
|
||||
+#define _GLIBCXX_NONSHARED_CXX17_80
|
||||
+#include "fs_path.cc"
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx118__detail24__throw_conversion_errorEv");
|
||||
+asm (".hidden _ZTIZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+asm (".hidden _ZTSZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+asm (".hidden _ZTVZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD0Ev");
|
||||
+asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD1Ev");
|
||||
+asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD2Ev");
|
||||
+//asm (".hidden _ZTIZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+//asm (".hidden _ZTSZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+//asm (".hidden _ZTVZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD0Ev");
|
||||
+//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD1Ev");
|
||||
+//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD2Ev");
|
||||
+asm (".hidden _ZNSt12system_errorC1ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
|
||||
+asm (".hidden _ZNSt12system_errorC2ESt10error_codeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE");
|
||||
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_");
|
||||
@ -11832,7 +11847,6 @@
|
||||
+#endif
|
||||
+#if defined(__aarch64__) || defined(__x86_64__)
|
||||
+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_mutateEmmPKwm");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_");
|
||||
+#endif
|
||||
+#ifdef __powerpc64__
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv");
|
||||
@ -11843,7 +11857,6 @@
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv");
|
||||
+#endif
|
||||
+#ifdef __i386__
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path5_List5beginEv");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path7_Parser4nextEv");
|
||||
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEjjPKcj");
|
||||
@ -11851,9 +11864,22 @@
|
||||
+asm (".hidden _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcj");
|
||||
+asm (".hidden _ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE6resizeEjw");
|
||||
+#endif
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED0Ev");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED1Ev");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path8_CodecvtIwED2Ev");
|
||||
+asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED0Ev");
|
||||
+asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED1Ev");
|
||||
+asm (".hidden _ZNSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EED2Ev");
|
||||
+asm (".hidden _ZTINSt10filesystem7__cxx114path8_CodecvtIwEE");
|
||||
+asm (".hidden _ZTISt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE");
|
||||
+asm (".hidden _ZTSNSt10filesystem7__cxx114path8_CodecvtIwEE");
|
||||
+asm (".hidden _ZTSSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE");
|
||||
+asm (".hidden _ZTVNSt10filesystem7__cxx114path8_CodecvtIwEE");
|
||||
+asm (".hidden _ZTVSt12codecvt_utf8IwLm1114111ELSt12codecvt_mode0EE");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_");
|
||||
--- libstdc++-v3/src/nonshared17/cow-fs_dir.cc.jj 2022-05-12 10:06:51.404502342 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/cow-fs_dir.cc 2022-05-12 17:50:19.890747818 +0200
|
||||
@@ -0,0 +1,106 @@
|
||||
@@ -0,0 +1,107 @@
|
||||
+// Copyright (C) 2019-2022 Free Software Foundation, Inc.
|
||||
+//
|
||||
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||
@ -11957,9 +11983,10 @@
|
||||
+//asm (".hidden _ZNSt10filesystem4pathC2ISsS0_EERKT_NS0_6formatE");
|
||||
+//asm (".hidden _ZNSt10filesystem4pathC1ISsS0_EERKT_NS0_6formatE");
|
||||
+asm (".hidden _ZNSt10filesystem28recursive_directory_iterator7__eraseEPSt10error_code");
|
||||
+asm (".hidden _ZNKSt10filesystem4_Dir16dir_and_pathnameEv");
|
||||
+//asm (".hidden _ZNKSt10filesystem4_Dir16dir_and_pathnameEv");
|
||||
+asm (".hidden _ZNSt10filesystem4pathD1Ev");
|
||||
+asm (".hidden _ZNSt10filesystem4pathD2Ev");
|
||||
+asm (".hidden _ZNKSt10filesystem4_Dir7currentEv");
|
||||
--- libstdc++-v3/src/nonshared17/Makefile.am.jj 2022-05-12 10:06:51.404502342 +0200
|
||||
+++ libstdc++-v3/src/nonshared17/Makefile.am 2022-05-12 10:06:51.404502342 +0200
|
||||
@@ -0,0 +1,133 @@
|
||||
@ -12176,12 +12203,12 @@
|
||||
+//asm (".hidden _ZNSt10filesystem7__cxx114pathaSISt17basic_string_viewIcSt11char_traitsIcEEEERNSt9enable_ifIXsrSt6__and_IJSt6__not_ISt7is_sameINSt9remove_cvIT_E4typeES1_EES9_ISt7is_voidINSt14remove_pointerISC_E4typeEEENS0_8__detail20__constructible_fromISC_vEEEE5valueES1_E4typeERKSC_");
|
||||
+#endif
|
||||
+#endif
|
||||
+asm (".hidden _ZTIZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+asm (".hidden _ZTSZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+asm (".hidden _ZTVZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD0Ev");
|
||||
+asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD1Ev");
|
||||
+asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD2Ev");
|
||||
+//asm (".hidden _ZTIZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+//asm (".hidden _ZTSZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+//asm (".hidden _ZTVZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_E5_UCvt");
|
||||
+//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD0Ev");
|
||||
+//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD1Ev");
|
||||
+//asm (".hidden _ZZNSt10filesystem7__cxx114path10_S_convertIwEEDaPKT_S5_EN5_UCvtD2Ev");
|
||||
+asm (".hidden _ZNSt10filesystem7__cxx118__detail24__throw_conversion_errorEv");
|
||||
+#ifdef __powerpc64__
|
||||
+//asm (".hidden _ZNKSt10filesystem7__cxx114path5_List5_Impl4copyEv");
|
||||
@ -13197,9 +13224,9 @@
|
||||
+asm (".hidden _ZNSt8__detail10__to_charsIjEESt15to_chars_resultPcS2_T_i");
|
||||
+#endif
|
||||
+#if defined (__powerpc64__) || defined (__s390x__)
|
||||
+asm (".hidden _ZSt8to_charsPcS_g");
|
||||
+asm (".hidden _ZSt8to_charsPcS_gSt12chars_format");
|
||||
+asm (".hidden _ZSt8to_charsPcS_gSt12chars_formati");
|
||||
+//asm (".hidden _ZSt8to_charsPcS_g");
|
||||
+//asm (".hidden _ZSt8to_charsPcS_gSt12chars_format");
|
||||
+//asm (".hidden _ZSt8to_charsPcS_gSt12chars_formati");
|
||||
+#endif
|
||||
+#if !defined (__powerpc64__) && !defined (__s390x__)
|
||||
+asm (".hidden _ZNSt8__detail13__to_chars_16IoEENSt9enable_ifIXsrSt5__or_IIS2_IISt7is_sameINSt9remove_cvIT_E4typeEaES3_IS7_sES3_IS7_iES3_IS7_lES3_IS7_xES3_IS7_nEEES2_IIS3_IS7_hES3_IS7_tES3_IS7_jES3_IS7_mES3_IS7_yES3_IS7_oEEES3_IcS7_EEE5valueESt15to_chars_resultE4typeEPcSR_S5_");
|
||||
|
@ -4,7 +4,7 @@
|
||||
<a class="link" href="https://www.fsf.org" target="_top">FSF
|
||||
</a>
|
||||
</p><p>
|
||||
+ Release 12.1.1
|
||||
+ Release 12.2.1
|
||||
+ </p><p>
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation
|
||||
@ -17,7 +17,7 @@
|
||||
</p><p>
|
||||
- The API documentation, rendered into HTML, can be viewed online
|
||||
+ The API documentation, rendered into HTML, can be viewed locally
|
||||
+ <a class="link" href="api/index.html" target="_top">for the 12.1.1 release</a>,
|
||||
+ <a class="link" href="api/index.html" target="_top">for the 12.2.1 release</a>,
|
||||
+ online
|
||||
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
|
||||
and
|
||||
|
@ -1,17 +0,0 @@
|
||||
commit r12-8527-g7811663964aa7e31c3939b859bbfa2e16919639f
|
||||
Author: Martin Liska <mliska@suse.cz>
|
||||
Date: Wed Jun 29 15:28:07 2022 +0200
|
||||
|
||||
libsanitizer: cherry-pick 791e0d1bc85d
|
||||
|
||||
791e0d1bc85d: [compiler-rt] Add NO_EXEC_STACK_DIRECTIVE on s390x
|
||||
(cherry picked from commit aa87b7541b4c11f59c521154513f844ea6b5c977)
|
||||
|
||||
--- libsanitizer/tsan/tsan_rtl_s390x.S
|
||||
+++ libsanitizer/tsan/tsan_rtl_s390x.S
|
||||
@@ -45,3 +45,5 @@ intercept setjmp, _ZN14__interception11real_setjmpE
|
||||
intercept _setjmp, _ZN14__interception12real__setjmpE
|
||||
intercept sigsetjmp, _ZN14__interception14real_sigsetjmpE
|
||||
intercept __sigsetjmp, _ZN14__interception16real___sigsetjmpE
|
||||
+
|
||||
+NO_EXEC_STACK_DIRECTIVE
|
@ -1,28 +0,0 @@
|
||||
2022-05-11 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR bootstrap/105551
|
||||
* opts.cc (finish_options): Also disable var-tracking if
|
||||
!DWARF2_DEBUGGING_INFO.
|
||||
|
||||
--- gcc/opts.cc
|
||||
+++ gcc/opts.cc
|
||||
@@ -1334,11 +1334,15 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
|
||||
|| opts->x_flag_selective_scheduling2));
|
||||
|
||||
/* We know which debug output will be used so we can set flag_var_tracking
|
||||
- and flag_var_tracking_uninit if the user has not specified them. Note
|
||||
- we have not yet initialized debug_hooks so we might uselessly run
|
||||
- var-tracking on targets without var_location debug hook support. */
|
||||
+ and flag_var_tracking_uninit if the user has not specified them. */
|
||||
if (opts->x_debug_info_level < DINFO_LEVEL_NORMAL
|
||||
- || !dwarf_debuginfo_p (opts))
|
||||
+ || !dwarf_debuginfo_p (opts)
|
||||
+ /* We have not yet initialized debug hooks so match that to check
|
||||
+ whether we're only doing DWARF2_LINENO_DEBUGGING_INFO. */
|
||||
+#ifndef DWARF2_DEBUGGING_INFO
|
||||
+ || true
|
||||
+#endif
|
||||
+ )
|
||||
{
|
||||
if ((opts_set->x_flag_var_tracking && opts->x_flag_var_tracking == 1)
|
||||
|| (opts_set->x_flag_var_tracking_uninit
|
@ -1,89 +0,0 @@
|
||||
commit 6c175b3d170de2bb02b7bd45b3348eec05d28451
|
||||
Author: Roger Sayle <roger@nextmovesoftware.com>
|
||||
Date: Mon Jul 4 13:58:37 2022 +0100
|
||||
|
||||
PR target/105991: Recognize PLUS and XOR forms of rldimi in rs6000.md.
|
||||
|
||||
This patch addresses PR target/105991 where a change to prefer representing
|
||||
shifts and adds at the tree-level as multiplications, causes problems for
|
||||
the rldimi patterns in the powerpc backend. The issue is that rs6000.md
|
||||
models this pattern using IOR, and some variants that have the equivalent
|
||||
PLUS or XOR in the RTL fail to match some *rotl<mode>4_insert patterns.
|
||||
This is fixed in this patch by adding a define_insn_and_split to locally
|
||||
canonicalize the PLUS and XOR forms to the backend's preferred IOR form.
|
||||
|
||||
Backported from master.
|
||||
|
||||
2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
|
||||
Marek Polacek <polacek@redhat.com>
|
||||
Segher Boessenkool <segher@kernel.crashing.org>
|
||||
Kewen Lin <linkw@linux.ibm.com>
|
||||
|
||||
gcc/ChangeLog
|
||||
PR target/105991
|
||||
* config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
|
||||
exact_log2 doesn't return -1 (or zero).
|
||||
(plus_xor): New code iterator.
|
||||
(*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
|
||||
|
||||
gcc/testsuite/ChangeLog
|
||||
PR target/105991
|
||||
* gcc.target/powerpc/pr105991.c: New test case.
|
||||
|
||||
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
|
||||
index 64049a6e521..6082ded8c31 100644
|
||||
--- a/gcc/config/rs6000/rs6000.md
|
||||
+++ b/gcc/config/rs6000/rs6000.md
|
||||
@@ -4178,7 +4178,8 @@ (define_insn "rotl<mode>3_insert_3"
|
||||
(match_operand:GPR 4 "const_int_operand" "n"))
|
||||
(ashift:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")
|
||||
(match_operand:SI 2 "const_int_operand" "n"))))]
|
||||
- "INTVAL (operands[2]) == exact_log2 (UINTVAL (operands[4]) + 1)"
|
||||
+ "INTVAL (operands[2]) > 0
|
||||
+ && INTVAL (operands[2]) == exact_log2 (UINTVAL (operands[4]) + 1)"
|
||||
{
|
||||
if (<MODE>mode == SImode)
|
||||
return "rlwimi %0,%1,%h2,0,31-%h2";
|
||||
@@ -4187,6 +4188,24 @@ (define_insn "rotl<mode>3_insert_3"
|
||||
}
|
||||
[(set_attr "type" "insert")])
|
||||
|
||||
+; Canonicalize the PLUS and XOR forms to IOR for rotl<mode>3_insert_3
|
||||
+(define_code_iterator plus_xor [plus xor])
|
||||
+
|
||||
+(define_insn_and_split "*rotl<mode>3_insert_3_<code>"
|
||||
+ [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
|
||||
+ (plus_xor:GPR
|
||||
+ (and:GPR (match_operand:GPR 3 "gpc_reg_operand" "0")
|
||||
+ (match_operand:GPR 4 "const_int_operand" "n"))
|
||||
+ (ashift:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")
|
||||
+ (match_operand:SI 2 "const_int_operand" "n"))))]
|
||||
+ "INTVAL (operands[2]) > 0
|
||||
+ && INTVAL (operands[2]) == exact_log2 (UINTVAL (operands[4]) + 1)"
|
||||
+ "#"
|
||||
+ "&& 1"
|
||||
+ [(set (match_dup 0)
|
||||
+ (ior:GPR (and:GPR (match_dup 3) (match_dup 4))
|
||||
+ (ashift:GPR (match_dup 1) (match_dup 2))))])
|
||||
+
|
||||
(define_code_iterator plus_ior_xor [plus ior xor])
|
||||
|
||||
(define_split
|
||||
diff --git a/gcc/testsuite/gcc.target/powerpc/pr105991.c b/gcc/testsuite/gcc.target/powerpc/pr105991.c
|
||||
new file mode 100644
|
||||
index 00000000000..0d9d130cb63
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.target/powerpc/pr105991.c
|
||||
@@ -0,0 +1,12 @@
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+/* { dg-require-effective-target lp64 } */
|
||||
+unsigned long long
|
||||
+foo (unsigned long long value)
|
||||
+{
|
||||
+ value &= 0xffffffff;
|
||||
+ value |= value << 32;
|
||||
+ return value;
|
||||
+}
|
||||
+/* { dg-final { scan-assembler {\mrldimi\M} } } */
|
||||
+
|
124
SOURCES/gcc12-pr107468.patch
Normal file
124
SOURCES/gcc12-pr107468.patch
Normal file
@ -0,0 +1,124 @@
|
||||
libstdc++: Update from latest fast_float [PR107468]
|
||||
|
||||
The following patch is a cherry-pick from
|
||||
https://github.com/fastfloat/fast_float/pull/153
|
||||
to restrict fast_float Clinger's fast path to when rounding mode
|
||||
is FE_TONEAREST.
|
||||
Using std::fegetround showed in benchmarks too slow, so instead
|
||||
it uses a check with 2 float additions and comparison to verify
|
||||
if rounding is FE_TONEAREST.
|
||||
|
||||
2022-11-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libstdc++/107468
|
||||
* src/c++17/fast_float/fast_float.h (detail::rounds_to_nearest): New
|
||||
function, taken from https://github.com/fastfloat/fast_float/pull/153.
|
||||
(from_chars_advanced): Only use Clinger's fast path if
|
||||
detail::rounds_to_nearest().
|
||||
* testsuite/20_util/from_chars/pr107468.cc: New test.
|
||||
|
||||
--- libstdc++-v3/src/c++17/fast_float/fast_float.h.jj 2022-04-28 15:56:18.315632888 +0200
|
||||
+++ libstdc++-v3/src/c++17/fast_float/fast_float.h 2022-11-20 18:53:49.570830249 +0100
|
||||
@@ -2842,6 +2842,48 @@ from_chars_result parse_infnan(const cha
|
||||
return answer;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * Returns true if the floating-pointing rounding mode is to 'nearest'.
|
||||
+ * It is the default on most system. This function is meant to be inexpensive.
|
||||
+ * Credit : @mwalcott3
|
||||
+ */
|
||||
+fastfloat_really_inline bool rounds_to_nearest() noexcept {
|
||||
+ // See
|
||||
+ // A fast function to check your floating-point rounding mode
|
||||
+ // https://lemire.me/blog/2022/11/16/a-fast-function-to-check-your-floating-point-rounding-mode/
|
||||
+ //
|
||||
+ // This function is meant to be equivalent to :
|
||||
+ // prior: #include <cfenv>
|
||||
+ // return fegetround() == FE_TONEAREST;
|
||||
+ // However, it is expected to be much faster than the fegetround()
|
||||
+ // function call.
|
||||
+ //
|
||||
+ // The volatile keywoard prevents the compiler from computing the function
|
||||
+ // at compile-time.
|
||||
+ // There might be other ways to prevent compile-time optimizations (e.g., asm).
|
||||
+ // The value does not need to be std::numeric_limits<float>::min(), any small
|
||||
+ // value so that 1 + x should round to 1 would do (after accounting for excess
|
||||
+ // precision, as in 387 instructions).
|
||||
+ static volatile float fmin = std::numeric_limits<float>::min();
|
||||
+ float fmini = fmin; // we copy it so that it gets loaded at most once.
|
||||
+ //
|
||||
+ // Explanation:
|
||||
+ // Only when fegetround() == FE_TONEAREST do we have that
|
||||
+ // fmin + 1.0f == 1.0f - fmin.
|
||||
+ //
|
||||
+ // FE_UPWARD:
|
||||
+ // fmin + 1.0f > 1
|
||||
+ // 1.0f - fmin == 1
|
||||
+ //
|
||||
+ // FE_DOWNWARD or FE_TOWARDZERO:
|
||||
+ // fmin + 1.0f == 1
|
||||
+ // 1.0f - fmin < 1
|
||||
+ //
|
||||
+ // Note: This may fail to be accurate if fast-math has been
|
||||
+ // enabled, as rounding conventions may not apply.
|
||||
+ return (fmini + 1.0f == 1.0f - fmini);
|
||||
+}
|
||||
+
|
||||
} // namespace detail
|
||||
|
||||
template<typename T>
|
||||
@@ -2870,7 +2912,7 @@ from_chars_result from_chars_advanced(co
|
||||
answer.ec = std::errc(); // be optimistic
|
||||
answer.ptr = pns.lastmatch;
|
||||
// Next is Clinger's fast path.
|
||||
- if (binary_format<T>::min_exponent_fast_path() <= pns.exponent && pns.exponent <= binary_format<T>::max_exponent_fast_path() && pns.mantissa <=binary_format<T>::max_mantissa_fast_path() && !pns.too_many_digits) {
|
||||
+ if (binary_format<T>::min_exponent_fast_path() <= pns.exponent && pns.exponent <= binary_format<T>::max_exponent_fast_path() && pns.mantissa <=binary_format<T>::max_mantissa_fast_path() && !pns.too_many_digits && detail::rounds_to_nearest()) {
|
||||
value = T(pns.mantissa);
|
||||
if (pns.exponent < 0) { value = value / binary_format<T>::exact_power_of_ten(-pns.exponent); }
|
||||
else { value = value * binary_format<T>::exact_power_of_ten(pns.exponent); }
|
||||
--- libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc.jj
|
||||
+++ libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc
|
||||
@@ -0,0 +1,42 @@
|
||||
+// Copyright (C) 2022 Free Software Foundation, Inc.
|
||||
+//
|
||||
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||
+// software; you can redistribute it and/or modify it under the
|
||||
+// terms of the GNU General Public License as published by the
|
||||
+// Free Software Foundation; either version 3, or (at your option)
|
||||
+// any later version.
|
||||
+
|
||||
+// This library is distributed in the hope that it will be useful,
|
||||
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+// GNU General Public License for more details.
|
||||
+
|
||||
+// You should have received a copy of the GNU General Public License along
|
||||
+// with this library; see the file COPYING3. If not see
|
||||
+// <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+// { dg-do run { target c++17 } }
|
||||
+// { dg-add-options ieee }
|
||||
+
|
||||
+#include <charconv>
|
||||
+#include <string>
|
||||
+#include <cfenv>
|
||||
+#include <testsuite_hooks.h>
|
||||
+
|
||||
+int
|
||||
+main()
|
||||
+{
|
||||
+ // FP from_char not available otherwise.
|
||||
+#if __cpp_lib_to_chars >= 201611L \
|
||||
+ && _GLIBCXX_USE_C99_FENV_TR1 \
|
||||
+ && defined(FE_DOWNWARD) \
|
||||
+ && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
|
||||
+ // PR libstdc++/107468
|
||||
+ float f;
|
||||
+ char buf[] = "3.355447e+07";
|
||||
+ std::fesetround(FE_DOWNWARD);
|
||||
+ auto [ptr, ec] = std::from_chars(buf, buf + sizeof(buf) - 1, f, std::chars_format::scientific);
|
||||
+ VERIFY( ec == std::errc() && ptr == buf + sizeof(buf) - 1 );
|
||||
+ VERIFY( f == 33554472.0f );
|
||||
+#endif
|
||||
+}
|
178
SOURCES/gcc12-static-libquadmath.patch
Normal file
178
SOURCES/gcc12-static-libquadmath.patch
Normal file
@ -0,0 +1,178 @@
|
||||
2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR fortran/46539
|
||||
gcc/
|
||||
* common.opt (static-libquadmath): New option.
|
||||
* gcc.cc (driver_handle_option): Always accept -static-libquadmath.
|
||||
* config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
|
||||
gcc/fortran/
|
||||
* lang.opt (static-libquadmath): New option.
|
||||
* invoke.texi (-static-libquadmath): Document it.
|
||||
libgfortran/
|
||||
* acinclude.m4 (LIBQUADSPEC): From $FC -static-libgfortran -###
|
||||
output determine -Bstatic/-Bdynamic, -bstatic/-bdynamic,
|
||||
-aarchive_shared/-adefault linker support or Darwin remapping
|
||||
of -lgfortran to libgfortran.a%s and use that around or instead
|
||||
of -lquadmath in LIBQUADSPEC.
|
||||
* configure: Regenerated.
|
||||
|
||||
--- gcc/common.opt.jj 2022-04-28 15:56:02.822846833 +0200
|
||||
+++ gcc/common.opt 2022-09-29 19:41:37.250880668 +0200
|
||||
@@ -3563,6 +3563,10 @@ static-libphobos
|
||||
Driver
|
||||
; Documented for D, but always accepted by driver.
|
||||
|
||||
+static-libquadmath
|
||||
+Driver
|
||||
+; Documented for Fortran, but always accepted by driver.
|
||||
+
|
||||
static-libstdc++
|
||||
Driver
|
||||
|
||||
--- gcc/gcc.cc.jj 2022-04-28 15:56:04.771819920 +0200
|
||||
+++ gcc/gcc.cc 2022-09-29 19:41:37.296880041 +0200
|
||||
@@ -4583,12 +4583,14 @@ driver_handle_option (struct gcc_options
|
||||
case OPT_static_libgcc:
|
||||
case OPT_shared_libgcc:
|
||||
case OPT_static_libgfortran:
|
||||
+ case OPT_static_libquadmath:
|
||||
case OPT_static_libphobos:
|
||||
case OPT_static_libstdc__:
|
||||
/* These are always valid, since gcc.cc itself understands the
|
||||
first two, gfortranspec.cc understands -static-libgfortran,
|
||||
- d-spec.cc understands -static-libphobos, and g++spec.cc
|
||||
- understands -static-libstdc++ */
|
||||
+ d-spec.cc understands -static-libphobos, g++spec.cc
|
||||
+ understands -static-libstdc++ and libgfortran.spec handles
|
||||
+ -static-libquadmath. */
|
||||
validated = true;
|
||||
break;
|
||||
|
||||
--- gcc/config/darwin.h.jj 2022-06-18 21:56:40.666675606 +0200
|
||||
+++ gcc/config/darwin.h 2022-09-29 19:41:37.261880518 +0200
|
||||
@@ -443,6 +443,7 @@ extern GTY(()) int darwin_ms_struct;
|
||||
%:replace-outfile(-lobjc libobjc-gnu.a%s); \
|
||||
:%:replace-outfile(-lobjc -lobjc-gnu )}}\
|
||||
%{static|static-libgcc|static-libgfortran:%:replace-outfile(-lgfortran libgfortran.a%s)}\
|
||||
+ %{static|static-libgcc|static-libquadmath:%:replace-outfile(-lquadmath libquadmath.a%s)}\
|
||||
%{static|static-libgcc|static-libphobos:%:replace-outfile(-lgphobos libgphobos.a%s)}\
|
||||
%{static|static-libgcc|static-libstdc++|static-libgfortran:%:replace-outfile(-lgomp libgomp.a%s)}\
|
||||
%{static|static-libgcc|static-libstdc++:%:replace-outfile(-lstdc++ libstdc++.a%s)}\
|
||||
--- gcc/fortran/lang.opt.jj 2022-04-28 15:56:04.579822571 +0200
|
||||
+++ gcc/fortran/lang.opt 2022-09-29 19:41:37.279880273 +0200
|
||||
@@ -863,6 +863,10 @@ static-libgfortran
|
||||
Fortran
|
||||
Statically link the GNU Fortran helper library (libgfortran).
|
||||
|
||||
+static-libquadmath
|
||||
+Driver
|
||||
+Statically link the GCC Quad-Precision Math Library (libquadmath).
|
||||
+
|
||||
std=f2003
|
||||
Fortran
|
||||
Conform to the ISO Fortran 2003 standard.
|
||||
--- gcc/fortran/invoke.texi.jj 2022-04-29 15:51:59.080720092 +0200
|
||||
+++ gcc/fortran/invoke.texi 2022-09-29 19:41:37.273880354 +0200
|
||||
@@ -170,7 +170,7 @@ and warnings}.
|
||||
|
||||
@item Link Options
|
||||
@xref{Link Options,,Options for influencing the linking step}.
|
||||
-@gccoptlist{-static-libgfortran}
|
||||
+@gccoptlist{-static-libgfortran -static-libquadmath}
|
||||
|
||||
@item Runtime Options
|
||||
@xref{Runtime Options,,Options for influencing runtime behavior}.
|
||||
@@ -1425,6 +1425,20 @@ configured, this option has no effect.
|
||||
@end table
|
||||
|
||||
|
||||
+@table @gcctabopt
|
||||
+@item -static-libquadmath
|
||||
+@opindex @code{static-libquadmath}
|
||||
+On systems that provide @file{libquadmath} as a shared and a static
|
||||
+library, this option forces the use of the static version. If no
|
||||
+shared version of @file{libquadmath} was built when the compiler was
|
||||
+configured, this option has no effect.
|
||||
+
|
||||
+Please note that the @file{libquadmath} runtime library is licensed under the
|
||||
+GNU Lesser General Public License (LGPL), and linking it statically introduces
|
||||
+requirements when redistributing the resulting binaries.
|
||||
+@end table
|
||||
+
|
||||
+
|
||||
@node Runtime Options
|
||||
@section Influencing runtime behavior
|
||||
@cindex options, runtime
|
||||
--- libgfortran/acinclude.m4.jj 2022-09-29 19:41:37.306879904 +0200
|
||||
+++ libgfortran/acinclude.m4 2022-09-29 19:42:42.641988408 +0200
|
||||
@@ -338,11 +338,32 @@ AC_DEFUN([LIBGFOR_CHECK_FLOAT128], [
|
||||
ac_[]_AC_LANG_ABBREV[]_werror_flag=$ac_xsave_[]_AC_LANG_ABBREV[]_werror_flag
|
||||
])
|
||||
|
||||
+ dnl Determine -Bstatic ... -Bdynamic etc. support from gfortran -### stderr.
|
||||
+ touch conftest1.$ac_objext conftest2.$ac_objext
|
||||
+ LQUADMATH=-lquadmath
|
||||
+ $FC -static-libgfortran -### -o conftest \
|
||||
+ conftest1.$ac_objext -lgfortran conftest2.$ac_objext 2>&1 >/dev/null \
|
||||
+ | grep "conftest1.$ac_objext.*conftest2.$ac_objext" > conftest.cmd
|
||||
+ if grep "conftest1.$ac_objext.* -Bstatic -lgfortran -Bdynamic .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:-Bstatic} -lquadmath %{static-libquadmath:-Bdynamic}"
|
||||
+ elif grep "conftest1.$ac_objext.* -bstatic -lgfortran -bdynamic .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:-bstatic} -lquadmath %{static-libquadmath:-bdynamic}"
|
||||
+ elif grep "conftest1.$ac_objext.* -aarchive_shared -lgfortran -adefault .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:-aarchive_shared} -lquadmath %{static-libquadmath:-adefault}"
|
||||
+ elif grep "conftest1.$ac_objext.*libgfortran.a .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:libquadmath.a%s;:-lquadmath}"
|
||||
+ fi
|
||||
+ rm -f conftest1.$ac_objext conftest2.$ac_objext conftest conftest.cmd
|
||||
+
|
||||
dnl For static libgfortran linkage, depend on libquadmath only if needed.
|
||||
if test "x$libgfor_cv_have_as_needed" = xyes; then
|
||||
- LIBQUADSPEC="%{static-libgfortran:$libgfor_cv_as_needed_option} -lquadmath %{static-libgfortran:$libgfor_cv_no_as_needed_option}"
|
||||
+ LIBQUADSPEC="%{static-libgfortran:$libgfor_cv_as_needed_option} $LQUADMATH %{static-libgfortran:$libgfor_cv_no_as_needed_option}"
|
||||
else
|
||||
- LIBQUADSPEC="-lquadmath"
|
||||
+ LIBQUADSPEC="$LQUADMATH"
|
||||
fi
|
||||
if test -f ../libquadmath/libquadmath.la; then
|
||||
LIBQUADLIB=../libquadmath/libquadmath.la
|
||||
--- libgfortran/configure.jj 2022-09-29 19:41:37.345879372 +0200
|
||||
+++ libgfortran/configure 2022-09-29 19:42:59.878753212 +0200
|
||||
@@ -27301,10 +27301,30 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgfor_cv_have_as_needed" >&5
|
||||
$as_echo "$libgfor_cv_have_as_needed" >&6; }
|
||||
|
||||
+ touch conftest1.$ac_objext conftest2.$ac_objext
|
||||
+ LQUADMATH=-lquadmath
|
||||
+ $FC -static-libgfortran -### -o conftest \
|
||||
+ conftest1.$ac_objext -lgfortran conftest2.$ac_objext 2>&1 >/dev/null \
|
||||
+ | grep "conftest1.$ac_objext.*conftest2.$ac_objext" > conftest.cmd
|
||||
+ if grep "conftest1.$ac_objext.* -Bstatic -lgfortran -Bdynamic .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:-Bstatic} -lquadmath %{static-libquadmath:-Bdynamic}"
|
||||
+ elif grep "conftest1.$ac_objext.* -bstatic -lgfortran -bdynamic .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:-bstatic} -lquadmath %{static-libquadmath:-bdynamic}"
|
||||
+ elif grep "conftest1.$ac_objext.* -aarchive_shared -lgfortran -adefault .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:-aarchive_shared} -lquadmath %{static-libquadmath:-adefault}"
|
||||
+ elif grep "conftest1.$ac_objext.*libgfortran.a .*conftest2.$ac_objext" \
|
||||
+ conftest.cmd >/dev/null 2>&1; then
|
||||
+ LQUADMATH="%{static-libquadmath:libquadmath.a%s;:-lquadmath}"
|
||||
+ fi
|
||||
+ rm -f conftest1.$ac_objext conftest2.$ac_objext conftest conftest.cmd
|
||||
+
|
||||
if test "x$libgfor_cv_have_as_needed" = xyes; then
|
||||
- LIBQUADSPEC="%{static-libgfortran:$libgfor_cv_as_needed_option} -lquadmath %{static-libgfortran:$libgfor_cv_no_as_needed_option}"
|
||||
+ LIBQUADSPEC="%{static-libgfortran:$libgfor_cv_as_needed_option} $LQUADMATH %{static-libgfortran:$libgfor_cv_no_as_needed_option}"
|
||||
else
|
||||
- LIBQUADSPEC="-lquadmath"
|
||||
+ LIBQUADSPEC="$LQUADMATH"
|
||||
fi
|
||||
if test -f ../libquadmath/libquadmath.la; then
|
||||
LIBQUADLIB=../libquadmath/libquadmath.la
|
41
SOURCES/gcc12-testsuite-typo.patch
Normal file
41
SOURCES/gcc12-testsuite-typo.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 023c5b36e476976cb3b45ff32c7c64990c5a6d45 Mon Sep 17 00:00:00 2001
|
||||
From: Kewen Lin <linkw@linux.ibm.com>
|
||||
Date: Thu, 1 Sep 2022 00:27:11 -0500
|
||||
Subject: [PATCH] rs6000/test: Fix typo in pr86731-fwrapv-longlong.c [PR106682]
|
||||
|
||||
Commit r12-2266 updated the scanned assembly content from
|
||||
|
||||
"{\mlvx\M|\mlxv\M|\mlxvd2x\M}"
|
||||
|
||||
to
|
||||
|
||||
"{\mp?lxv\M|\mlxv\M|\mlxvd2x\M}"
|
||||
|
||||
for the test case pr86731-fwrapv-longlong.c unexpectedly.
|
||||
|
||||
It's meant to update "lxv" to "p?lxv", should leave the
|
||||
"lvx" unchanged. So fix the typo accordingly.
|
||||
|
||||
PR testsuite/106682
|
||||
|
||||
gcc/testsuite/ChangeLog:
|
||||
|
||||
* gcc.target/powerpc/pr86731-fwrapv-longlong.c: Fix typo.
|
||||
---
|
||||
gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
|
||||
index dcb30e1d886..018e1cf9749 100644
|
||||
--- a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
|
||||
+++ b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
|
||||
@@ -31,5 +31,5 @@ vector signed long long splats4(void)
|
||||
|
||||
/* { dg-final { scan-assembler-times {\mvspltis[bhw]\M} 0 } } */
|
||||
/* { dg-final { scan-assembler-times {\mvsl[bhwd]\M} 0 } } */
|
||||
-/* { dg-final { scan-assembler-times {\mp?lxv\M|\mlxv\M|\mlxvd2x\M|\mxxspltidp\M} 2 } } */
|
||||
+/* { dg-final { scan-assembler-times {\mp?lxv\M|\mlvx\M|\mlxvd2x\M|\mxxspltidp\M} 2 } } */
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
85
SOURCES/isl-rh2155127.patch
Normal file
85
SOURCES/isl-rh2155127.patch
Normal file
@ -0,0 +1,85 @@
|
||||
From: Sven Verdoolaege <sven.verdoolaege@gmail.com>
|
||||
Date: Mon, 6 Jun 2022 12:56:02 +0000 (+0200)
|
||||
Subject: update m4/ax_prog_cc_for_build.m4
|
||||
X-Git-Tag: isl-0.25~11
|
||||
X-Git-Url: https://repo.or.cz/isl.git/commitdiff_plain/b4dcdfadc29a6c9f410a72f345f3f32725b1d38b
|
||||
|
||||
update m4/ax_prog_cc_for_build.m4
|
||||
|
||||
In particular, update to the latest version from the autoconf archive,
|
||||
but preserve the changes from isl-0.22.1-358-gcd42abdf2
|
||||
(m4/ax_prog_cc_for_build.m4: do not override host compiler dependency style,
|
||||
Tue Jun 9 10:54:10 2020 +0200).
|
||||
|
||||
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
|
||||
|
||||
--- isl-0.24/m4/ax_prog_cc_for_build.m4.jj 2021-03-02 12:07:09.000000000 +0100
|
||||
+++ isl-0.24/m4/ax_prog_cc_for_build.m4 2022-12-20 18:11:18.855777817 +0100
|
||||
@@ -32,7 +32,7 @@
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
-#serial 18
|
||||
+#serial 21
|
||||
|
||||
AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
|
||||
AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
|
||||
@@ -44,6 +44,8 @@ dnl Use the standard macros, but make th
|
||||
dnl
|
||||
pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
|
||||
pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
|
||||
+pushdef([ac_cv_prog_cc_c99], ac_cv_build_prog_cc_c99)dnl
|
||||
+pushdef([ac_cv_prog_cc_c11], ac_cv_build_prog_cc_c11)dnl
|
||||
pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
|
||||
pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
|
||||
pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
|
||||
@@ -86,7 +88,21 @@ AS_IF([test -n "$build"], [ac_build
|
||||
[test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
+
|
||||
+dnl The pushdef([ac_cv_c_compiler_gnu], ...) currently does not cover
|
||||
+dnl the use of this variable in _AC_LANG_COMPILER_GNU called by
|
||||
+dnl AC_PROG_CC. Unset this cache variable temporarily as a workaround.
|
||||
+was_set_c_compiler_gnu=${[ac_cv_c_compiler_gnu]+y}
|
||||
+AS_IF([test ${was_set_c_compiler_gnu}],
|
||||
+ [saved_c_compiler_gnu=$[ac_cv_c_compiler_gnu]
|
||||
+ AS_UNSET([[ac_cv_c_compiler_gnu]])])
|
||||
+
|
||||
AC_PROG_CC
|
||||
+
|
||||
+dnl Restore ac_cv_c_compiler_gnu
|
||||
+AS_IF([test ${was_set_c_compiler_gnu}],
|
||||
+ [[ac_cv_c_compiler_gnu]=$[saved_c_compiler_gnu]])
|
||||
+
|
||||
_AC_COMPILER_EXEEXT
|
||||
_AC_COMPILER_OBJEXT
|
||||
AC_PROG_CPP
|
||||
--- isl-0.24/configure.jj 2021-04-26 11:13:19.000000000 +0200
|
||||
+++ isl-0.24/configure 2022-12-20 18:11:36.882518568 +0100
|
||||
@@ -5002,6 +4990,13 @@ ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR
|
||||
ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD $LDFLAGS_FOR_BUILD conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_build_c_compiler_gnu
|
||||
|
||||
+
|
||||
+was_set_c_compiler_gnu=${ac_cv_c_compiler_gnu+y}
|
||||
+if test ${was_set_c_compiler_gnu}; then :
|
||||
+ saved_c_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
+ { ac_cv_c_compiler_gnu=; unset ac_cv_c_compiler_gnu;}
|
||||
+fi
|
||||
+
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP_FOR_BUILD $CPPFLAGS_FOR_BUILD'
|
||||
ac_compile='$CC_FOR_BUILD -c $CFLAGS_FOR_BUILD $CPPFLAGS_FOR_BUILD conftest.$ac_ext >&5'
|
||||
@@ -5728,6 +5723,11 @@ else
|
||||
fi
|
||||
|
||||
|
||||
+
|
||||
+if test ${was_set_c_compiler_gnu}; then :
|
||||
+ ac_cv_c_compiler_gnu=$saved_c_compiler_gnu
|
||||
+fi
|
||||
+
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
129
SPECS/gcc.spec
129
SPECS/gcc.spec
@ -2,17 +2,17 @@
|
||||
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
|
||||
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
|
||||
%{?scl:%scl_package gcc}
|
||||
%global DATE 20220628
|
||||
%global gitrev 874cb9452c56f1c3b3a7b5bfed93a262504b9856
|
||||
%global gcc_version 12.1.1
|
||||
%global DATE 20221121
|
||||
%global gitrev b3f5a0d53b84ed27cf00cfa2b9c3e2c78935c07d
|
||||
%global gcc_version 12.2.1
|
||||
%global gcc_major 12
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||
%global gcc_release 3
|
||||
%global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e
|
||||
%global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0
|
||||
%global gcc_release 7
|
||||
%global nvptx_tools_gitrev 472b6e78b3ba918d727698f79911360b7c808247
|
||||
%global newlib_cygwin_gitrev a8526cb52bedabd4d6ba4b227a5185627f871aa1
|
||||
%global mpc_version 1.0.3
|
||||
%global isl_version 0.18
|
||||
%global isl_version 0.24
|
||||
%global mpfr_version 3.1.4
|
||||
%global gmp_version 6.1.0
|
||||
%global doxygen_version 1.8.0
|
||||
@ -51,7 +51,7 @@
|
||||
%else
|
||||
%global build_go 0
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 %{arm} %{mips} s390 s390x riscv64
|
||||
%ifarch %{ix86} x86_64 %{arm} aarch64 %{mips} s390 s390x riscv64
|
||||
%global build_d 1
|
||||
%else
|
||||
%global build_d 0
|
||||
@ -139,7 +139,7 @@
|
||||
%ifarch x86_64
|
||||
%global multilib_32_arch i686
|
||||
%endif
|
||||
%if 0%{?fedora} >= 36 || 0%{?rhel} >= 10
|
||||
%if 0%{?fedora} >= 36 || 0%{?rhel} >= 8
|
||||
%global build_annobin_plugin 1
|
||||
%else
|
||||
%global build_annobin_plugin 0
|
||||
@ -147,7 +147,7 @@
|
||||
Summary: GCC version 12
|
||||
Name: %{?scl_prefix}gcc
|
||||
Version: %{gcc_version}
|
||||
Release: %{gcc_release}.5%{?dist}
|
||||
Release: %{gcc_release}.4%{?dist}
|
||||
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
|
||||
# GCC Runtime Exception.
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
|
||||
@ -348,12 +348,9 @@ Patch8: gcc12-no-add-needed.patch
|
||||
Patch9: gcc12-Wno-format-security.patch
|
||||
Patch10: gcc12-rh1574936.patch
|
||||
Patch11: gcc12-d-shared-libphobos.patch
|
||||
Patch12: gcc12-pr105551.patch
|
||||
Patch13: gcc12-libtsan-s390x.patch
|
||||
# This has been backported to GCC 12, so eventually we can drop it.
|
||||
Patch14: gcc12-pr105991.patch
|
||||
# For DTS 12.0.z.
|
||||
Patch15: gcc12-detect-sapphirerapids.patch
|
||||
Patch12: gcc12-pr107468.patch
|
||||
Patch15: gcc12-static-libquadmath.patch
|
||||
Patch16: gcc12-FMA-chains.patch
|
||||
|
||||
Patch100: gcc12-fortran-fdec-duplicates.patch
|
||||
Patch101: gcc12-fortran-flogical-as-integer.patch
|
||||
@ -367,6 +364,7 @@ Patch1002: gcc12-libgfortran-compat.patch
|
||||
Patch2001: doxygen-1.7.1-config.patch
|
||||
Patch2002: doxygen-1.7.5-timestamp.patch
|
||||
Patch2003: doxygen-1.8.0-rh856725.patch
|
||||
Patch2004: isl-rh2155127.patch
|
||||
|
||||
Patch3000: 0001-basic_string-reserve-n-semantics-are-not-available-i.patch
|
||||
Patch3001: 0004-operator-istream-char-N-eofbit-fixes-are-not-availab.patch
|
||||
@ -388,6 +386,7 @@ Patch3016: 0019-xfails.patch
|
||||
Patch3017: 0020-more-fixes.patch
|
||||
Patch3018: 0021-libstdc++-disable-tests.patch
|
||||
Patch3019: 0022-libstdc++-revert-behavior.patch
|
||||
Patch3020: gcc12-testsuite-typo.patch
|
||||
|
||||
%if 0%{?rhel} == 9
|
||||
%global nonsharedver 110
|
||||
@ -694,17 +693,17 @@ NVidia PTX. OpenMP and OpenACC programs linked with -fopenmp will
|
||||
by default add PTX code into the binaries, which can be offloaded
|
||||
to NVidia PTX capable devices if available.
|
||||
|
||||
%package plugin-annobin
|
||||
Summary: The annobin plugin for gcc, built by the installed version of gcc
|
||||
Requires: gcc = %{version}-%{release}
|
||||
%if %{build_annobin_plugin}
|
||||
BuildRequires: annobin >= 10.62, annobin-plugin-gcc, rpm-devel, binutils-devel, xz
|
||||
%endif
|
||||
%package -n %{?scl_prefix}gcc-plugin-annobin
|
||||
Summary: The annobin plugin for gcc, built by the installed version of gcc
|
||||
Requires: %{?scl_prefix}gcc = %{version}-%{release}
|
||||
BuildRequires: rpm-devel, binutils-devel, xz
|
||||
|
||||
%description plugin-annobin
|
||||
%description -n %{?scl_prefix}gcc-plugin-annobin
|
||||
This package adds a version of the annobin plugin for gcc. This version
|
||||
of the plugin is explicitly built by the same version of gcc that is installed
|
||||
so that there cannot be any synchronization problems.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%if 0%{?rhel} >= 7
|
||||
@ -729,10 +728,9 @@ so that there cannot be any synchronization problems.
|
||||
%patch10 -p0 -b .rh1574936~
|
||||
%endif
|
||||
%patch11 -p0 -b .d-shared-libphobos~
|
||||
%patch12 -p0 -b .pr105551~
|
||||
%patch13 -p0 -b .libtsan-s390x~
|
||||
%patch14 -p1 -b .pr105991~
|
||||
%patch15 -p1 -b .detect-spr~
|
||||
%patch12 -p0 -b .pr107468~
|
||||
%patch15 -p0 -b .static-libquadmath~
|
||||
%patch16 -p1 -b .fma~
|
||||
|
||||
%if 0%{?rhel} >= 6
|
||||
%patch100 -p1 -b .fortran-fdec-duplicates~
|
||||
@ -770,6 +768,9 @@ cd doxygen-%{doxygen_version}
|
||||
cd ..
|
||||
%endif
|
||||
%endif
|
||||
%if %{build_isl}
|
||||
%patch2004 -p0 -b .isl-rh2155127~
|
||||
%endif
|
||||
|
||||
# Apply DTS-specific testsuite patches.
|
||||
%patch3000 -p1 -b .dts-test-0~
|
||||
@ -794,6 +795,7 @@ cd ..
|
||||
%if 0%{?rhel} <= 7
|
||||
%patch3019 -p1 -b .dts-test-19~
|
||||
%endif
|
||||
%patch3020 -p1 -b .typo
|
||||
|
||||
find gcc/testsuite -name \*.pr96939~ | xargs rm -f
|
||||
|
||||
@ -983,17 +985,24 @@ ISL_FLAG_PIC=-fPIC
|
||||
ISL_FLAG_PIC=-fpic
|
||||
%endif
|
||||
cd isl-build
|
||||
sed -i 's|libisl|libgcc12privateisl|g' \
|
||||
sed -i 's|libisl\([^-]\)|libgcc12privateisl\1|g' \
|
||||
../../isl-%{isl_version}/Makefile.{am,in}
|
||||
# Prevent regenerating aclocal.m4 and other configure files, because we don't
|
||||
# want to require aclocal-1.16 and similar. isl-rh2155127.patch modifies
|
||||
# 'configure' so the Makefile would attempt to regenerate various files.
|
||||
# See <https://bugzilla.redhat.com/show_bug.cgi?id=2155127#c11>.
|
||||
touch ../../isl-%{isl_version}/{m4/*,aclocal.m4,Makefile.in,configure,isl_config.h.in}
|
||||
../../isl-%{isl_version}/configure \
|
||||
CC=/usr/bin/gcc CXX=/usr/bin/g++ \
|
||||
CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
|
||||
# Make sure we build with -g (#2155127).
|
||||
sed -i -e 's/CFLAGS =.*/& -g/' Makefile
|
||||
make %{?_smp_mflags}
|
||||
make install
|
||||
cd ../isl-install/lib
|
||||
rm libgcc12privateisl.so{,.15}
|
||||
mv libgcc12privateisl.so.15.3.0 libisl.so.15
|
||||
ln -sf libisl.so.15 libisl.so
|
||||
rm libgcc12privateisl.so{,.23}
|
||||
mv libgcc12privateisl.so.23.1.0 libisl.so.23
|
||||
ln -sf libisl.so.23 libisl.so
|
||||
cd ../..
|
||||
%endif
|
||||
|
||||
@ -1215,7 +1224,7 @@ make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/htm
|
||||
cd ..
|
||||
|
||||
%if %{build_isl}
|
||||
cp -a isl-install/lib/libisl.so.15 gcc/
|
||||
cp -a isl-install/lib/libisl.so.23 gcc/
|
||||
%endif
|
||||
|
||||
# Make generated man pages even if Pod::Man is not new enough
|
||||
@ -1397,7 +1406,7 @@ ln -sf ../../../../bin/strip $FULLEPATH/strip
|
||||
%endif
|
||||
|
||||
%if %{build_isl}
|
||||
cp -a isl-install/lib/libisl.so.15 $FULLPATH/
|
||||
cp -a isl-install/lib/libisl.so.23 $FULLPATH/
|
||||
%endif
|
||||
|
||||
# fix some things
|
||||
@ -2099,7 +2108,19 @@ echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
|
||||
ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \
|
||||
%{buildroot}%{_libdir}/bfd-plugins/
|
||||
|
||||
%if %{build_annobin_plugin}
|
||||
mkdir -p $FULLPATH/plugin
|
||||
rm -f $FULLPATH/plugin/gts-gcc-annobin*
|
||||
cp -a %{_builddir}/gcc-%{version}-%{DATE}/annobin-plugin/annobin*/gcc-plugin/.libs/annobin.so.0.0.0 \
|
||||
$FULLPATH/plugin/gts-gcc-annobin.so.0.0.0
|
||||
pushd $FULLPATH/plugin/
|
||||
ln -sf gts-gcc-annobin.so.0.0.0 gts-gcc-annobin.so.0
|
||||
ln -sf gts-gcc-annobin.so.0.0.0 gts-gcc-annobin.so
|
||||
popd
|
||||
%endif
|
||||
|
||||
%check
|
||||
|
||||
cd obj-%{gcc_target_platform}
|
||||
|
||||
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
|
||||
@ -2465,7 +2486,6 @@ fi
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2
|
||||
%if 0%{?scl:1}
|
||||
%if 0%{?rhel} <= 7
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ar
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/as
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld
|
||||
@ -2476,7 +2496,6 @@ fi
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ranlib
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/strip
|
||||
%endif
|
||||
%endif
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a
|
||||
@ -2616,6 +2635,17 @@ fi
|
||||
%endif
|
||||
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME
|
||||
|
||||
%if %{build_annobin_plugin}
|
||||
%files -n %{?scl_prefix}gcc-plugin-annobin
|
||||
%dir %{_prefix}/lib/gcc
|
||||
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
|
||||
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
|
||||
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gts-gcc-annobin.so
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gts-gcc-annobin.so.0
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gts-gcc-annobin.so.0.0.0
|
||||
%endif
|
||||
|
||||
%files c++
|
||||
%{_prefix}/bin/%{gcc_target_platform}-g++%{!?scl:12}
|
||||
%{_prefix}/bin/g++%{!?scl:12}
|
||||
@ -2960,11 +2990,34 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Dec 13 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.5
|
||||
- bump NVR (#2150126)
|
||||
* Fri Feb 10 2023 Marek Polacek <polacek@redhat.com> 12.2.1-7.4
|
||||
- avoid fma_chain for -march=alderlake and sapphirerapids (#2168919)
|
||||
|
||||
* Mon Dec 5 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.4
|
||||
- fix Sapphire Rapids detection in host_detect_local_cpu (#2150126)
|
||||
* Wed Jan 25 2023 Marek Polacek <polacek@redhat.com> 12.2.1-7.3
|
||||
- provide libexec/ symlinks on all RHELs (#2164262)
|
||||
|
||||
* Wed Jan 11 2023 Marek Polacek <polacek@redhat.com> 12.2.1-7.2
|
||||
- build libisl.so with -g (#2154936)
|
||||
|
||||
* Tue Dec 20 2022 Marek Polacek <polacek@redhat.com> 12.2.1-6.1
|
||||
- apply an ISL patch (#2154936)
|
||||
|
||||
* Wed Dec 14 2022 Nick Clifton <nickc@redhat.com> 12.2.1-6
|
||||
- Fixed run-time requirement for annobin plugin. (#2151927)
|
||||
|
||||
* Tue Dec 13 2022 Nick Clifton <nickc@redhat.com> 12.2.1-5
|
||||
- Build the annobin plugin. Call it gts-gcc-annobin.so. (#2151927)
|
||||
|
||||
* Wed Nov 30 2022 Marek Polacek <polacek@redhat.com> 12.2.1-4
|
||||
- update from releases/gcc-12 branch (#2110583)
|
||||
- fix up std::from_chars behavior in rounding modes other than FE_TONEAREST
|
||||
(PR libstdc++/107468)
|
||||
|
||||
* Wed Nov 30 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.4
|
||||
- fix pr86731-fwrapv-longlong.c (#2134379)
|
||||
|
||||
* Wed Nov 30 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.3
|
||||
- add -static-libquadmath (#2131082)
|
||||
|
||||
* Fri Jul 8 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.2
|
||||
- recognize PLUS and XOR forms of rldimi (PR target/105991, #2095789)
|
||||
|
Loading…
Reference in New Issue
Block a user