summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/crossgcc/patches/gcc-8.3.0_libcpp.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/util/crossgcc/patches/gcc-8.3.0_libcpp.patch b/util/crossgcc/patches/gcc-8.3.0_libcpp.patch
new file mode 100644
index 0000000000..124637e001
--- /dev/null
+++ b/util/crossgcc/patches/gcc-8.3.0_libcpp.patch
@@ -0,0 +1,56 @@
+GCC with `-Wformat-security -Werror=format-security` hardening options enabled
+by default rejects some codes in libcpp. This patch fixes them.
+
+--- gcc-8.3.0/libcpp/expr.c.bak 2020-09-11 15:44:45.770000000 +0900
++++ gcc-8.3.0/libcpp/expr.c 2020-09-11 15:46:22.370000000 +0900
+@@ -794,10 +794,10 @@
+
+ if (CPP_OPTION (pfile, c99))
+ cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
+- 0, message);
++ 0, "%s", message);
+ else
+ cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
+- virtual_location, 0, message);
++ virtual_location, 0, "%s", message);
+ }
+
+ result |= CPP_N_INTEGER;
+--- gcc-8.3.0/libcpp/macro.c.bak 2020-09-11 16:01:42.550000000 +0900
++++ gcc-8.3.0/libcpp/macro.c 2020-09-11 16:03:47.850000000 +0900
+@@ -160,7 +160,7 @@
+ if (m_state == 2 && token->type == CPP_PASTE)
+ {
+ cpp_error_at (m_pfile, CPP_DL_ERROR, token->src_loc,
+- vaopt_paste_error);
++ "%s", vaopt_paste_error);
+ return ERROR;
+ }
+ /* Advance states before further considering this token, in
+@@ -189,7 +189,7 @@
+ if (was_paste)
+ {
+ cpp_error_at (m_pfile, CPP_DL_ERROR, token->src_loc,
+- vaopt_paste_error);
++ "%s", vaopt_paste_error);
+ return ERROR;
+ }
+
+@@ -3361,7 +3361,7 @@
+ function-like macros, but not at the end. */
+ if (following_paste_op)
+ {
+- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
++ cpp_error (pfile, CPP_DL_ERROR, "%s", paste_op_error_msg);
+ return false;
+ }
+ break;
+@@ -3374,7 +3374,7 @@
+ function-like macros, but not at the beginning. */
+ if (macro->count == 1)
+ {
+- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
++ cpp_error (pfile, CPP_DL_ERROR, "%s", paste_op_error_msg);
+ return false;
+ }
+