diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch b/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch index c720defa35..37f26f0728 100644 --- a/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch +++ b/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch @@ -1,35 +1,41 @@ -From 33a7a55d39c040ba09af2d69f7fa9cf8e6f84c91 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 29 Mar 2013 09:22:00 +0400 -Subject: [PATCH] cpp: honor sysroot. +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Subject: [PATCH 5/5] gcc: Pass sysroot options to cpp for preprocessed source -Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile -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. +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 happens when ccache is in use due to the fact it uses preprocessed source files. +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. -The fix below 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> -[YOCTO #2074] +gcc/cp/ChangeLog: + + * lang-specs.h: Pass sysroot options to cpp for preprocessed source + +gcc/ChangeLog: -RP 2012/04/13 + * gcc.c: Pass sysroot options to cpp for preprocessed source -Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +[YOCTO #2074] -Upstream-Status: Pending +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(-) -diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h -index 8902ae1d2ed..e99e2fcd6ad 100644 ---- a/gcc/cp/lang-specs.h -+++ b/gcc/cp/lang-specs.h -@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3. If not see +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:" @@ -38,11 +44,11 @@ index 8902ae1d2ed..e99e2fcd6ad 100644 " %{!fsyntax-only:" " %{fmodule-only:%{!S:-o %g.s%V}}" " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}" -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 1bc45285384..8737bae5353 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1470,7 +1470,7 @@ static const struct compiler default_compilers[] = +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", |