summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl-cross
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:40 +0100
commit4d516fdda6970a2276273e01c1ea7bd0c07118b1 (patch)
tree4af30d465bfc602575f733570615c4f3327dbdbd /meta/recipes-devtools/perl-cross
parentbe1cf223bf9c514ee81820ded5b13318458c0daf (diff)
downloadpoky-4d516fdda6970a2276273e01c1ea7bd0c07118b1.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. (From OE-Core rev: 2a71a1f308b7f97d83bd23b0f8e733543841efad) 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')
-rw-r--r--meta/recipes-devtools/perl-cross/files/0001-Makefile-check-the-file-if-patched-or-not.patch31
-rw-r--r--meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb1
2 files changed, 32 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 @@
1From 24a3e0c48f9ebe473b5f1078663e275c27d0537f Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Fri, 2 Jul 2021 09:08:21 +0000
4Subject: [PATCH] Makefile: check the file if patched or not
5
6Check the file if patched or not to avoid patched more than
7one time.
8
9Upstream-Status: Inappropriate (OE-specific)
10
11Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
12---
13 Makefile | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/Makefile b/Makefile
17index f4a26f5..7bc748e 100644
18--- a/Makefile
19+++ b/Makefile
20@@ -61,7 +61,7 @@ miniperlmain$O: $(CROSSPATCHED)
21 # Original versions are not saved anymore; patch generally takes care of this,
22 # and if that fails, reaching for the source tarball is the safest option.
23 $(CROSSPATCHED): %.applied: %.patch
24- patch -p1 -i $< && touch $@
25+ test ! -f $@ && (patch -p1 -i $< && touch $@)
26
27 # ---[ common ]-----------------------------------------------------------------
28
29--
302.29.2
31
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..b19692b2f3 100644
--- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
+++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
@@ -17,6 +17,7 @@ SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
17 file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ 17 file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \
18 file://determinism.patch \ 18 file://determinism.patch \
19 file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \ 19 file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \
20 file://0001-Makefile-check-the-file-if-patched-or-not.patch \
20 " 21 "
21UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/" 22UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/"
22 23