mirror of
https://git.yoctoproject.org/poky
synced 2026-03-06 07:19:39 +01:00
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>
perl-cross provides configure script, top-level Makefile
and some auxiliary files for perl,
with the primary emphasis on cross-compiling the source.
# Get perl and perl-cross sources
curl -L -O http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz
curl -L -O https://github.com/arsv/perl-cross/releases/download/1.1.3/perl-cross-1.1.3.tar.gz
# Unpack perl-cross over perl, overwriting Makefile
tar -zxf perl-5.24.1.tar.gz
cd perl-5.24.1
tar --strip-components=1 -zxf ../perl-cross-1.1.3.tar.gz
# Proceed as usual with most autoconfed packages
./configure --target=arm-linux-gnueabi --prefix=/usr -Duseshrplib
make -j4
make DESTDIR=/path/to/staging/dir install
Unlike mainline Perl, this configure never runs any target executables,
relying solely on compile/link tests and pre-defined hints.
On the flip side, it is only meant to run on resonably sane modern unix systems.
Check project pages for more info.
In particular, configure usage
lists available configure options.
Perl-cross is a free software licensed under the same terms
as the original perl source.
See LICENSE, Copying and Artistic files.