summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorNathan Rossi <nathan@nathanrossi.com>2019-11-30 10:47:24 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-05 20:35:27 +0000
commitb8d6e2ab68ee5e341fe970b191bfd334e6d2c40b (patch)
treea1082f4e66470501c5b0d4ccba5bbf5110ebbbb2 /meta
parenta4031935a7b8ea4f61b9020c1aa5598e186e7ad7 (diff)
downloadopenembedded-core-contrib-b8d6e2ab68ee5e341fe970b191bfd334e6d2c40b.tar.gz
gcc-target.inc: Prevent sysroot from leaking into configargs.h
Prevent the full recipe-sysroot path from leaking into configargs.h. The configargs.h header is intended to be static and unchanged as the content is used as a means of determining that a gcc plugin is built for the same gcc. This also effects the output of 'gcc -v'. Due to per recipe sysroots and staging, the sysroot path would be replaced with the sysroot local to the recipe thus changing the content of configargs.h. This change also improves gcc binary reproducibility. The sysroot path is replaced with the base target root "/". Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/gcc/gcc-target.inc8
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
index bdc6ff658f9..987e88d32cc 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -137,6 +137,14 @@ FILES_${PN}-doc = "\
"
do_compile () {
+ # Prevent full target sysroot path from being used in configargs.h header,
+ # as it will be rewritten when used by other sysroots preventing support
+ # for gcc plugins. Additionally the path is embeddeded into the output
+ # binary, this prevents building a reproducible binary.
+ oe_runmake configure-gcc
+ sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h
+ sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h
+
oe_runmake all-host
}