mirror of
git://git.yoctoproject.org/poky
synced 2026-09-06 10:23:42 +00:00
I took 5 of our patches and submitted to upstream gcc. This highlighted that patches 0026 and 0018 should be merged together and some tweaks were made to try and make it acceptable to upstream. The other patches have their headers updated to match what was submitted. The libstdc++ option patch was also cleaned up ready for upstream as the documentation wasn't quite right. The CXXFLAGS_FOR_BUILD piece of 0026 is separated out into a new patch which can be submitted separately to upstream. Two of the patches have been merged, status updated accordinly. (From OE-Core rev: df9b8ec56ff29f14feb1fde6acbdf9c4667430cf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
60 lines
2.4 KiB
Diff
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},
|