From: Mingli Yu <[email protected]>
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 let do_fetch always
executed to make sure the source files which come from SRC_URI brand
new in each build to avoid the source files patched twice to fix the
build failure as above.
Signed-off-by: Mingli Yu <[email protected]>
---
meta/recipes-devtools/perl/perl_5.34.0.bb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb
b/meta/recipes-devtools/perl/perl_5.34.0.bb
index 7935a58723..2e48110d2b 100644
--- a/meta/recipes-devtools/perl/perl_5.34.0.bb
+++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
@@ -382,3 +382,5 @@ EOF
chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl
cat ${SYSROOT_DESTDIR}${bindir}/nativeperl
}
+
+do_fetch[nostamp] = "1"
--
2.17.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#153076):
https://lists.openembedded.org/g/openembedded-core/message/153076
Mute This Topic: https://lists.openembedded.org/mt/83620027/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-