summaryrefslogtreecommitdiffstats
path: root/meta
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:07:02 +0100
commit7b22dc70919464a5a2ca31926e37f9053a83e2a6 (patch)
tree6d347703586236060d8fcdc9dff338a5bca8e366 /meta
parentf7423a2f9f93320dbd1c4195997e6e797916852b (diff)
downloadpoky-7b22dc70919464a5a2ca31926e37f9053a83e2a6.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] (From OE-Core rev: 0919f5ec214594380eb5190b4878eadb30e3a471) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-Makefile-correctly-list-modules-when-cleaning-them.patch24
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-Makefile-do-not-clean-config.h-xconfig.h.patch28
-rw-r--r--meta/recipes-devtools/perl-cross/perlcross_1.4.bb2
-rw-r--r--meta/recipes-devtools/perl/perl_5.36.0.bb8
4 files changed, 5 insertions, 57 deletions
diff --git a/meta/recipes-devtools/perl-cross/files/0001-Makefile-correctly-list-modules-when-cleaning-them.patch b/meta/recipes-devtools/perl-cross/files/0001-Makefile-correctly-list-modules-when-cleaning-them.patch
deleted file mode 100644
index 80388fa9b0..0000000000
--- a/meta/recipes-devtools/perl-cross/files/0001-Makefile-correctly-list-modules-when-cleaning-them.patch
+++ /dev/null
@@ -1,24 +0,0 @@
1From 7b8d819e012c24df228a313beb86e1942611c904 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Sat, 4 Jun 2022 13:00:12 +0200
4Subject: [PATCH] Makefile: correctly list modules when cleaning them
5
6Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/133]
7Signed-off-by: Alexander Kanavin <alex@linutronix.de>
8---
9 Makefile | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/Makefile b/Makefile
13index 6b35fb0..9ef9324 100644
14--- a/Makefile
15+++ b/Makefile
16@@ -462,7 +462,7 @@ clean-subdirs:
17
18 # assuming modules w/o Makefiles were never built and need no cleaning
19 clean-modules: config.h
20- @for i in $(modules disabled); do \
21+ @for i in $(modules) $(disabled); do \
22 test -f $$i/Makefile && \
23 touch $$i/Makefile && \
24 $(MAKE) -C $$i clean \
diff --git a/meta/recipes-devtools/perl-cross/files/0001-Makefile-do-not-clean-config.h-xconfig.h.patch b/meta/recipes-devtools/perl-cross/files/0001-Makefile-do-not-clean-config.h-xconfig.h.patch
deleted file mode 100644
index cbb935c71b..0000000000
--- a/meta/recipes-devtools/perl-cross/files/0001-Makefile-do-not-clean-config.h-xconfig.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From ade4a70308d3b9d79cc3db841c0f60385780fe1a Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Sat, 4 Jun 2022 13:45:20 +0200
4Subject: [PATCH] Makefile: do not clean config.h/xconfig.h
5
6These are generated by ./configure and not by make.
7
8Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/134]
9Signed-off-by: Alexander Kanavin <alex@linutronix.de>
10---
11 Makefile | 1 -
12 1 file changed, 1 deletion(-)
13
14diff --git a/Makefile b/Makefile
15index 9ef9324..3de2c2e 100644
16--- a/Makefile
17+++ b/Makefile
18@@ -473,7 +473,6 @@ clean-generated-files:
19 -rm -f uudmap.h opmini.c generate_uudmap$X bitcount.h $(CONFIGPM)
20 -rm -f git_version.h lib/re.pm lib/Config_git.pl
21 -rm -f perlmini.c perlmain.c
22- -rm -f config.h xconfig.h
23 -rm -f pod/perlmodlib.pod
24 -rm -f ext.libs static.list
25 -rm -f $(patsubst %,%/ppport.h,$(mkppport_lst))
26--
272.30.2
28
diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.4.bb b/meta/recipes-devtools/perl-cross/perlcross_1.4.bb
index 9b2889647f..17ce901646 100644
--- a/meta/recipes-devtools/perl-cross/perlcross_1.4.bb
+++ b/meta/recipes-devtools/perl-cross/perlcross_1.4.bb
@@ -15,8 +15,6 @@ SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
15 file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ 15 file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \
16 file://determinism.patch \ 16 file://determinism.patch \
17 file://0001-Makefile-check-the-file-if-patched-or-not.patch \ 17 file://0001-Makefile-check-the-file-if-patched-or-not.patch \
18 file://0001-Makefile-correctly-list-modules-when-cleaning-them.patch \
19 file://0001-Makefile-do-not-clean-config.h-xconfig.h.patch \
20 file://0001-configure_func.sh-Add-_GNU_SOURCE-define-and-functio.patch \ 18 file://0001-configure_func.sh-Add-_GNU_SOURCE-define-and-functio.patch \
21 " 19 "
22UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/" 20UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/"
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 = " \
28 28
29SRC_URI[perl.sha256sum] = "e26085af8ac396f62add8a533c3a0ea8c8497d836f0689347ac5abd7b7a4e00a" 29SRC_URI[perl.sha256sum] = "e26085af8ac396f62add8a533c3a0ea8c8497d836f0689347ac5abd7b7a4e00a"
30 30
31S = "${WORKDIR}/perl-${PV}" 31B = "${WORKDIR}/perl-${PV}-build"
32 32
33inherit upstream-version-is-even update-alternatives 33inherit upstream-version-is-even update-alternatives
34 34
@@ -48,7 +48,10 @@ export ENC2XS_NO_COMMENTS = "1"
48CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" 48CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
49 49
50do_configure:prepend() { 50do_configure:prepend() {
51 cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${S} 51 rm -rf ${B}
52 cp -rfp ${S} ${B}
53 cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${B}
54 cd ${B}
52} 55}
53 56
54do_configure:class-target() { 57do_configure:class-target() {
@@ -116,7 +119,6 @@ print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %
116 ")" 119 ")"
117 echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h 120 echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h
118 fi 121 fi
119 oe_runmake clean
120} 122}
121 123
122do_compile() { 124do_compile() {