From: Richard Purdie Date: Tue, 9 Aug 2011 17:51:44 +0000 (+0100) Subject: gcc: Various fixups to ensure consistent gcc builds X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~44549 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=970af6b09e1d69041b0d82fa56ace19543405eb1;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git gcc: Various fixups to ensure consistent gcc builds We ensure that: * the shared work directory contains PR and ensure PR values are consistent across gcc builds * the regexp to handle library directories is in a specific task and run once This avoids breakage that was seen in incremental builds after commit be1f70d68b6b75772ebab8bdff683ddd7c42b0cd where the interpretor could become corrupted. This was due to the sed expression corrupting the source directory. Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1.inc b/meta/recipes-devtools/gcc/gcc-4.5.1.inc index 1b21a75eb39..6eb30443f04 100644 --- a/meta/recipes-devtools/gcc/gcc-4.5.1.inc +++ b/meta/recipes-devtools/gcc/gcc-4.5.1.inc @@ -1,5 +1,7 @@ require gcc-common.inc +PR = "r8" + DEPENDS =+ "mpfr gmp libmpc elfutils" NATIVEDEPS = "mpfr-native gmp-native gettext-native libmpc-native elfutils-native" diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc index f952ac88d99..0a148b43b71 100644 --- a/meta/recipes-devtools/gcc/gcc-4.6.inc +++ b/meta/recipes-devtools/gcc/gcc-4.6.inc @@ -1,6 +1,6 @@ require gcc-common.inc -PR = "r4" +PR = "r7" # Third digit in PV should be incremented after a minor release # happens from this branch on gcc e.g. currently its 4.6.0 @@ -73,7 +73,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \ SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " #S = "${WORKDIR}/${BRANCH}" -S = "${TMPDIR}/work-shared/gcc-${PV}/${BRANCH}" +S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${BRANCH}" B = "${WORKDIR}/${BRANCH}/build.${HOST_SYS}.${TARGET_SYS}" # Language Overrides diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc index 1684e78febd..52431fa4f25 100644 --- a/meta/recipes-devtools/gcc/gcc-common.inc +++ b/meta/recipes-devtools/gcc/gcc-common.inc @@ -40,17 +40,18 @@ ${GNU_MIRROR}/gcc/ http://gcc.get-software.com/releases/ \n \ gcclibdir = "${libdir}/gcc" BINV = "${PV}" #S = "${WORKDIR}/gcc-${PV}" -S = "${TMPDIR}/work-shared/gcc-${PV}/gcc-${PV}" +S = "${TMPDIR}/work-shared/gcc-${PV}/gcc-${PV}-${PR}" B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" # SS means Shared Stamps directory -SS = "${TMPDIR}/stamps/work-shared/gcc-${PV}" +SS = "${TMPDIR}/stamps/work-shared/gcc-${PV}-${PR}" do_fetch[stamp-base] = "${SS}" do_unpack[stamp-base] = "${SS}" +do_headerfix[stamp-base] = "${SS}" do_patch[stamp-base] = "${SS}" # SW means Shared Work directory -SW = "${TMPDIR}/work-shared/gcc-${PV}" +SW = "${TMPDIR}/work-shared/gcc-${PV}-${PR}" WORKDIR_task-unpack = "${SW}" WORKDIR_task-patch = "${SW}" @@ -61,7 +62,7 @@ target_prefix ?= "${prefix}" CLEANFUNCS += "workshared_clean" # The do_clean should be exclusive since share ${S} -do_clean[lockfiles] = "${TMPDIR}/stamps/work-shared/gcc-${PV}.clean.lock" +do_clean[lockfiles] = "${SW}.clean.lock" python workshared_clean () { """clear the source directory""" diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc index 869d1b6d605..2ddc3d7c9f2 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -61,9 +61,9 @@ SYSTEMHEADERS = "${target_includedir}" SYSTEMLIBS = "${target_base_libdir}/" SYSTEMLIBS1 = "${target_libdir}/" -do_configure_prepend () { - # Change the default dynamic linker path, only useful for SDK, other's value - # are not changed according to the SYSTEMLIBS_DIR +do_headerfix () { + # Change the default dynamic linker path, in case $base_liddir is non-standard + # (e.g. in multilib or sdk cases) # # We want something like the following: # #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" @@ -72,7 +72,11 @@ do_configure_prepend () { # sed -i ${S}/gcc/config/*/linux*.h -e \ 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\) \( *"/lib.*\)/\(.*\)#\1 SYSTEMLIBS_DIR "\3#' +} +addtask headerfix after do_unpack before do_patch + +do_configure_prepend () { # teach gcc to find correct target includedir when checking libc ssp support mkdir -p ${B}/gcc echo "NATIVE_SYSTEM_HEADER_DIR = ${SYSTEMHEADERS}" > ${B}/gcc/t-oe diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.1.bb index 92708d44e7d..da3210fc351 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.1.bb @@ -5,8 +5,6 @@ require gcc-cross-canadian.inc require gcc-configure-sdk.inc require gcc-package-sdk.inc -PR = "r4" - DEPENDS += "gmp-nativesdk mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk" RDEPENDS_${PN} += "mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk" diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.1.bb index 081b7d60fb5..16d8181774d 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.1.bb @@ -1,5 +1,3 @@ require gcc-cross_${PV}.bb require gcc-cross-initial.inc -PR = "r4" - diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.1.bb index a8473b0ebe7..42fd0f0f590 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.1.bb @@ -1,4 +1,3 @@ require gcc-cross_${PV}.bb require gcc-cross-intermediate.inc -PR = "r5" diff --git a/meta/recipes-devtools/gcc/gcc-cross_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-cross_4.5.1.bb index af6daf41bdc..97a0c819208 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_4.5.1.bb @@ -1,5 +1,3 @@ -PR = "r4" - require gcc-${PV}.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb b/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb index 3c9a7f85b4c..58eba46ddd5 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb @@ -1,5 +1,3 @@ -PR = "r5" - require gcc-csl-arm-2008q1.inc require gcc-cross4.inc require gcc-configure-cross.inc diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.1.bb index 970824805fc..0c9fdd3449f 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.1.bb @@ -1,4 +1,2 @@ require gcc-cross-initial_${PV}.bb require gcc-crosssdk-initial.inc - -PR = "r4" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.1.bb index d2359695913..1aa588ac9fa 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.1.bb @@ -1,4 +1,2 @@ require gcc-cross-intermediate_${PV}.bb require gcc-crosssdk-intermediate.inc - -PR = "r4" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.1.bb index bae238970a6..7430888ed76 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.1.bb @@ -1,4 +1,2 @@ require gcc-cross_${PV}.bb require gcc-crosssdk.inc - -PR = "r4" diff --git a/meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc b/meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc index cb5b087286a..062f1c5a47a 100644 --- a/meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc +++ b/meta/recipes-devtools/gcc/gcc-csl-arm-2008q1.inc @@ -2,6 +2,7 @@ require gcc-common.inc BINV = "4.2.3" PV = "4.2.3+csl-arm-2008q1-126" +PR = "r6" FILESDIR = "${FILE_DIRNAME}/gcc-csl-arm" diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb index 0a7056c228a..bd3bacfe3a8 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb @@ -1,5 +1,3 @@ -PR = "r6" - require gcc-${PV}.inc require gcc-configure-runtime.inc require gcc-package-runtime.inc diff --git a/meta/recipes-devtools/gcc/gcc_4.5.1.bb b/meta/recipes-devtools/gcc/gcc_4.5.1.bb index f036cb146b9..4dfb12e82e1 100644 --- a/meta/recipes-devtools/gcc/gcc_4.5.1.bb +++ b/meta/recipes-devtools/gcc/gcc_4.5.1.bb @@ -1,4 +1,3 @@ -PR = "r8" require gcc-${PV}.inc require gcc-configure-target.inc require gcc-package-target.inc diff --git a/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb b/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb index 9fd2b0acc31..5bb8e58dcdf 100644 --- a/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb +++ b/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb @@ -1,5 +1,3 @@ -PR = "r5" - require gcc-${PV}.inc require gcc-configure-target.inc require gcc-package-target.inc diff --git a/meta/recipes-devtools/gcc/libgcc_4.5.1.bb b/meta/recipes-devtools/gcc/libgcc_4.5.1.bb index b0523c78acf..49555377c9e 100644 --- a/meta/recipes-devtools/gcc/libgcc_4.5.1.bb +++ b/meta/recipes-devtools/gcc/libgcc_4.5.1.bb @@ -1,7 +1,5 @@ require gcc-${PV}.inc -PR = "r0" - INHIBIT_DEFAULT_DEPS = "1" DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" diff --git a/meta/recipes-devtools/gcc/libgcc_4.6.bb b/meta/recipes-devtools/gcc/libgcc_4.6.bb index a6e1146be9d..81664e3465f 100644 --- a/meta/recipes-devtools/gcc/libgcc_4.6.bb +++ b/meta/recipes-devtools/gcc/libgcc_4.6.bb @@ -1,7 +1,5 @@ require gcc-${PV}.inc -PR = "r1" - INHIBIT_DEFAULT_DEPS = "1" DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"