summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2021-03-08 18:01:50 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-03-10 10:30:39 +0000
commit036dd67bf6a35f212ef966228f3fee7a5a9c6cbe (patch)
tree1ee9ae5af41920d03917466c8c256e1199e96562 /meta
parent81adf49416eeaa16accd028e4c24db2a818cd44b (diff)
downloadpoky-036dd67bf6a35f212ef966228f3fee7a5a9c6cbe.tar.gz
gcc: add an option for --enable-poison-system-directories to be fatal
Extend --enable-poison-system-directories so that it can be an error instead of a warning by default. (From OE-Core rev: 1fcaa5f452b2c6b93a6f3dfd57f894cbef5e3379) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch56
1 files changed, 53 insertions, 3 deletions
diff --git a/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
index 30a8486016..333d543dd9 100644
--- a/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
+++ b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
@@ -44,7 +44,7 @@ diff --git a/gcc/config.in b/gcc/config.in
44index 809e7b26823..5adeaeed36b 100644 44index 809e7b26823..5adeaeed36b 100644
45--- a/gcc/config.in 45--- a/gcc/config.in
46+++ b/gcc/config.in 46+++ b/gcc/config.in
47@@ -224,6 +224,12 @@ 47@@ -224,6 +224,16 @@
48 #endif 48 #endif
49 49
50 50
@@ -52,6 +52,10 @@ index 809e7b26823..5adeaeed36b 100644
52+#ifndef USED_FOR_TARGET 52+#ifndef USED_FOR_TARGET
53+#undef ENABLE_POISON_SYSTEM_DIRECTORIES 53+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
54+#endif 54+#endif
55+/* Define to warn for use of native system header directories */
56+#ifndef USED_FOR_TARGET
57+#undef POISON_BY_DEFAULT
58+#endif
55+ 59+
56+ 60+
57 /* Define if you want all operations on RTL (the basic data structure of the 61 /* Define if you want all operations on RTL (the basic data structure of the
@@ -78,7 +82,7 @@ index cd3d9516fce..8de766a942c 100755
78 --enable-plugin enable plugin support 82 --enable-plugin enable plugin support
79 --enable-host-shared build host code as shared libraries 83 --enable-host-shared build host code as shared libraries
80 --disable-libquadmath-support 84 --disable-libquadmath-support
81@@ -30235,6 +30238,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : 85@@ -30235,6 +30238,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
82 fi 86 fi
83 87
84 88
@@ -89,9 +93,12 @@ index cd3d9516fce..8de766a942c 100755
89+ enable_poison_system_directories=no 93+ enable_poison_system_directories=no
90+fi 94+fi
91+ 95+
92+if test "x${enable_poison_system_directories}" = "xyes"; then 96+if test "x${enable_poison_system_directories}" != "xno"; then
93+ 97+
94+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h 98+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
99+if test "$enable_poison_system_directories" = "error"; then
100+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
101+fi
95+ 102+
96+fi 103+fi
97+ 104+
@@ -198,3 +205,46 @@ index 8a2bda00f80..9098ab044ab 100644
198 } 205 }
199 206
200 /* Use given -I paths for #include "..." but not #include <...>, and 207 /* Use given -I paths for #include "..." but not #include <...>, and
208diff --git a/gcc/configure.ac b/gcc/configure.ac
209index f42006e5476..de7e176ea53 100644
210--- a/gcc/configure.ac
211+++ b/gcc/configure.ac
212@@ -6602,12 +6602,18 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
213
214 AC_ARG_ENABLE([poison-system-directories],
215 AS_HELP_STRING([--enable-poison-system-directories],
216- [warn for use of native system header directories]),,
217+ [warn for use of native system header directories (no/yes/error)]),,
218 [enable_poison_system_directories=no])
219+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
220-if test "x${enable_poison_system_directories}" = "xyes"; then
221+if test "x${enable_poison_system_directories}" != "xno"; then
222+ AC_MSG_NOTICE([poisoned directories enabled])
223 AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
224 [1],
225 [Define to warn for use of native system header directories])
226+ if test $enable_poison_system_directories = "error"; then
227+ AC_MSG_NOTICE([poisoned directories are fatal])
228+ AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
229+ fi
230 fi
231
232 # Substitute configuration variables
233diff --git a/gcc/gcc.c b/gcc/gcc.c
234index b2200c5185a..fa7b6fc8ddb 100644
235--- a/gcc/gcc.c
236+++ b/gcc/gcc.c
237@@ -1136,8 +1136,11 @@ static const char *cpp_unique_options =
238 static const char *cpp_options =
239 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
240 %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
241- %{!fno-working-directory:-fworking-directory}}} %{O*}\
242- %{undef} %{save-temps*:-fpch-preprocess}";
243+ %{!fno-working-directory:-fworking-directory}}} %{O*}"
244+#ifdef POISON_BY_DEFAULT
245+ " -Werror=poison-system-directories"
246+#endif
247+ " %{undef} %{save-temps*:-fpch-preprocess}";
248
249 /* This contains cpp options which are not passed when the preprocessor
250 output will be used by another program. */