* [gentoo-commits] proj/gcc-patches:master commit in: 12.1.0/gentoo/
@ 2022-05-28 23:36 Sam James
0 siblings, 0 replies; 5+ messages in thread
From: Sam James @ 2022-05-28 23:36 UTC (permalink / raw
To: gentoo-commits
commit: ce1ac49c2c52611e507c4ec853f5eef3770aa723
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat May 28 23:19:08 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat May 28 23:36:28 2022 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=ce1ac49c
12.1.0: restore 26_all_enable-cet.patch
Got lost apparently in 11->12 migration.
Bug: https://bugs.gentoo.org/822036
Signed-off-by: Sam James <sam <AT> gentoo.org>
12.1.0/gentoo/26_all_enable-cet.patch | 57 +++++++++++++++++++++++++++++++++++
12.1.0/gentoo/README.history | 4 +++
2 files changed, 61 insertions(+)
diff --git a/12.1.0/gentoo/26_all_enable-cet.patch b/12.1.0/gentoo/26_all_enable-cet.patch
new file mode 100644
index 0000000..5df5bb1
--- /dev/null
+++ b/12.1.0/gentoo/26_all_enable-cet.patch
@@ -0,0 +1,57 @@
+From 83efc6ce009021f27b602c1dfcf65338f761b095 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 28 Dec 2021 03:42:53 +0000
+Subject: [PATCH] Enable CET (-fcf-protection=full) by default
+
+Needs:
+- CET to be enabled for GCC
+- -DEXTRA_OPTIONS_CF to be passed during build (via toolchain.eclass).
+
+ Only supported on amd64.
+
+---
+ gcc/config/i386/i386-options.cc | 3 +++
+ gcc/defaults.h | 13 +++++++++++++
+ 2 files changed, 16 insertions(+)
+
+diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
+index 19632b5..fac61af 100644
+--- a/gcc/config/i386/i386-options.cc
++++ b/gcc/config/i386/i386-options.cc
+@@ -3049,6 +3049,9 @@ ix86_option_override_internal (bool main_args_p,
+ = build_target_option_node (opts, opts_set);
+ }
+
++ if (TARGET_64BIT && TARGET_CMOV)
++ SET_OPTION_IF_UNSET (opts, opts_set, flag_cf_protection, DEFAULT_FLAG_CF);
++
+ if (opts->x_flag_cf_protection != CF_NONE)
+ {
+ if ((opts->x_flag_cf_protection & CF_BRANCH) == CF_BRANCH
+diff --git a/gcc/defaults.h b/gcc/defaults.h
+index 0f6cd78..5694412 100644
+--- a/gcc/defaults.h
++++ b/gcc/defaults.h
+@@ -1463,6 +1463,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ #define DEFAULT_FLAG_SCP 0
+ #endif
+
++/* Default value for flag_cf_protection when flag_cf_protection is
++ initialized to CF_FULL.
++
++ We use a new option (EXTRA_OPTIONS_CF) here to avoid turning
++ this on accidentally for other arches. */
++#ifdef EXTRA_OPTIONS_CF
++#define DEFAULT_FLAG_CF CF_FULL
++#endif
++#ifndef DEFAULT_FLAG_CF
++#define DEFAULT_FLAG_CF CF_NONE
++#endif
++
++
+ /* By default, the C++ compiler will use function addresses in the
+ vtable entries. Setting this nonzero tells the compiler to use
+ function descriptors instead. The value of this macro says how
+--
+2.34.1
+
diff --git a/12.1.0/gentoo/README.history b/12.1.0/gentoo/README.history
index 383b57a..d3793cb 100644
--- a/12.1.0/gentoo/README.history
+++ b/12.1.0/gentoo/README.history
@@ -1,3 +1,7 @@
+6 29 May 2022
+
+ + 26_all_enable-cet.patch
+
5 25 Apr 2022
- 01_all_default-fortify-source.patch
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/gcc-patches:master commit in: 12.1.0/gentoo/
@ 2022-06-02 7:15 Sam James
0 siblings, 0 replies; 5+ messages in thread
From: Sam James @ 2022-06-02 7:15 UTC (permalink / raw
To: gentoo-commits
commit: d67ec824d290c0e678b1d7d71ba47e24e2d892ca
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon May 30 06:41:16 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jun 2 07:15:27 2022 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=d67ec824
12.1.0: update CET patch
Bug: https://bugs.gentoo.org/822036
Signed-off-by: Sam James <sam <AT> gentoo.org>
12.1.0/gentoo/26_all_enable-cet.patch | 225 ++++++++++++++++++++++++++++------
12.1.0/gentoo/README.history | 4 +
2 files changed, 191 insertions(+), 38 deletions(-)
diff --git a/12.1.0/gentoo/26_all_enable-cet.patch b/12.1.0/gentoo/26_all_enable-cet.patch
index 5df5bb1..1d0c04f 100644
--- a/12.1.0/gentoo/26_all_enable-cet.patch
+++ b/12.1.0/gentoo/26_all_enable-cet.patch
@@ -1,6 +1,7 @@
-From 83efc6ce009021f27b602c1dfcf65338f761b095 Mon Sep 17 00:00:00 2001
+https://bugs.gentoo.org/822036
+https://salsa.debian.org/toolchain-team/gcc/-/blob/master/debian/patches/gcc-distro-specs.diff
+
From: Sam James <sam@gentoo.org>
-Date: Tue, 28 Dec 2021 03:42:53 +0000
Subject: [PATCH] Enable CET (-fcf-protection=full) by default
Needs:
@@ -8,32 +9,57 @@ Needs:
- -DEXTRA_OPTIONS_CF to be passed during build (via toolchain.eclass).
Only supported on amd64.
-
----
- gcc/config/i386/i386-options.cc | 3 +++
- gcc/defaults.h | 13 +++++++++++++
- 2 files changed, 16 insertions(+)
-
-diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
-index 19632b5..fac61af 100644
---- a/gcc/config/i386/i386-options.cc
-+++ b/gcc/config/i386/i386-options.cc
-@@ -3049,6 +3049,9 @@ ix86_option_override_internal (bool main_args_p,
- = build_target_option_node (opts, opts_set);
- }
-
-+ if (TARGET_64BIT && TARGET_CMOV)
-+ SET_OPTION_IF_UNSET (opts, opts_set, flag_cf_protection, DEFAULT_FLAG_CF);
-+
- if (opts->x_flag_cf_protection != CF_NONE)
- {
- if ((opts->x_flag_cf_protection & CF_BRANCH) == CF_BRANCH
-diff --git a/gcc/defaults.h b/gcc/defaults.h
-index 0f6cd78..5694412 100644
---- a/gcc/defaults.h
-+++ b/gcc/defaults.h
-@@ -1463,6 +1463,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- #define DEFAULT_FLAG_SCP 0
+--- a/gcc/cp/lang-specs.h
++++ b/gcc/cp/lang-specs.h
+@@ -51,7 +51,7 @@ along with GCC; see the file COPYING3. If not see
+ " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
+ " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
+ " %{fmodules-ts:-fmodule-header %{fpreprocessed:-fdirectives-only}}"
+- " %(cc1_options) %2"
++ " %(cc1_options) %(default_flag_cf_spec) %2"
+ " %{!fsyntax-only:"
+ " %{!S:-o %g.s%V}"
+ " %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:"
+@@ -72,7 +72,7 @@ along with GCC; see the file COPYING3. If not see
+ " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
+ " %{fmodules-ts:-fmodule-header=system"
+ " %{fpreprocessed:-fdirectives-only}}"
+- " %(cc1_options) %2"
++ " %(cc1_options) %(default_flag_cf_spec) %2"
+ " %{!fsyntax-only:"
+ " %{!S:-o %g.s%V}"
+ " %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:"
+@@ -92,7 +92,7 @@ along with GCC; see the file COPYING3. If not see
+ " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
+ " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
+ " %{fmodules-ts:-fmodule-header=user %{fpreprocessed:-fdirectives-only}}"
+- " %(cc1_options) %2"
++ " %(cc1_options) %(default_flag_cf_spec) %2"
+ " %{!fsyntax-only:"
+ " %{!S:-o %g.s%V}"
+ " %{!fmodule-*:%{!fmodules-*:%{!fdump-ada-spec*:"
+@@ -107,7 +107,7 @@ along with GCC; see the file COPYING3. If not see
+ " cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed"
+ " %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}"
+ " %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}"
+- " %(cc1_options) %2"
++ " %(cc1_options) %(default_flag_cf_spec) %2"
+ " %{!fsyntax-only:"
+ " %{fmodule-only:%{!S:-o %g.s%V}}"
+ " %{!fmodule-only:%(invoke_as)}}"
+@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3. If not see
+ {".ii", "@c++-cpp-output", 0, 0, 0},
+ {"@c++-cpp-output",
+ "%{!E:%{!M:%{!MM:"
+- " cc1plus -fpreprocessed %i %(cc1_options) %2"
++ " cc1plus -fpreprocessed %i %(cc1_options) %(default_flag_cf_spec) %2"
+ " %{!fsyntax-only:"
+ " %{fmodule-only:%{!S:-o %g.s%V}}"
+ " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -1007,6 +1007,18 @@ proper position among the other output files. */
+ #define LINK_NOW_SPEC ""
#endif
+/* Default value for flag_cf_protection when flag_cf_protection is
@@ -42,16 +68,139 @@ index 0f6cd78..5694412 100644
+ We use a new option (EXTRA_OPTIONS_CF) here to avoid turning
+ this on accidentally for other arches. */
+#ifdef EXTRA_OPTIONS_CF
-+#define DEFAULT_FLAG_CF CF_FULL
++#define DEFAULT_FLAG_CF_SPEC " %{!m16:%{!m32:%{!fcf-protection*:%{!fno-cf-protection:-fcf-protection}}}}"
+#endif
-+#ifndef DEFAULT_FLAG_CF
-+#define DEFAULT_FLAG_CF CF_NONE
++#ifndef DEFAULT_FLAG_CF_SPEC
++#define DEFAULT_FLAG_CF_SPEC ""
+#endif
+
-+
- /* By default, the C++ compiler will use function addresses in the
- vtable entries. Setting this nonzero tells the compiler to use
- function descriptors instead. The value of this macro says how
---
-2.34.1
-
+ #ifdef ENABLE_DEFAULT_PIE
+ #define PIE_SPEC "!no-pie"
+ #define NO_FPIE1_SPEC "fno-pie"
+@@ -1209,6 +1221,7 @@ static const char *cpp_spec = CPP_SPEC;
+ static const char *cc1_spec = CC1_SPEC;
+ static const char *cc1plus_spec = CC1PLUS_SPEC;
+ static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC;
++static const char *default_flag_cf_spec = DEFAULT_FLAG_CF_SPEC;
+ static const char *link_ssp_spec = LINK_SSP_SPEC;
+ static const char *asm_spec = ASM_SPEC;
+ static const char *asm_final_spec = ASM_FINAL_SPEC;
+@@ -1267,7 +1280,7 @@ static const char *cpp_options =
+ "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
+ %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
+ %{!fno-working-directory:-fworking-directory}}} %{O*}\
+- %{undef} %{save-temps*:-fpch-preprocess}";
++ %{undef} %{save-temps*:-fpch-preprocess} %(default_flag_cf_spec)";
+
+ /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
+
+@@ -1456,9 +1469,9 @@ static const struct compiler default_compilers[] =
+ %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
+ %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
+ cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
+- %(cc1_options)}\
++ %(cc1_options)%(default_flag_cf_spec)}\
+ %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
+- cc1 %(cpp_unique_options) %(cc1_options)}}}\
++ cc1 %(cpp_unique_options) %(cc1_options) %(default_flag_cf_spec)}}}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1},
+ {"-",
+ "%{!E:%e-E or -x required when input is from standard input}\
+@@ -1472,18 +1485,18 @@ static const struct compiler default_compilers[] =
+ %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
+ %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
+ cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
+- %(cc1_options)\
++ %(cc1_options) %(default_flag_cf_spec)\
+ %{!fsyntax-only:%{!S:-o %g.s} \
+ %{!fdump-ada-spec*:%{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}}%V}}\
+ %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
+- cc1 %(cpp_unique_options) %(cc1_options)\
++ cc1 %(cpp_unique_options) %(cc1_options) %(default_flag_cf_spec)\
+ %{!fsyntax-only:%{!S:-o %g.s} \
+ %{!fdump-ada-spec*:%{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
+ {".i", "@cpp-output", 0, 0, 0},
+ {"@cpp-output",
+- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(default_flag_cf_spec) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {".s", "@assembler", 0, 0, 0},
+ {"@assembler",
+ "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
+@@ -1715,6 +1728,7 @@ static struct spec_list static_specs[] =
+ INIT_STATIC_SPEC ("cc1_options", &cc1_options),
+ INIT_STATIC_SPEC ("cc1plus", &cc1plus_spec),
+ INIT_STATIC_SPEC ("link_gcc_c_sequence", &link_gcc_c_sequence_spec),
++ INIT_STATIC_SPEC ("default_flag_cf_spec", &default_flag_cf_spec),
+ INIT_STATIC_SPEC ("link_ssp", &link_ssp_spec),
+ INIT_STATIC_SPEC ("endfile", &endfile_spec),
+ INIT_STATIC_SPEC ("link", &link_spec),
+--- a/gcc/objc/lang-specs.h
++++ b/gcc/objc/lang-specs.h
+@@ -29,9 +29,9 @@ along with GCC; see the file COPYING3. If not see
+ %{traditional|traditional-cpp:\
+ %eGNU Objective C no longer supports traditional compilation}\
+ %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\
+- cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\
++ cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %(default_flag_cf_spec) %{print-objc-runtime-info} %{gen-decls}}\
+ %{!save-temps*:%{!no-integrated-cpp:\
+- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\
++ cc1obj %(cpp_unique_options) %(cc1_options) %(default_flag_cf_spec) %{print-objc-runtime-info} %{gen-decls}}}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objective-c-header",
+ "%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\
+@@ -40,18 +40,18 @@ along with GCC; see the file COPYING3. If not see
+ %{traditional|traditional-cpp:\
+ %eGNU Objective C no longer supports traditional compilation}\
+ %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\
+- cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ cc1obj -fpreprocessed %b.mi %(cc1_options) %(default_flag_cf_spec) %{print-objc-runtime-info} %{gen-decls}\
+ -o %g.s %{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}%V}\
+ %{!save-temps*:%{!no-integrated-cpp:\
+- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ cc1obj %(cpp_unique_options) %(cc1_options) %(default_flag_cf_spec) %{print-objc-runtime-info} %{gen-decls}\
+ -o %g.s %{!o*:--output-pch=%i.gch}\
+ %W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0},
+ {".mi", "@objective-c-cpp-output", 0, 0, 0},
+ {"@objective-c-cpp-output",
+- "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(default_flag_cf_spec) %{print-objc-runtime-info} %{gen-decls}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objc-cpp-output",
+ "%nobjc-cpp-output is deprecated; please use objective-c-cpp-output instead\n\
+- %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
++ %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(default_flag_cf_spec) %{print-objc-runtime-info} %{gen-decls}\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+--- a/gcc/objcp/lang-specs.h
++++ b/gcc/objcp/lang-specs.h
+@@ -36,7 +36,7 @@ along with GCC; see the file COPYING3. If not see
+ %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
+ cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
+ %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+- %(cc1_options) %2\
++ %(cc1_options) %(default_flag_cf_spec) %2\
+ -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {"@objective-c++",
+@@ -46,16 +46,16 @@ along with GCC; see the file COPYING3. If not see
+ %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\
+ cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
+ %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
+- %(cc1_options) %2\
++ %(cc1_options) %(default_flag_cf_spec) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}",
+ CPLUSPLUS_CPP_SPEC, 0, 0},
+ {".mii", "@objective-c++-cpp-output", 0, 0, 0},
+ {"@objective-c++-cpp-output",
+ "%{!M:%{!MM:%{!E:\
+- cc1objplus -fpreprocessed %i %(cc1_options) %2\
++ cc1objplus -fpreprocessed %i %(cc1_options) %(default_flag_cf_spec) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {"@objc++-cpp-output",
+ "%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output instead\n\
+ %{!M:%{!MM:%{!E:\
+- cc1objplus -fpreprocessed %i %(cc1_options) %2\
++ cc1objplus -fpreprocessed %i %(cc1_options) %(default_flag_cf_spec) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
diff --git a/12.1.0/gentoo/README.history b/12.1.0/gentoo/README.history
index d3793cb..9b64fee 100644
--- a/12.1.0/gentoo/README.history
+++ b/12.1.0/gentoo/README.history
@@ -1,3 +1,7 @@
+7 30 May 2022
+
+ U 26_all_enable-cet.patch
+
6 29 May 2022
+ 26_all_enable-cet.patch
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/gcc-patches:master commit in: 12.1.0/gentoo/
@ 2022-06-11 0:44 Sam James
0 siblings, 0 replies; 5+ messages in thread
From: Sam James @ 2022-06-11 0:44 UTC (permalink / raw
To: gentoo-commits
commit: 157706891234f2c72c5b62f3bd7f63b75298a71d
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 10 11:44:45 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 11 00:44:12 2022 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=15770689
12.1.0: backport ICE fix for cxx_eval_constant_expression
Bug: https://bugs.gentoo.org/847601
Signed-off-by: Sam James <sam <AT> gentoo.org>
...6_12.1.0-ICE-cxx_eval_constant_expression.patch | 100 +++++++++++++++++++++
12.1.0/gentoo/README.history | 3 +
2 files changed, 103 insertions(+)
diff --git a/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch b/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch
new file mode 100644
index 0000000..49bf69a
--- /dev/null
+++ b/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch
@@ -0,0 +1,100 @@
+https://bugs.gentoo.org/847601
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105756
+https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=0ecb6b906f215ec56df1a555139abe9ad95414fb
+
+From 0ecb6b906f215ec56df1a555139abe9ad95414fb Mon Sep 17 00:00:00 2001
+From: Patrick Palka <ppalka@redhat.com>
+Date: Fri, 3 Jun 2022 14:58:22 -0400
+Subject: [PATCH] c++: value-dep but not type-dep decltype expr [PR105756]
+
+Here during ahead of time instantiation of the value-dependent but not
+type-dependent decltype expression (5 % N) == 0, cp_build_binary_op folds
+the operands of the == via cp_fully_fold, which performs speculative
+constexpr evaluation, and from which we crash for (5 % N) due to the
+value-dependence.
+
+Since the operand folding performed by cp_build_binary_op appears to
+be solely for sake of diagnosing overflow, and since these diagnostics
+are suppressed when in an unevaluated context, this patch avoids this
+crash by suppressing cp_build_binary_op's operand folding accordingly.
+
+ PR c++/105756
+
+gcc/cp/ChangeLog:
+
+ * typeck.cc (cp_build_binary_op): Don't fold operands
+ when c_inhibit_evaluation_warnings.
+
+gcc/testsuite/ChangeLog:
+
+ * g++.dg/cpp0x/decltype82.C: New test.
+--- a/gcc/cp/typeck.cc
++++ b/gcc/cp/typeck.cc
+@@ -4939,7 +4939,7 @@ cp_build_binary_op (const op_location_t &location,
+ convert it to this type. */
+ tree final_type = 0;
+
+- tree result, result_ovl;
++ tree result;
+
+ /* Nonzero if this is an operation like MIN or MAX which can
+ safely be computed in short if both args are promoted shorts.
+@@ -6263,25 +6263,29 @@ cp_build_binary_op (const op_location_t &location,
+ result = build2 (COMPOUND_EXPR, TREE_TYPE (result),
+ instrument_expr, result);
+
+- if (!processing_template_decl)
++ if (resultcode == SPACESHIP_EXPR && !processing_template_decl)
++ result = get_target_expr_sfinae (result, complain);
++
++ if (!c_inhibit_evaluation_warnings)
+ {
+- if (resultcode == SPACESHIP_EXPR)
+- result = get_target_expr_sfinae (result, complain);
+- op0 = cp_fully_fold (op0);
+- /* Only consider the second argument if the first isn't overflowed. */
+- if (!CONSTANT_CLASS_P (op0) || TREE_OVERFLOW_P (op0))
+- return result;
+- op1 = cp_fully_fold (op1);
+- if (!CONSTANT_CLASS_P (op1) || TREE_OVERFLOW_P (op1))
++ if (!processing_template_decl)
++ {
++ op0 = cp_fully_fold (op0);
++ /* Only consider the second argument if the first isn't overflowed. */
++ if (!CONSTANT_CLASS_P (op0) || TREE_OVERFLOW_P (op0))
++ return result;
++ op1 = cp_fully_fold (op1);
++ if (!CONSTANT_CLASS_P (op1) || TREE_OVERFLOW_P (op1))
++ return result;
++ }
++ else if (!CONSTANT_CLASS_P (op0) || !CONSTANT_CLASS_P (op1)
++ || TREE_OVERFLOW_P (op0) || TREE_OVERFLOW_P (op1))
+ return result;
+- }
+- else if (!CONSTANT_CLASS_P (op0) || !CONSTANT_CLASS_P (op1)
+- || TREE_OVERFLOW_P (op0) || TREE_OVERFLOW_P (op1))
+- return result;
+
+- result_ovl = fold_build2 (resultcode, build_type, op0, op1);
+- if (TREE_OVERFLOW_P (result_ovl))
+- overflow_warning (location, result_ovl);
++ tree result_ovl = fold_build2 (resultcode, build_type, op0, op1);
++ if (TREE_OVERFLOW_P (result_ovl))
++ overflow_warning (location, result_ovl);
++ }
+
+ return result;
+ }
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/cpp0x/decltype82.C
+@@ -0,0 +1,10 @@
++// PR c++/105756
++// { dg-do compile { target c++11 } }
++
++template<int N>
++void f() {
++ using ty1 = decltype((5 % N) == 0);
++ using ty2 = decltype((5 / N) == 0);
++}
++
++template void f<0>();
diff --git a/12.1.0/gentoo/README.history b/12.1.0/gentoo/README.history
index 9b64fee..840d46e 100644
--- a/12.1.0/gentoo/README.history
+++ b/12.1.0/gentoo/README.history
@@ -1,3 +1,6 @@
+8 ?? ??? ????
+ + 75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch
+
7 30 May 2022
U 26_all_enable-cet.patch
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/gcc-patches:master commit in: 12.1.0/gentoo/
@ 2022-06-12 0:03 Sam James
0 siblings, 0 replies; 5+ messages in thread
From: Sam James @ 2022-06-12 0:03 UTC (permalink / raw
To: gentoo-commits
commit: 750000d5c40334ae801fba6050b3027a8d86627e
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 12 00:03:38 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun 12 00:03:38 2022 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=750000d5
12.1.0: drop obsolete patch
It's in the next snapshot.
Bug: https://bugs.gentoo.org/847601
Signed-off-by: Sam James <sam <AT> gentoo.org>
...6_12.1.0-ICE-cxx_eval_constant_expression.patch | 100 ---------------------
12.1.0/gentoo/README.history | 3 -
2 files changed, 103 deletions(-)
diff --git a/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch b/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch
deleted file mode 100644
index 49bf69a..0000000
--- a/12.1.0/gentoo/75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-https://bugs.gentoo.org/847601
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105756
-https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=0ecb6b906f215ec56df1a555139abe9ad95414fb
-
-From 0ecb6b906f215ec56df1a555139abe9ad95414fb Mon Sep 17 00:00:00 2001
-From: Patrick Palka <ppalka@redhat.com>
-Date: Fri, 3 Jun 2022 14:58:22 -0400
-Subject: [PATCH] c++: value-dep but not type-dep decltype expr [PR105756]
-
-Here during ahead of time instantiation of the value-dependent but not
-type-dependent decltype expression (5 % N) == 0, cp_build_binary_op folds
-the operands of the == via cp_fully_fold, which performs speculative
-constexpr evaluation, and from which we crash for (5 % N) due to the
-value-dependence.
-
-Since the operand folding performed by cp_build_binary_op appears to
-be solely for sake of diagnosing overflow, and since these diagnostics
-are suppressed when in an unevaluated context, this patch avoids this
-crash by suppressing cp_build_binary_op's operand folding accordingly.
-
- PR c++/105756
-
-gcc/cp/ChangeLog:
-
- * typeck.cc (cp_build_binary_op): Don't fold operands
- when c_inhibit_evaluation_warnings.
-
-gcc/testsuite/ChangeLog:
-
- * g++.dg/cpp0x/decltype82.C: New test.
---- a/gcc/cp/typeck.cc
-+++ b/gcc/cp/typeck.cc
-@@ -4939,7 +4939,7 @@ cp_build_binary_op (const op_location_t &location,
- convert it to this type. */
- tree final_type = 0;
-
-- tree result, result_ovl;
-+ tree result;
-
- /* Nonzero if this is an operation like MIN or MAX which can
- safely be computed in short if both args are promoted shorts.
-@@ -6263,25 +6263,29 @@ cp_build_binary_op (const op_location_t &location,
- result = build2 (COMPOUND_EXPR, TREE_TYPE (result),
- instrument_expr, result);
-
-- if (!processing_template_decl)
-+ if (resultcode == SPACESHIP_EXPR && !processing_template_decl)
-+ result = get_target_expr_sfinae (result, complain);
-+
-+ if (!c_inhibit_evaluation_warnings)
- {
-- if (resultcode == SPACESHIP_EXPR)
-- result = get_target_expr_sfinae (result, complain);
-- op0 = cp_fully_fold (op0);
-- /* Only consider the second argument if the first isn't overflowed. */
-- if (!CONSTANT_CLASS_P (op0) || TREE_OVERFLOW_P (op0))
-- return result;
-- op1 = cp_fully_fold (op1);
-- if (!CONSTANT_CLASS_P (op1) || TREE_OVERFLOW_P (op1))
-+ if (!processing_template_decl)
-+ {
-+ op0 = cp_fully_fold (op0);
-+ /* Only consider the second argument if the first isn't overflowed. */
-+ if (!CONSTANT_CLASS_P (op0) || TREE_OVERFLOW_P (op0))
-+ return result;
-+ op1 = cp_fully_fold (op1);
-+ if (!CONSTANT_CLASS_P (op1) || TREE_OVERFLOW_P (op1))
-+ return result;
-+ }
-+ else if (!CONSTANT_CLASS_P (op0) || !CONSTANT_CLASS_P (op1)
-+ || TREE_OVERFLOW_P (op0) || TREE_OVERFLOW_P (op1))
- return result;
-- }
-- else if (!CONSTANT_CLASS_P (op0) || !CONSTANT_CLASS_P (op1)
-- || TREE_OVERFLOW_P (op0) || TREE_OVERFLOW_P (op1))
-- return result;
-
-- result_ovl = fold_build2 (resultcode, build_type, op0, op1);
-- if (TREE_OVERFLOW_P (result_ovl))
-- overflow_warning (location, result_ovl);
-+ tree result_ovl = fold_build2 (resultcode, build_type, op0, op1);
-+ if (TREE_OVERFLOW_P (result_ovl))
-+ overflow_warning (location, result_ovl);
-+ }
-
- return result;
- }
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/cpp0x/decltype82.C
-@@ -0,0 +1,10 @@
-+// PR c++/105756
-+// { dg-do compile { target c++11 } }
-+
-+template<int N>
-+void f() {
-+ using ty1 = decltype((5 % N) == 0);
-+ using ty2 = decltype((5 / N) == 0);
-+}
-+
-+template void f<0>();
diff --git a/12.1.0/gentoo/README.history b/12.1.0/gentoo/README.history
index 840d46e..9b64fee 100644
--- a/12.1.0/gentoo/README.history
+++ b/12.1.0/gentoo/README.history
@@ -1,6 +1,3 @@
-8 ?? ??? ????
- + 75_all_all_PR105756_12.1.0-ICE-cxx_eval_constant_expression.patch
-
7 30 May 2022
U 26_all_enable-cet.patch
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/gcc-patches:master commit in: 12.1.0/gentoo/
@ 2022-07-03 0:57 Sam James
0 siblings, 0 replies; 5+ messages in thread
From: Sam James @ 2022-07-03 0:57 UTC (permalink / raw
To: gentoo-commits
commit: 1acb0022d8e6578a26985b0016757581e43af072
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 26 04:00:41 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun 26 04:00:41 2022 +0000
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=1acb0022
12.1.0: add 28_all_drop_CFLAGS_sed.patch
Bug: https://bugs.gentoo.org/849722
Signed-off-by: Sam James <sam <AT> gentoo.org>
...n-objdump.patch => 27_all_plugin-objdump.patch} | 0
12.1.0/gentoo/28_all_drop_CFLAGS_sed.patch | 35 ++++++++++++++++++++++
12.1.0/gentoo/README.history | 4 +++
3 files changed, 39 insertions(+)
diff --git a/12.1.0/gentoo/26_all_plugin-objdump.patch b/12.1.0/gentoo/27_all_plugin-objdump.patch
similarity index 100%
rename from 12.1.0/gentoo/26_all_plugin-objdump.patch
rename to 12.1.0/gentoo/27_all_plugin-objdump.patch
diff --git a/12.1.0/gentoo/28_all_drop_CFLAGS_sed.patch b/12.1.0/gentoo/28_all_drop_CFLAGS_sed.patch
new file mode 100644
index 0000000..764f34c
--- /dev/null
+++ b/12.1.0/gentoo/28_all_drop_CFLAGS_sed.patch
@@ -0,0 +1,35 @@
+https://bugs.gentoo.org/849722
+https://github.com/InBetweenNames/gentooLTO/issues/846
+https://github.com/vaeth/portage-bashrc-mv/issues/11
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -5388,13 +5388,6 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+-# Remove the -O2: for historical reasons, unless bootstrapping we prefer
+-# optimizations to be activated explicitly by the toplevel.
+-case "$CC" in
+- */prev-gcc/xgcc*) ;;
+- *) CFLAGS=`echo "$CFLAGS " | sed -e "s/-Ofast[ ]//" -e "s/-O[gs][ ]//" -e "s/-O[0-9]*[ ]//" `
+- CXXFLAGS=`echo "$CXXFLAGS " | sed -e "s/-Ofast[ ]//" -e "s/-O[gs][ ]//" -e "s/-O[0-9]*[ ]//" ` ;;
+-esac
+
+
+
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -440,13 +440,6 @@ ACX_PROG_GDC([-I"$srcdir"/d])
+ # Do configure tests with the C++ compiler, since that's what we build with.
+ AC_LANG(C++)
+
+-# Remove the -O2: for historical reasons, unless bootstrapping we prefer
+-# optimizations to be activated explicitly by the toplevel.
+-case "$CC" in
+- */prev-gcc/xgcc*) ;;
+- *) CFLAGS=`echo "$CFLAGS " | sed -e "s/-Ofast[[ ]]//" -e "s/-O[[gs]][[ ]]//" -e "s/-O[[0-9]]*[[ ]]//" `
+- CXXFLAGS=`echo "$CXXFLAGS " | sed -e "s/-Ofast[[ ]]//" -e "s/-O[[gs]][[ ]]//" -e "s/-O[[0-9]]*[[ ]]//" ` ;;
+-esac
+ AC_SUBST(CFLAGS)
+ AC_SUBST(CXXFLAGS)
+ AC_SUBST(GDCFLAGS)
diff --git a/12.1.0/gentoo/README.history b/12.1.0/gentoo/README.history
index 9b64fee..04019c0 100644
--- a/12.1.0/gentoo/README.history
+++ b/12.1.0/gentoo/README.history
@@ -1,3 +1,7 @@
+8 26 Jun 2022
+
+ + 28_all_drop_CFLAGS_sed.patch
+
7 30 May 2022
U 26_all_enable-cet.patch
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-07-03 0:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-03 0:57 [gentoo-commits] proj/gcc-patches:master commit in: 12.1.0/gentoo/ Sam James
-- strict thread matches above, loose matches on Subject: below --
2022-06-12 0:03 Sam James
2022-06-11 0:44 Sam James
2022-06-02 7:15 Sam James
2022-05-28 23:36 Sam James
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox