summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl-cross/files
diff options
context:
space:
mode:
authorMingli Yu <mingli.yu@windriver.com>2021-07-02 17:29:21 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-05 10:59:24 +0100
commit2a71a1f308b7f97d83bd23b0f8e733543841efad (patch)
tree6f18f9f81ec3431c6e377ccfcc01fa68abe9ddb0 /meta/recipes-devtools/perl-cross/files
parenta6cc842973f8e3d5a72e6f4012d0430777901408 (diff)
downloadopenembedded-core-contrib-2a71a1f308b7f97d83bd23b0f8e733543841efad.tar.gz
perlcross: check the file if patched or not
After the commit(60dcb230f6 perl: split perl-cross into its own recipe) introduced, the source files mainly come from two parts, one is from SRI_URI during do_fetch and the other with below means during do_configure. do_configure_prepend() { cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${S} } And the source files will be changed during do_compile with below logic in Makefile. $(CROSSPATCHED): %.applied: %.patch patch -p1 -i $< && touch $@ And there comes build failure with below steps: $ bitbake perl-native Make a change as below $ git diff diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb index b77bbd1fd4..4c5e35ab80 100644 --- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb @@ -33,6 +33,7 @@ do_compile () { do_install_class-native() { mkdir -p ${D}/${datadir}/perl-cross/ cp -rf ${S}/* ${D}/${datadir}/perl-cross/ + echo "test" > ${D}/${datadir}/perl-cross/testfile } $ bitbake perl-native | NOTE: make -j 48 | make crosspatch | make[1]: Entering directory '/buildarea1/myu2/wr_build/wr1021_20210616_perl/build/tmp-glibc/work/x86_64-linux/perl-native/5.34.0-r0/perl-5.34.0' | patch -p1 -i cnf/diffs/perl5-5.34.0/time-hires.patch && touch cnf/diffs/perl5-5.34.0/time-hires.applied | patch -p1 -i cnf/diffs/perl5-5.34.0/xconfig.patch && touch cnf/diffs/perl5-5.34.0/xconfig.applied | patch -p1 -i cnf/diffs/perl5-5.34.0/posix-makefile.patch && touch cnf/diffs/perl5-5.34.0/posix-makefile.applied | File dist/Time-HiRes/Makefile.PL is read-only; trying to patch anyway | patching file dist/Time-HiRes/Makefile.PL | Reversed (or previously applied) patch detected! Assume -R? [n] | Apply anyway? [n] | Skipping patch. | 4 out of 4 hunks ignored -- saving rejects to file dist/Time-HiRes/Makefile.PL.rej | patch -p1 -i cnf/diffs/perl5-5.34.0/test-commonsense.patch && touch cnf/diffs/perl5-5.34.0/test-commonsense.applied | File perl.h is read-only; trying to patch anyway | patching file perl.h | Reversed (or previously applied) patch detected! Assume -R? [n] | Apply anyway? [n] | Skipping patch. | 1 out of 1 hunk ignored -- saving rejects to file perl.h.rej | make[1]: *** [Makefile:64: cnf/diffs/perl5-5.34.0/time-hires.applied] Error 1 [snip] It's because the source files patched twice, so check the file if patched or not to avoid the source files patched more than one time to fix the build failure as above. Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/perl-cross/files')
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-Makefile-check-the-file-if-patched-or-not.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl-cross/files/0001-Makefile-check-the-file-if-patched-or-not.patch b/meta/recipes-devtools/perl-cross/files/0001-Makefile-check-the-file-if-patched-or-not.patch
new file mode 100644
index 0000000000..fb7b287599
--- /dev/null
+++ b/meta/recipes-devtools/perl-cross/files/0001-Makefile-check-the-file-if-patched-or-not.patch
@@ -0,0 +1,31 @@
+From 24a3e0c48f9ebe473b5f1078663e275c27d0537f Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 2 Jul 2021 09:08:21 +0000
+Subject: [PATCH] Makefile: check the file if patched or not
+
+Check the file if patched or not to avoid patched more than
+one time.
+
+Upstream-Status: Inappropriate (OE-specific)
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index f4a26f5..7bc748e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -61,7 +61,7 @@ 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.
+ $(CROSSPATCHED): %.applied: %.patch
+- patch -p1 -i $< && touch $@
++ test ! -f $@ && (patch -p1 -i $< && touch $@)
+
+ # ---[ common ]-----------------------------------------------------------------
+
+--
+2.29.2
+