summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2022-08-31 11:19:06 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-09-01 10:05:43 +0100
commit0919f5ec214594380eb5190b4878eadb30e3a471 (patch)
tree3471a1f9e803f4fc7701fdb534a4ac729bf86cc9 /meta/recipes-devtools/perl
parent92f191c304b5d53c14be23f7a5d57b0f9f101767 (diff)
downloadopenembedded-core-0919f5ec214594380eb5190b4878eadb30e3a471.tar.gz
perl: run builds from a pristine source tree
Running builds from a previously used directory relies on correctness of 'make clean' or incremental 'make', and sadly perl (or perl-cross) does not have either. The particularly nasty problem, currently occurring, is that sometimes, when reusing a previous build, we arrive at a combination of timestamps in the tree, where make becomes very confused, gets lost in its own rules and enters an infinite loop, never figuring out what needs to be rebuild in what order. Worse, there is no reliable trigger for this that was found, and any attempts to 'isolate the issue' haven't produced one. Let's simply add a clean S/B separation for builds, and always run a build from a reproducible set of files. [YOCTO #14902] Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/perl')
-rw-r--r--meta/recipes-devtools/perl/perl_5.36.0.bb8
1 files changed, 5 insertions, 3 deletions
diff --git a/meta/recipes-devtools/perl/perl_5.36.0.bb b/meta/recipes-devtools/perl/perl_5.36.0.bb
index ead7dace16..2dc558aaa5 100644
--- a/meta/recipes-devtools/perl/perl_5.36.0.bb
+++ b/meta/recipes-devtools/perl/perl_5.36.0.bb
@@ -28,7 +28,7 @@ SRC_URI:append:class-target = " \
SRC_URI[perl.sha256sum] = "e26085af8ac396f62add8a533c3a0ea8c8497d836f0689347ac5abd7b7a4e00a"
-S = "${WORKDIR}/perl-${PV}"
+B = "${WORKDIR}/perl-${PV}-build"
inherit upstream-version-is-even update-alternatives
@@ -48,7 +48,10 @@ export ENC2XS_NO_COMMENTS = "1"
CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
do_configure:prepend() {
- cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${S}
+ rm -rf ${B}
+ cp -rfp ${S} ${B}
+ cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${B}
+ cd ${B}
}
do_configure:class-target() {
@@ -116,7 +119,6 @@ print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %
")"
echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h
fi
- oe_runmake clean
}
do_compile() {