perlcross: not break build if already patched

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

(From OE-Core rev: 354163db5588d87941f53a2763be62b2430cc1fc)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mingli Yu
2021-07-28 13:39:59 +08:00
committed by Richard Purdie
parent 4a1381d350
commit dd5ebf4fdd

View File

@@ -22,7 +22,7 @@ index f4a26f5..7bc748e 100644
# 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 $@)
+ test ! -f $@ && (patch -p1 -i $< && touch $@) || echo "$@ exist"
# ---[ common ]-----------------------------------------------------------------