summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-04-27 01:24:31 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-04-30 16:39:06 +0100
commitf07b7c0da1748afc35fbb2ead7ae10ec66c7c428 (patch)
treed549b8e2ec6069a20d4f692c307fbcca2fcd7651 /meta/recipes-devtools
parent2b851b99f5f2092b3db0f0743e44733b356514d0 (diff)
downloadpoky-f07b7c0da1748afc35fbb2ead7ae10ec66c7c428.tar.gz
gcc-common/gcc-configure-common: Move gnu-configize to its own shared task
This command modifies ${S} and can race against other tasks running do_configure and having the scripts disappear from under them. To avoid this move to its own task and work on the shared work directory as a common task. It needs to be a python task to avoid lots of shell exported variables as dependencies. (From OE-Core rev: 55ed9ffbab5118140baac5d0d29dcc919e1f1668) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-configure-common.inc10
2 files changed, 12 insertions, 1 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index a96bcaa92c..0408e65d5f 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -89,17 +89,20 @@ SS = "${TMPDIR}/stamps/work-shared/gcc-${PV}-${PR}"
89do_fetch[stamp-base] = "${SS}" 89do_fetch[stamp-base] = "${SS}"
90do_unpack[stamp-base] = "${SS}" 90do_unpack[stamp-base] = "${SS}"
91do_patch[stamp-base] = "${SS}" 91do_patch[stamp-base] = "${SS}"
92do_preconfigure[stamp-base] = "${SS}"
92SSCLEAN = "${TMPDIR}/stamps/work-shared/gcc-[0-9]*-*" 93SSCLEAN = "${TMPDIR}/stamps/work-shared/gcc-[0-9]*-*"
93do_fetch[stamp-base-clean] = "${SSCLEAN}" 94do_fetch[stamp-base-clean] = "${SSCLEAN}"
94do_unpack[stamp-base-clean] = "${SSCLEAN}" 95do_unpack[stamp-base-clean] = "${SSCLEAN}"
95do_unpack[umask] = "022" 96do_unpack[umask] = "022"
96do_patch[stamp-base-clean] = "${SSCLEAN}" 97do_patch[stamp-base-clean] = "${SSCLEAN}"
98do_preconfigure[stamp-base-clean] = "${SSCLEAN}"
97 99
98# SW means Shared Work directory 100# SW means Shared Work directory
99SW = "${TMPDIR}/work-shared/gcc-${PV}-${PR}" 101SW = "${TMPDIR}/work-shared/gcc-${PV}-${PR}"
100SSTATE_SWSPEC = "sstate:gcc::${PV}:${PR}::${SSTATE_VERSION}:" 102SSTATE_SWSPEC = "sstate:gcc::${PV}:${PR}::${SSTATE_VERSION}:"
101WORKDIR_task-unpack = "${SW}" 103WORKDIR_task-unpack = "${SW}"
102WORKDIR_task-patch = "${SW}" 104WORKDIR_task-patch = "${SW}"
105WORKDIR_task-preconfigure = "${SW}"
103 106
104target_includedir ?= "${includedir}" 107target_includedir ?= "${includedir}"
105target_libdir ?= "${libdir}" 108target_libdir ?= "${libdir}"
diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index 3cc5efab33..12482f81e3 100644
--- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -98,6 +98,14 @@ _EOF
98 mv ${B}/gcc/defaults.h.new ${B}/gcc/defaults.h 98 mv ${B}/gcc/defaults.h.new ${B}/gcc/defaults.h
99} 99}
100 100
101python do_preconfigure () {
102 import subprocess
103 cmd = d.expand('PATH=${PATH} cd ${S} && gnu-configize')
104 subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
105}
106addtask do_preconfigure after do_patch before do_configure
107do_preconfigure[depends] += "gnu-config-native:do_populate_sysroot autoconf-native:do_populate_sysroot"
108
101do_configure () { 109do_configure () {
102 # Setup these vars for cross building only 110 # Setup these vars for cross building only
103 # ... because foo_FOR_TARGET apparently gets misinterpreted inside the 111 # ... because foo_FOR_TARGET apparently gets misinterpreted inside the
@@ -126,7 +134,7 @@ do_configure () {
126 export CPPFLAGS_FOR_TARGET="${TARGET_CPPFLAGS}" 134 export CPPFLAGS_FOR_TARGET="${TARGET_CPPFLAGS}"
127 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}" 135 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
128 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}" 136 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
129 (cd ${S} && gnu-configize) || die "failure running gnu-configize" 137
130 138
131 oe_runconf 139 oe_runconf
132} 140}