summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-common.inc
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-common.inc')
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc32
1 files changed, 30 insertions, 2 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index 5ac82b1b57..8d95698743 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -11,7 +11,8 @@ CVE_PRODUCT = "gcc"
11inherit autotools gettext texinfo 11inherit autotools gettext texinfo
12 12
13BPN = "gcc" 13BPN = "gcc"
14COMPILERDEP = "virtual/${TARGET_PREFIX}gcc:do_gcc_stash_builddir" 14COMPILERDEP = "${MLPREFIX}gcc-cross-${TARGET_ARCH}:do_gcc_stash_builddir"
15COMPILERDEP:class-nativesdk = "gcc-crosssdk-${SDK_SYS}:do_gcc_stash_builddir"
15 16
16python extract_stashed_builddir () { 17python extract_stashed_builddir () {
17 src = d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}") 18 src = d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}")
@@ -103,7 +104,8 @@ MIRRORS =+ "\
103gcclibdir = "${libdir}/gcc" 104gcclibdir = "${libdir}/gcc"
104BINV = "${PV}" 105BINV = "${PV}"
105#S = "${WORKDIR}/gcc-${PV}" 106#S = "${WORKDIR}/gcc-${PV}"
106S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" 107UNPACKDIR = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/sources"
108S = "${UNPACKDIR}/gcc-${PV}"
107 109
108B ?= "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" 110B ?= "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
109 111
@@ -116,3 +118,29 @@ target_prefix ?= "${prefix}"
116# The real WORKDIR location isn't a dependency for the shared workdir. 118# The real WORKDIR location isn't a dependency for the shared workdir.
117src_patches[vardepsexclude] = "WORKDIR" 119src_patches[vardepsexclude] = "WORKDIR"
118should_apply[vardepsexclude] += "PN" 120should_apply[vardepsexclude] += "PN"
121
122remove_sysroot_paths_from_configargs () {
123 replacement=${1}
124 # Prevent sysroot path from being used in configargs.h header, as it will
125 # be rewritten when used by other sysroots preventing support for gcc
126 # plugins. Additionally the path is embeddeded into the output binary, this
127 # prevents building a reproducible binary.
128 oe_runmake configure-gcc
129 sed -i "s@${STAGING_DIR_TARGET}@$replacement@g" ${B}/gcc/configargs.h
130 sed -i "s@${STAGING_DIR_HOST}@/$replacement@g" ${B}/gcc/configargs.h
131}
132
133remove_sysroot_paths_from_checksum_options () {
134 stagingdir=${1}
135 replacement=${2}
136 # Prevent sysroot/workdir paths from being used in checksum-options.
137 # checksum-options is used to generate a checksum which is embedded into
138 # the output binary.
139 oe_runmake TARGET-gcc=checksum-options all-gcc
140 sed -i "s@${DEBUG_PREFIX_MAP}@@g" ${B}/gcc/checksum-options
141 sed -i "s@$stagingdir@$replacement@g" ${B}/gcc/checksum-options
142}
143
144cleanup_installed_include_fixed () {
145 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
146}