diff options
authorEnrico Jorns <ejo@pengutronix.de>2016-05-30 15:04:05 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-27 09:00:23 +0100
commita27b907dd3ad20fc60b7732c19012793aaaba2df (patch)
parentf28840de3912c805acde8d11188f0c48617678ab (diff)
perl-ptest.inc: fix tar call to prevent objcopy failure
With tar version 1.29, the tar call used to copy the ptest files will not work anymore. While the call did not match the man page (but worked) before, anyway, the latest update of tar seems to have a more strict argument handling. With the current version of the tar call, the copying of files still works with latest tar version, but the excludes will not be handled properly anymore. This results in having binaries compiled with host GCC in the package. When doing the strip_and_split files in do_package() with the target objcopy, bitbake will fail with this error: ERROR: objcopy failed with exit code 256 (cmd was [...]) [...] File format not recognized Thus, the current argument issues and required changes are: * Options must be placed _before_ the pathnames. * --exclude must be followd by a '=' in order to work properly * 'f' options is for providing an archive file, which is unnecessary in this case Note that this could also be a candidate for backporting. (From OE-Core master rev: 2e498879098f7d84610aed7961d92433083d9a02) Signed-off-by: Enrico Jorns <ejo@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
1 files changed, 2 insertions, 2 deletions
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 948ea7cddf..5f0989f30b 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -7,8 +7,8 @@ do_install_ptest () {
mkdir -p ${D}${PTEST_PATH}
sed -e "s:\/opt:\/usr:" -i Porting/add-package.pl
sed -e "s:\/local\/gnu\/:\/:" -i hints/cxux.sh
- tar -cf - * --exclude \*.o --exclude libperl.so --exclude Makefile --exclude makefile --exclude hostperl \
- --exclude miniperl --exclude generate_uudmap --exclude patches | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=\*.o --exclude=libperl.so --exclude=Makefile --exclude=makefile --exclude=hostperl \
+ --exclude=miniperl --exclude=generate_uudmap --exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x )
sed -i -e "s,${D},,g" \
-e "s,--sysroot=${STAGING_DIR_HOST},,g" \