ss="o">+= "gnu-config-native:do_populate_sysroot autoconf-native:do_populate_sysroot" # # Set some default values # gcclibdir = "${libdir}/gcc" BINV = "${PV}" #S = "${WORKDIR}/gcc-${PV}" S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" # SS means Shared Stamps directory SS = "${TMPDIR}/stamps/work-shared/gcc-${PV}-${PR}" do_fetch[stamp-base] = "${SS}" do_unpack[stamp-base] = "${SS}" do_patch[stamp-base] = "${SS}" do_preconfigure[stamp-base] = "${SS}" SSCLEAN = "${TMPDIR}/stamps/work-shared/gcc-[0-9]*-*" do_fetch[stamp-base-clean] = "${SSCLEAN}" do_unpack[stamp-base-clean] = "${SSCLEAN}" do_unpack[umask] = "022" do_patch[stamp-base-clean] = "${SSCLEAN}" do_preconfigure[stamp-base-clean] = "${SSCLEAN}" # SW means Shared Work directory SW = "${TMPDIR}/work-shared/gcc-${PV}-${PR}" SSTATE_SWSPEC = "sstate:gcc::${PV}:${PR}::${SSTATE_VERSION}:" WORKDIR_task-unpack = "${SW}" WORKDIR_task-patch = "${SW}" WORKDIR_task-preconfigure = "${SW}" target_includedir ?= "${includedir}" target_libdir ?= "${libdir}" target_base_libdir ?= "${base_libdir}" target_prefix ?= "${prefix}" CLEANFUNCS += "workshared_clean" # The do_clean should be exclusive since share ${S} do_clean[lockfiles] = "${SW}.clean.lock" python workshared_clean () { """clear the source directory""" dir = d.expand("${SW}") bb.note("Removing " + dir) oe.path.remove(dir) """clear the the stamps in work-shared""" dir = "%s.*" % bb.data.expand(d.getVarFlag('do_fetch', 'stamp-base', True), d) bb.note("Removing " + dir) oe.path.remove(dir) } # We need to ensure that for the shared work directory, the do_patch singatures match # The real WORKDIR location isn't a dependency for the shared workdir. src_patches[vardepsexclude] = "WORKDIR" should_apply[vardepsexclude] += "PN"