Files
poky/meta/recipes-devtools/perl-cross/perlcross_1.4.bb
Alexander Kanavin 7b22dc7091 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]

(From OE-Core rev: 0919f5ec214594380eb5190b4878eadb30e3a471)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-01 10:07:02 +01:00

40 lines
1.4 KiB
BlitzBasic

SUMMARY = "Perl-cross build system"
HOMEPAGE = "https://github.com/arsv/perl-cross"
DESCRIPTION = "perl-cross provides configure script, top-level Makefile and some auxiliary files for perl, \
with the primary emphasis on cross-compiling the source."
SECTION = "devel"
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
# README.md is taken from https://github.com/arsv/perl-cross/blob/master/README.md
# but is not provided inside the release tarballs
LIC_FILES_CHKSUM = "file://${WORKDIR}/README.md;md5=252fcce2026b765fee1ad74d2fb07a3b"
inherit allarch
SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross-${PV}.tar.gz;name=perl-cross \
file://README.md \
file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \
file://determinism.patch \
file://0001-Makefile-check-the-file-if-patched-or-not.patch \
file://0001-configure_func.sh-Add-_GNU_SOURCE-define-and-functio.patch \
"
UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/"
SRC_URI[perl-cross.sha256sum] = "be9d9f9f7148edff7a2f9695ba3cb7e3975eff6b25a9a81dd311725fd757aa91"
S = "${WORKDIR}/perl-cross-${PV}"
do_configure () {
}
do_compile () {
}
do_install:class-native() {
mkdir -p ${D}/${datadir}/perl-cross/
cp -rf ${S}/* ${D}/${datadir}/perl-cross/
rm -rf ${D}/${datadir}/perl-cross/patches/
}
BBCLASSEXTEND = "native"