On Sun, 2012-10-14 at 14:45 -0700, Saul Wold wrote: > On 10/01/2012 10:29 AM, Phil Blundell wrote: > > Various different QA checks are based on essentially the same data from > > the ELF program headers. Calling objdump to extract it repeatedly is > > inefficient, particularly if the shell is involved. Instead, let's > > cache the output from objdump inside the qa.elf object and allow it to > > be reused by multiple tests. > > > > Also, using objdump instead of scanelf to check for bad RPATHs (in the > > same way that the useless-rpaths check was doing already) allows the > > dependency on pax-utils-native to be dropped. > > > This seems to be failing for a QemuArm build of world, specifically > lsbsetup, quilt, sysvinit, and foomatic-filters seems like its failing > on symlinks.
I wasn't able to complete a build of world successfully due to some unrelated-looking breakage in xserver-xorg, but I did reproduce this problem by building quilt by hand. The attached patch fixes it for me. thanks p.
>From 0aa4c262ded3e9d9da8293d899cd6ec28b4f60bb Mon Sep 17 00:00:00 2001 From: Phil Blundell <[email protected]> Date: Mon, 15 Oct 2012 11:28:00 +0100 Subject: [PATCH] insane: Don't try to run objdump on symlinks If the link is absolute then we might end up reading from a host binary or a nonexistent path, neither of which will produce useful results and may result in objdump failure and python backtrace spew. If the link does point to a binary within the installation root then we will scan the pointed-to file at some point anyway so there is no need to do it again. Signed-off-by: Phil Blundell <[email protected]> --- meta/classes/insane.bbclass | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 2b48419..71a9a58 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -157,6 +157,9 @@ def package_qa_check_rpath(file,name, d, elf, messages): if not elf: return + if os.path.islink(file): + return + bad_dirs = [d.getVar('TMPDIR', True) + "/work", d.getVar('STAGING_DIR_TARGET', True)] bad_dir_test = d.getVar('TMPDIR', True) @@ -186,6 +189,9 @@ def package_qa_check_useless_rpaths(file, name, d, elf, messages): if not elf: return + if os.path.islink(file): + return + libdir = d.getVar("libdir", True) base_libdir = d.getVar("base_libdir", True) -- 1.7.10.4
_______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
