perl: Avoid race continually rebuilding miniperl

When we run "make install" we notice miniperl rebuilding multiple times.
Usually this is harmless however sometimes race issues occur such as
miniperl not being executable.

The issue is that crosspatch is a phony target so it always rebuilds.
Adding this as a dependency of miniperl means miniperl always rebuilds
too.

Avoid this by injecting a direct dependency avoiding the phony target.
miniperl is then only rebuilt when its input changes as desired.

Patch submitted to upstream perl-cross.

(From OE-Core rev: 95947fa630e1fecc599f975d732eb47dd4b748ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-07-26 15:02:20 +01:00
parent 4cbea10197
commit f22e0478fa
2 changed files with 30 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
Makefile: Avoid continual rebuilds of miniperl and associated races
In the Yocto Project, when we run "make install" we notice miniperl
rebuilding multiple times. Usually this is harmless however sometimes
race issues occur such as miniperl not being executable.
The issue is that crosspatch is a phony target so it always rebuilds.
Adding this as a dependency of miniperl means miniperl always rebuilds
too.
Avoid this by injecting a direct dependency avoiding the phony target.
miniperl is then only rebuilt when its input changes as desired.
Signed-off-by: Richard Purdie richard.purdie@linuxfoundation.org
Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/95]
Index: perl-5.32.0/Makefile
===================================================================
--- perl-5.32.0.orig/Makefile
+++ perl-5.32.0/Makefile
@@ -56,7 +56,7 @@ crosspatch: $(CROSSPATCHED)
# A minor fix for buildroot, force crosspatching when running "make perl modules"
# instead of "make all".
-miniperlmain$O: crosspatch
+miniperlmain$O: $(CROSSPATCHED)
# Original versions are not saved anymore; patch generally takes care of this,
# and if that fails, reaching for the source tarball is the safest option.

View File

@@ -20,6 +20,7 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \
file://0002-Constant-Fix-up-shebang.patch \
file://determinism.patch \
file://perl-cross-makefile.patch \
"
SRC_URI_append_class-native = " \
file://perl-configpm-switch.patch \