summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
diff options
context:
space:
mode:
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.patch95
1 files changed, 41 insertions, 54 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 5aa635b3d4..6fa5494efc 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,4 +1,4 @@
1From 99f1e61b2957226254a116fde7fd73bf07034012 Mon Sep 17 00:00:00 2001 1From e09aa9c3565585390328dd514cc286c20b74e76a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 8 Mar 2021 16:04:20 -0800 3Date: Mon, 8 Mar 2021 16:04:20 -0800
4Subject: [PATCH] gcc: poison-system-directories 4Subject: [PATCH] gcc: poison-system-directories
@@ -20,15 +20,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
20 gcc/configure | 19 +++++++++++++++++++ 20 gcc/configure | 19 +++++++++++++++++++
21 gcc/configure.ac | 16 ++++++++++++++++ 21 gcc/configure.ac | 16 ++++++++++++++++
22 gcc/doc/invoke.texi | 9 +++++++++ 22 gcc/doc/invoke.texi | 9 +++++++++
23 gcc/gcc.cc | 15 ++++++++++++--- 23 gcc/gcc.cc | 9 +++++++--
24 gcc/incpath.cc | 21 +++++++++++++++++++++ 24 gcc/incpath.cc | 21 +++++++++++++++++++++
25 7 files changed, 91 insertions(+), 3 deletions(-) 25 7 files changed, 86 insertions(+), 2 deletions(-)
26 26
27diff --git a/gcc/common.opt b/gcc/common.opt 27diff --git a/gcc/common.opt b/gcc/common.opt
28index 8a0dafc52..0357868e2 100644 28index 862c474d3c8..64c4277c991 100644
29--- a/gcc/common.opt 29--- a/gcc/common.opt
30+++ b/gcc/common.opt 30+++ b/gcc/common.opt
31@@ -710,6 +710,10 @@ Wreturn-local-addr 31@@ -711,6 +711,10 @@ Wreturn-local-addr
32 Common Var(warn_return_local_addr) Init(1) Warning 32 Common Var(warn_return_local_addr) Init(1) Warning
33 Warn about returning a pointer/reference to a local or temporary variable. 33 Warn about returning a pointer/reference to a local or temporary variable.
34 34
@@ -40,10 +40,10 @@ index 8a0dafc52..0357868e2 100644
40 Common Var(warn_shadow) Warning 40 Common Var(warn_shadow) Warning
41 Warn when one variable shadows another. Same as -Wshadow=global. 41 Warn when one variable shadows another. Same as -Wshadow=global.
42diff --git a/gcc/config.in b/gcc/config.in 42diff --git a/gcc/config.in b/gcc/config.in
43index 64c27c9cf..a693cb8a8 100644 43index 4cad077bfbe..80e832fdb84 100644
44--- a/gcc/config.in 44--- a/gcc/config.in
45+++ b/gcc/config.in 45+++ b/gcc/config.in
46@@ -230,6 +230,16 @@ 46@@ -236,6 +236,16 @@
47 #endif 47 #endif
48 48
49 49
@@ -61,10 +61,10 @@ index 64c27c9cf..a693cb8a8 100644
61 optimizer and back end) to be checked for dynamic type safety at runtime. 61 optimizer and back end) to be checked for dynamic type safety at runtime.
62 This is quite expensive. */ 62 This is quite expensive. */
63diff --git a/gcc/configure b/gcc/configure 63diff --git a/gcc/configure b/gcc/configure
64index 2b83acfb0..8bb97578c 100755 64index c7b26d1927d..3508be7b439 100755
65--- a/gcc/configure 65--- a/gcc/configure
66+++ b/gcc/configure 66+++ b/gcc/configure
67@@ -1023,6 +1023,7 @@ enable_maintainer_mode 67@@ -1026,6 +1026,7 @@ enable_maintainer_mode
68 enable_link_mutex 68 enable_link_mutex
69 enable_link_serialization 69 enable_link_serialization
70 enable_version_specific_runtime_libs 70 enable_version_specific_runtime_libs
@@ -72,7 +72,7 @@ index 2b83acfb0..8bb97578c 100755
72 enable_plugin 72 enable_plugin
73 enable_host_shared 73 enable_host_shared
74 enable_libquadmath_support 74 enable_libquadmath_support
75@@ -1785,6 +1786,8 @@ Optional Features: 75@@ -1788,6 +1789,8 @@ Optional Features:
76 --enable-version-specific-runtime-libs 76 --enable-version-specific-runtime-libs
77 specify that runtime libraries should be installed 77 specify that runtime libraries should be installed
78 in a compiler-specific directory 78 in a compiler-specific directory
@@ -81,7 +81,7 @@ index 2b83acfb0..8bb97578c 100755
81 --enable-plugin enable plugin support 81 --enable-plugin enable plugin support
82 --enable-host-shared build host code as shared libraries 82 --enable-host-shared build host code as shared libraries
83 --disable-libquadmath-support 83 --disable-libquadmath-support
84@@ -31996,6 +31999,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : 84@@ -31753,6 +31756,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
85 fi 85 fi
86 86
87 87
@@ -105,10 +105,10 @@ index 2b83acfb0..8bb97578c 100755
105 105
106 106
107diff --git a/gcc/configure.ac b/gcc/configure.ac 107diff --git a/gcc/configure.ac b/gcc/configure.ac
108index daf2a708c..6155b83a7 100644 108index 09082e8ccae..6cd01a8966b 100644
109--- a/gcc/configure.ac 109--- a/gcc/configure.ac
110+++ b/gcc/configure.ac 110+++ b/gcc/configure.ac
111@@ -7435,6 +7435,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs, 111@@ -7292,6 +7292,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
112 [specify that runtime libraries should be 112 [specify that runtime libraries should be
113 installed in a compiler-specific directory])]) 113 installed in a compiler-specific directory])])
114 114
@@ -132,37 +132,37 @@ index daf2a708c..6155b83a7 100644
132 AC_SUBST(subdirs) 132 AC_SUBST(subdirs)
133 AC_SUBST(srcdir) 133 AC_SUBST(srcdir)
134diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi 134diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
135index ff6c338be..a8ebfa59a 100644 135index c9482886c5a..f302c637908 100644
136--- a/gcc/doc/invoke.texi 136--- a/gcc/doc/invoke.texi
137+++ b/gcc/doc/invoke.texi 137+++ b/gcc/doc/invoke.texi
138@@ -379,6 +379,7 @@ Objective-C and Objective-C++ Dialects}. 138@@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
139 -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol 139 -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
140 -Wparentheses -Wno-pedantic-ms-format @gol 140 -Wparentheses -Wno-pedantic-ms-format
141 -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol 141 -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
142+-Wno-poison-system-directories @gol 142+-Wno-poison-system-directories
143 -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol 143 -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls
144 -Wrestrict -Wno-return-local-addr -Wreturn-type @gol 144 -Wrestrict -Wno-return-local-addr -Wreturn-type
145 -Wno-scalar-storage-order -Wsequence-point @gol 145 -Wno-scalar-storage-order -Wsequence-point
146@@ -8029,6 +8030,14 @@ made up of data only and thus requires no special treatment. But, for 146@@ -8422,6 +8423,14 @@ made up of data only and thus requires no special treatment. But, for
147 most targets, it is made up of code and thus requires the stack to be 147 most targets, it is made up of code and thus requires the stack to be
148 made executable in order for the program to work properly. 148 made executable in order for the program to work properly.
149 149
150+@item -Wno-poison-system-directories
151+@opindex Wno-poison-system-directories 150+@opindex Wno-poison-system-directories
151+@item -Wno-poison-system-directories
152+Do not warn for @option{-I} or @option{-L} options using system 152+Do not warn for @option{-I} or @option{-L} options using system
153+directories such as @file{/usr/include} when cross compiling. This 153+directories such as @file{/usr/include} when cross compiling. This
154+option is intended for use in chroot environments when such 154+option is intended for use in chroot environments when such
155+directories contain the correct headers and libraries for the target 155+directories contain the correct headers and libraries for the target
156+system rather than the host. 156+system rather than the host.
157+ 157+
158 @item -Wfloat-equal
159 @opindex Wfloat-equal 158 @opindex Wfloat-equal
160 @opindex Wno-float-equal 159 @opindex Wno-float-equal
160 @item -Wfloat-equal
161diff --git a/gcc/gcc.cc b/gcc/gcc.cc 161diff --git a/gcc/gcc.cc b/gcc/gcc.cc
162index beefde7f6..4e6557b3c 100644 162index 16bb07f2cdc..5feae021545 100644
163--- a/gcc/gcc.cc 163--- a/gcc/gcc.cc
164+++ b/gcc/gcc.cc 164+++ b/gcc/gcc.cc
165@@ -1162,6 +1162,8 @@ proper position among the other output files. */ 165@@ -1146,6 +1146,8 @@ proper position among the other output files. */
166 "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ 166 "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
167 "%X %{o*} %{e*} %{N} %{n} %{r}\ 167 "%X %{o*} %{e*} %{N} %{n} %{r}\
168 %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ 168 %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
@@ -171,7 +171,7 @@ index beefde7f6..4e6557b3c 100644
171 %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \ 171 %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \
172 VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ 172 VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
173 %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ 173 %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
174@@ -1257,8 +1259,11 @@ static const char *cpp_unique_options = 174@@ -1241,8 +1243,11 @@ static const char *cpp_unique_options =
175 static const char *cpp_options = 175 static const char *cpp_options =
176 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ 176 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
177 %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\ 177 %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
@@ -179,27 +179,14 @@ index beefde7f6..4e6557b3c 100644
179- %{undef} %{save-temps*:-fpch-preprocess}"; 179- %{undef} %{save-temps*:-fpch-preprocess}";
180+ %{!fno-working-directory:-fworking-directory}}} %{O*}" 180+ %{!fno-working-directory:-fworking-directory}}} %{O*}"
181+#ifdef POISON_BY_DEFAULT 181+#ifdef POISON_BY_DEFAULT
182+ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}" 182+ " -Werror=poison-system-directories"
183+#endif 183+#endif
184+ " %{undef} %{save-temps*:-fpch-preprocess}"; 184+ " %{undef} %{save-temps*:-fpch-preprocess}";
185 185
186 /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al. 186 /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
187 187
188@@ -1287,7 +1292,11 @@ static const char *cc1_options =
189 %{coverage:-fprofile-arcs -ftest-coverage}\
190 %{fprofile-arcs|fprofile-generate*|coverage:\
191 %{!fprofile-update=single:\
192- %{pthread:-fprofile-update=prefer-atomic}}}";
193+ %{pthread:-fprofile-update=prefer-atomic}}}"
194+#ifdef POISON_BY_DEFAULT
195+ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}"
196+#endif
197+ ;
198
199 static const char *asm_options =
200 "%{-target-help:%:print-asm-header()} "
201diff --git a/gcc/incpath.cc b/gcc/incpath.cc 188diff --git a/gcc/incpath.cc b/gcc/incpath.cc
202index 622204a38..5ac03c086 100644 189index 4d44321183f..46c0d543205 100644
203--- a/gcc/incpath.cc 190--- a/gcc/incpath.cc
204+++ b/gcc/incpath.cc 191+++ b/gcc/incpath.cc
205@@ -26,6 +26,7 @@ 192@@ -26,6 +26,7 @@
@@ -221,17 +208,17 @@ index 622204a38..5ac03c086 100644
221+ struct cpp_dir *p; 208+ struct cpp_dir *p;
222+ 209+
223+ for (p = heads[INC_QUOTE]; p; p = p->next) 210+ for (p = heads[INC_QUOTE]; p; p = p->next)
224+ { 211+ {
225+ if ((!strncmp (p->name, "/usr/include", 12)) 212+ if ((!strncmp (p->name, "/usr/include", 12))
226+ || (!strncmp (p->name, "/usr/local/include", 18)) 213+ || (!strncmp (p->name, "/usr/local/include", 18))
227+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) 214+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
228+ || (!strncmp (p->name, "/sw/include", 11)) 215+ || (!strncmp (p->name, "/sw/include", 11))
229+ || (!strncmp (p->name, "/opt/include", 12))) 216+ || (!strncmp (p->name, "/opt/include", 12)))
230+ warning (OPT_Wpoison_system_directories, 217+ warning (OPT_Wpoison_system_directories,
231+ "include location \"%s\" is unsafe for " 218+ "include location \"%s\" is unsafe for "
232+ "cross-compilation", 219+ "cross-compilation",
233+ p->name); 220+ p->name);
234+ } 221+ }
235+ } 222+ }
236+#endif 223+#endif
237 } 224 }