summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl-cross/files/0001-Makefile-check-the-file-if-patched-or-not.patch
AgeCommit message (Collapse)Author
2021-07-29perlcross: not break build if already patchedMingli Yu
Currently the build will break if the patch already applied as the return value of "test ! -f $@" is not 0, so make sure to return 0 if the patch already applied. Fixes: $ 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 40 make crosspatch make[1]: Entering directory '/build/tmp-glibc/work/x86_64-linux/perl-native/5.34.0-r0/perl-5.34.0' test ! -f cnf/diffs/perl5-5.34.0/posix-makefile.applied && (patch -p1 -i cnf/diffs/perl5-5.34.0/posix-makefile.patch && touch cnf/diffs/perl5-5.34.0/posix-makefile.applied) test ! -f cnf/diffs/perl5-5.34.0/dynaloader.applied && (patch -p1 -i cnf/diffs/perl5-5.34.0/dynaloader.patch && touch cnf/diffs/perl5-5.34.0/dynaloader.applied) make[1]: *** [Makefile:64: cnf/diffs/perl5-5.34.0/posix-makefile.applied] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [Makefile:64: cnf/diffs/perl5-5.34.0/dynaloader.applied] Error 1 make[1]: Leaving directory '/build/tmp-glibc/work/x86_64-linux/perl-native/5.34.0-r0/perl-5.34.0' make: *** [Makefile:78: all] Error 2 Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-05perlcross: check the file if patched or notMingli Yu
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>