blob: b08aecc736d65e1054db3a708a8afa62c15079c9 [file] [log] [blame]
Andrew Geisslerd5838332022-05-27 11:33:10 -05001From abc3b82ab24169277f2090e9df1ceac3573142be Mon Sep 17 00:00:00 2001
Patrick Williams03907ee2022-05-01 06:28:52 -05002From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:22:00 +0400
4Subject: [PATCH] cpp: honor sysroot.
5
6Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
7preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
8rather than the --sysroot option specified on the commandline. If access to that directory is
9permission denied (unreadable), gcc will error.
10
11This happens when ccache is in use due to the fact it uses preprocessed source files.
12
13The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix,
14-isystem, -isysroot happen and the correct sysroot is used.
15
16[YOCTO #2074]
17
18RP 2012/04/13
19
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21
Andrew Geisslerd5838332022-05-27 11:33:10 -050022Upstream-Status: Pending
Patrick Williams03907ee2022-05-01 06:28:52 -050023---
24 gcc/cp/lang-specs.h | 2 +-
Andrew Geisslerd5838332022-05-27 11:33:10 -050025 gcc/gcc.cc | 2 +-
Patrick Williams03907ee2022-05-01 06:28:52 -050026 2 files changed, 2 insertions(+), 2 deletions(-)
27
28diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
Andrew Geisslerd5838332022-05-27 11:33:10 -050029index f35c9fab76b..19ddc98ce7f 100644
Patrick Williams03907ee2022-05-01 06:28:52 -050030--- a/gcc/cp/lang-specs.h
31+++ b/gcc/cp/lang-specs.h
32@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3. If not see
33 {".ii", "@c++-cpp-output", 0, 0, 0},
34 {"@c++-cpp-output",
35 "%{!E:%{!M:%{!MM:"
36- " cc1plus -fpreprocessed %i %(cc1_options) %2"
37+ " cc1plus -fpreprocessed %i %I %(cc1_options) %2"
38 " %{!fsyntax-only:"
39 " %{fmodule-only:%{!S:-o %g.s%V}}"
40 " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
Andrew Geisslerd5838332022-05-27 11:33:10 -050041diff --git a/gcc/gcc.cc b/gcc/gcc.cc
42index ce161d3c853..aa4cf92fb78 100644
43--- a/gcc/gcc.cc
44+++ b/gcc/gcc.cc
45@@ -1476,7 +1476,7 @@ static const struct compiler default_compilers[] =
Patrick Williams03907ee2022-05-01 06:28:52 -050046 %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
47 {".i", "@cpp-output", 0, 0, 0},
48 {"@cpp-output",
49- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
50+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
51 {".s", "@assembler", 0, 0, 0},
52 {"@assembler",
53 "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},