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 | 95 |
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 @@ | |||
1 | From 99f1e61b2957226254a116fde7fd73bf07034012 Mon Sep 17 00:00:00 2001 | 1 | From e09aa9c3565585390328dd514cc286c20b74e76a Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Mon, 8 Mar 2021 16:04:20 -0800 | 3 | Date: Mon, 8 Mar 2021 16:04:20 -0800 |
4 | Subject: [PATCH] gcc: poison-system-directories | 4 | Subject: [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 | ||
27 | diff --git a/gcc/common.opt b/gcc/common.opt | 27 | diff --git a/gcc/common.opt b/gcc/common.opt |
28 | index 8a0dafc52..0357868e2 100644 | 28 | index 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. |
42 | diff --git a/gcc/config.in b/gcc/config.in | 42 | diff --git a/gcc/config.in b/gcc/config.in |
43 | index 64c27c9cf..a693cb8a8 100644 | 43 | index 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. */ |
63 | diff --git a/gcc/configure b/gcc/configure | 63 | diff --git a/gcc/configure b/gcc/configure |
64 | index 2b83acfb0..8bb97578c 100755 | 64 | index 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 | ||
107 | diff --git a/gcc/configure.ac b/gcc/configure.ac | 107 | diff --git a/gcc/configure.ac b/gcc/configure.ac |
108 | index daf2a708c..6155b83a7 100644 | 108 | index 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) |
134 | diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi | 134 | diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi |
135 | index ff6c338be..a8ebfa59a 100644 | 135 | index 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 | ||
161 | diff --git a/gcc/gcc.cc b/gcc/gcc.cc | 161 | diff --git a/gcc/gcc.cc b/gcc/gcc.cc |
162 | index beefde7f6..4e6557b3c 100644 | 162 | index 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()} " | ||
201 | diff --git a/gcc/incpath.cc b/gcc/incpath.cc | 188 | diff --git a/gcc/incpath.cc b/gcc/incpath.cc |
202 | index 622204a38..5ac03c086 100644 | 189 | index 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 | } |