1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-07-27 19:37:04 +00:00
Files
meta-arm/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-11.2/0009-cpp-honor-sysroot.patch
T
Jon Mason ccec56deff arm-toolchain: update Arm GCC to 11.2
Update the Arm GCC source to the latest version.  Also, update the GCC
patches to apply cleanly, removing those that are no longer relevant.
Add the CVEs from Sumit Garg's series.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-23 09:34:09 -04:00

60 lines
2.4 KiB
Diff

From: Richard Purdie <richard.purdie@linuxfoundation.org>
Subject: [PATCH 5/5] gcc: Pass sysroot options to cpp for preprocessed source
OpenEmbedded/Yocto Project extensively uses the --sysroot support within gcc.
We discovered that when compiling preprocessed source (.i or .ii files), the
compiler will try and access the builtin sysroot location rather than the
--sysroot option specified on the commandline. If access to that directory is
permission denied (unreadable), gcc will error. This is particularly problematic
when ccache is involved.
This patch adds %I to the cpp-output spec macro so the default substitutions for
-iprefix, -isystem, -isysroot happen and the correct sysroot is used.
2021-10-27 Richard Purdie <richard.purdie@linuxfoundation.org>
gcc/cp/ChangeLog:
* lang-specs.h: Pass sysroot options to cpp for preprocessed source
gcc/ChangeLog:
* gcc.c: Pass sysroot options to cpp for preprocessed source
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #2074]
Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582725.html]
---
gcc/cp/lang-specs.h | 2 +-
gcc/gcc.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: gcc-11.2.0/gcc/cp/lang-specs.h
===================================================================
--- gcc-11.2.0.orig/gcc/cp/lang-specs.h
+++ gcc-11.2.0/gcc/cp/lang-specs.h
@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3.
{".ii", "@c++-cpp-output", 0, 0, 0},
{"@c++-cpp-output",
"%{!E:%{!M:%{!MM:"
- " cc1plus -fpreprocessed %i %(cc1_options) %2"
+ " cc1plus -fpreprocessed %i %I %(cc1_options) %2"
" %{!fsyntax-only:"
" %{fmodule-only:%{!S:-o %g.s%V}}"
" %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
Index: gcc-11.2.0/gcc/gcc.c
===================================================================
--- gcc-11.2.0.orig/gcc/gcc.c
+++ gcc-11.2.0/gcc/gcc.c
@@ -1470,7 +1470,7 @@ static const struct compiler default_com
%W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
{".i", "@cpp-output", 0, 0, 0},
{"@cpp-output",
- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
{".s", "@assembler", 0, 0, 0},
{"@assembler",
"%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},