public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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