summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/gcc/gcc-common.inc
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-devtools/gcc/gcc-common.inc')
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-common.inc26
1 files changed, 26 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/gcc/gcc-common.inc b/poky/meta/recipes-devtools/gcc/gcc-common.inc
index 5ac82b1b57..01de93cc3c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-common.inc
@@ -116,3 +116,29 @@ target_prefix ?= "${prefix}"
# The real WORKDIR location isn't a dependency for the shared workdir.
src_patches[vardepsexclude] = "WORKDIR"
should_apply[vardepsexclude] += "PN"
+
+remove_sysroot_paths_from_configargs () {
+ replacement=${1}
+ # Prevent 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}@$replacement@g" ${B}/gcc/configargs.h
+ sed -i "s@${STAGING_DIR_HOST}@/$replacement@g" ${B}/gcc/configargs.h
+}
+
+remove_sysroot_paths_from_checksum_options () {
+ stagingdir=${1}
+ replacement=${2}
+ # Prevent sysroot/workdir paths from being used in checksum-options.
+ # checksum-options is used to generate a checksum which is embedded into
+ # the output binary.
+ oe_runmake TARGET-gcc=checksum-options all-gcc
+ sed -i "s@${DEBUG_PREFIX_MAP}@@g" ${B}/gcc/checksum-options
+ sed -i "s@$stagingdir@$replacement@g" ${B}/gcc/checksum-options
+}
+
+cleanup_installed_include_fixed () {
+ find ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed -type f -not -name "README" -not -name limits.h -not -name syslimits.h | xargs rm -f
+}