]> code.ossystems Code Review - openembedded-core.git/commitdiff
perl-ptest.inc: fix tar call to prevent objcopy failure
authorEnrico Jorns <ejo@pengutronix.de>
Mon, 30 May 2016 13:04:05 +0000 (15:04 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 1 Jun 2016 07:04:12 +0000 (08:04 +0100)
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.

Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/perl/perl-ptest.inc

index 948ea7cddf02911c30e66fe584861d5e197eb539..5f0989f30b8004e4b46000b528f95e9efb0d88fa 100644 (file)
@@ -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" \