diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch | 113 |
1 files changed, 76 insertions, 37 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..5aa635b3d4 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 @@ -1,6 +1,6 @@ -From 74cc21f474402cf3578e37e1d7a1a22bbd070f6a Mon Sep 17 00:00:00 2001 +From 99f1e61b2957226254a116fde7fd73bf07034012 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 29 Mar 2013 08:59:00 +0400 +Date: Mon, 8 Mar 2021 16:04:20 -0800 Subject: [PATCH] gcc: poison-system-directories Add /sw/include and /opt/include based on the original @@ -11,25 +11,24 @@ aborted. Instead, we add the two missing items to the current scan. If the user wants this to be a failure, they can add "-Werror=poison-system-directories". +Upstream-Status: Pending Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Pending --- gcc/common.opt | 4 ++++ - gcc/config.in | 6 ++++++ - gcc/configure | 16 ++++++++++++++++ - gcc/configure.ac | 10 ++++++++++ + gcc/config.in | 10 ++++++++++ + gcc/configure | 19 +++++++++++++++++++ + gcc/configure.ac | 16 ++++++++++++++++ gcc/doc/invoke.texi | 9 +++++++++ - gcc/gcc.c | 2 ++ - gcc/incpath.c | 21 +++++++++++++++++++++ - 7 files changed, 68 insertions(+) + gcc/gcc.cc | 15 ++++++++++++--- + gcc/incpath.cc | 21 +++++++++++++++++++++ + 7 files changed, 91 insertions(+), 3 deletions(-) diff --git a/gcc/common.opt b/gcc/common.opt -index 65a82410abc..415f38fa1f4 100644 +index 8a0dafc52..0357868e2 100644 --- a/gcc/common.opt +++ b/gcc/common.opt -@@ -682,6 +682,10 @@ Wreturn-local-addr +@@ -710,6 +710,10 @@ Wreturn-local-addr Common Var(warn_return_local_addr) Init(1) Warning Warn about returning a pointer/reference to a local or temporary variable. @@ -41,10 +40,10 @@ index 65a82410abc..415f38fa1f4 100644 Common Var(warn_shadow) Warning Warn when one variable shadows another. Same as -Wshadow=global. diff --git a/gcc/config.in b/gcc/config.in -index 809e7b26823..5adeaeed36b 100644 +index 64c27c9cf..a693cb8a8 100644 --- a/gcc/config.in +++ b/gcc/config.in -@@ -224,6 +224,12 @@ +@@ -230,6 +230,16 @@ #endif @@ -52,24 +51,28 @@ index 809e7b26823..5adeaeed36b 100644 +#ifndef USED_FOR_TARGET +#undef ENABLE_POISON_SYSTEM_DIRECTORIES +#endif ++/* Define to warn for use of native system header directories */ ++#ifndef USED_FOR_TARGET ++#undef POISON_BY_DEFAULT ++#endif + + /* Define if you want all operations on RTL (the basic data structure of the optimizer and back end) to be checked for dynamic type safety at runtime. This is quite expensive. */ diff --git a/gcc/configure b/gcc/configure -index cd3d9516fce..8de766a942c 100755 +index 2b83acfb0..8bb97578c 100755 --- a/gcc/configure +++ b/gcc/configure -@@ -1010,6 +1010,7 @@ with_system_zlib - enable_maintainer_mode +@@ -1023,6 +1023,7 @@ enable_maintainer_mode enable_link_mutex + enable_link_serialization enable_version_specific_runtime_libs +enable_poison_system_directories enable_plugin enable_host_shared enable_libquadmath_support -@@ -1766,6 +1767,8 @@ Optional Features: +@@ -1785,6 +1786,8 @@ Optional Features: --enable-version-specific-runtime-libs specify that runtime libraries should be installed in a compiler-specific directory @@ -78,7 +81,7 @@ index cd3d9516fce..8de766a942c 100755 --enable-plugin enable plugin support --enable-host-shared build host code as shared libraries --disable-libquadmath-support -@@ -30235,6 +30238,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : +@@ -31996,6 +31999,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : fi @@ -89,9 +92,12 @@ index cd3d9516fce..8de766a942c 100755 + enable_poison_system_directories=no +fi + -+if test "x${enable_poison_system_directories}" = "xyes"; then ++if test "x${enable_poison_system_directories}" != "xno"; then + +$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++if test "$enable_poison_system_directories" = "error"; then ++$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h ++fi + +fi + @@ -99,31 +105,37 @@ index cd3d9516fce..8de766a942c 100755 diff --git a/gcc/configure.ac b/gcc/configure.ac -index 0de3b4bf97b..8bfd6feb780 100644 +index daf2a708c..6155b83a7 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -6595,6 +6595,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, +@@ -7435,6 +7435,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs, [specify that runtime libraries should be installed in a compiler-specific directory])]) +AC_ARG_ENABLE([poison-system-directories], + AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, ++ [warn for use of native system header directories (no/yes/error)]),, + [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then ++AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories]) ++if test "x${enable_poison_system_directories}" != "xno"; then ++ AC_MSG_NOTICE([poisoned directories enabled]) + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], + [1], + [Define to warn for use of native system header directories]) ++ if test $enable_poison_system_directories = "error"; then ++ AC_MSG_NOTICE([poisoned directories are fatal]) ++ AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors]) ++ fi +fi + # Substitute configuration variables AC_SUBST(subdirs) AC_SUBST(srcdir) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index f98161391a0..f12d8d12150 100644 +index ff6c338be..a8ebfa59a 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi -@@ -348,6 +348,7 @@ Objective-C and Objective-C++ Dialects}. +@@ -379,6 +379,7 @@ Objective-C and Objective-C++ Dialects}. -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol -Wparentheses -Wno-pedantic-ms-format @gol -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol @@ -131,7 +143,7 @@ index f98161391a0..f12d8d12150 100644 -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol -Wrestrict -Wno-return-local-addr -Wreturn-type @gol -Wno-scalar-storage-order -Wsequence-point @gol -@@ -6924,6 +6925,14 @@ made up of data only and thus requires no special treatment. But, for +@@ -8029,6 +8030,14 @@ made up of data only and thus requires no special treatment. But, for most targets, it is made up of code and thus requires the stack to be made executable in order for the program to work properly. @@ -146,11 +158,11 @@ index f98161391a0..f12d8d12150 100644 @item -Wfloat-equal @opindex Wfloat-equal @opindex Wno-float-equal -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 9f790db0daf..b2200c5185a 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1041,6 +1041,8 @@ proper position among the other output files. */ +diff --git a/gcc/gcc.cc b/gcc/gcc.cc +index beefde7f6..4e6557b3c 100644 +--- a/gcc/gcc.cc ++++ b/gcc/gcc.cc +@@ -1162,6 +1162,8 @@ proper position among the other output files. */ "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ "%X %{o*} %{e*} %{N} %{n} %{r}\ %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ @@ -159,10 +171,37 @@ index 9f790db0daf..b2200c5185a 100644 %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \ VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ -diff --git a/gcc/incpath.c b/gcc/incpath.c -index 8a2bda00f80..9098ab044ab 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c +@@ -1257,8 +1259,11 @@ static const char *cpp_unique_options = + 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}"; ++ %{!fno-working-directory:-fworking-directory}}} %{O*}" ++#ifdef POISON_BY_DEFAULT ++ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}" ++#endif ++ " %{undef} %{save-temps*:-fpch-preprocess}"; + + /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al. + +@@ -1287,7 +1292,11 @@ static const char *cc1_options = + %{coverage:-fprofile-arcs -ftest-coverage}\ + %{fprofile-arcs|fprofile-generate*|coverage:\ + %{!fprofile-update=single:\ +- %{pthread:-fprofile-update=prefer-atomic}}}"; ++ %{pthread:-fprofile-update=prefer-atomic}}}" ++#ifdef POISON_BY_DEFAULT ++ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}" ++#endif ++ ; + + static const char *asm_options = + "%{-target-help:%:print-asm-header()} " +diff --git a/gcc/incpath.cc b/gcc/incpath.cc +index 622204a38..5ac03c086 100644 +--- a/gcc/incpath.cc ++++ b/gcc/incpath.cc @@ -26,6 +26,7 @@ #include "intl.h" #include "incpath.h" @@ -171,7 +210,7 @@ index 8a2bda00f80..9098ab044ab 100644 /* Microsoft Windows does not natively support inodes. VMS has non-numeric inodes. */ -@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) +@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) } fprintf (stderr, _("End of search list.\n")); } |