Browse Source

add big-hammer patch for GCC bug 95189

this is a critical wrong-codegen bug in gcc 9 and 10 that can have
security impact, and oddly the fix still does not seem to have been
backported, so just disable builtin memcmp expansion entirely until
there's a known-good fix.
Rich Felker 3 năm trước cách đây
mục cha
commit
30454c5887

+ 11 - 0
patches/gcc-9.2.0/0019-broken-builtin-memcmp.diff

@@ -0,0 +1,11 @@
+diff -ur gcc-9.3.0.orig/gcc/builtins.c gcc-9.3.0/gcc/builtins.c
+--- gcc-9.3.0.orig/gcc/builtins.c	2020-03-12 11:07:21.000000000 +0000
++++ gcc-9.3.0/gcc/builtins.c	2020-09-23 22:16:54.815251679 +0000
+@@ -4658,6 +4658,7 @@
+ static rtx
+ expand_builtin_memcmp (tree exp, rtx target, bool result_eq)
+ {
++  return NULL_RTX;
+   if (!validate_arglist (exp,
+  			 POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
+     return NULL_RTX;

+ 11 - 0
patches/gcc-9.4.0/0019-broken-builtin-memcmp.diff

@@ -0,0 +1,11 @@
+diff -ur gcc-9.3.0.orig/gcc/builtins.c gcc-9.3.0/gcc/builtins.c
+--- gcc-9.3.0.orig/gcc/builtins.c	2020-03-12 11:07:21.000000000 +0000
++++ gcc-9.3.0/gcc/builtins.c	2020-09-23 22:16:54.815251679 +0000
+@@ -4658,6 +4658,7 @@
+ static rtx
+ expand_builtin_memcmp (tree exp, rtx target, bool result_eq)
+ {
++  return NULL_RTX;
+   if (!validate_arglist (exp,
+  			 POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
+     return NULL_RTX;