From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.pbcl.net ([88.198.119.4] helo=hetzner.pbcl.net) by linuxtogo.org with esmtp (Exim 4.72) (envelope-from ) id 1TOCq4-0007V3-8v for openembedded-core@lists.openembedded.org; Tue, 16 Oct 2012 21:30:04 +0200 Received: from blundell.swaffham-prior.co.uk ([91.216.112.25] helo=[192.168.114.6]) by hetzner.pbcl.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1TOCdF-0007c9-4d; Tue, 16 Oct 2012 21:16:49 +0200 Message-ID: <1350414852.4470.128.camel@x121e.pbcl.net> From: Phil Blundell To: Saul Wold Date: Tue, 16 Oct 2012 20:14:12 +0100 In-Reply-To: <507DA7A0.5060100@linux.intel.com> References: <1349112564.32611.71.camel@phil-desktop> <507B3297.3010102@linux.intel.com> <1350297128.3259.132.camel@phil-desktop> <507DA7A0.5060100@linux.intel.com> X-Mailer: Evolution 3.4.3-1 Mime-Version: 1.0 Cc: openembedded-core@lists.openembedded.org Subject: Re: [PATCH] insane: Rationalise phdrs-based QA checks X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Oct 2012 19:30:04 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit On Tue, 2012-10-16 at 11:29 -0700, Saul Wold wrote: > On 10/15/2012 03:32 AM, Phil Blundell wrote: > > 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. > > > This is better, but I found another failure: > > > ERROR: Error executing a python function in /intel/distro/meta/recipes-devtools/qemu/qemu_1.2.0.bb: > > ExecutionError: Execution of '/intel/poky/builds/world/tmp/sysroots/x86_64-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-objdump -p /intel/poky/builds/world/tmp/work/armv5te-poky-linux-gnueabi/qemu-1.2.0-r3/packages-split/qemu/usr/share/qemu/palcode-clipper' failed with exit code 1: > > /intel/poky/builds/world/tmp/sysroots/x86_64-linux/usr/bin/armv5te-poky-linux-gnueabi/arm-poky-linux-gnueabi-objdump: /intel/poky/builds/world/tmp/work/armv5te-poky-linux-gnueabi/qemu-1.2.0-r3/packages-split/qemu/usr/share/qemu/palcode-clipper: File format not recognized > > > > When I run file: > /intel/poky/builds/world/tmp/work/armv5te-poky-linux-gnueabi/qemu-1.2.0-r3/packages-split/qemu/usr/share/qemu/palcode-clipper: > ELF 64-bit LSB executable, Alpha (unofficial), version 1 (SYSV), > statically linked, not stripped > > I was building qemuarm, but I had a done a qemuppc build earlier also. Well, that's a bit weird. It seems as though you have somehow gotten an Alpha binary installed, which isn't appropriate for either qemuarm or qemuppc. In fact I don't think we support alpha in oe-core at all so it's a bit of a mystery how it would have been built in the first place. On the one hand, this is a genuine problem and it's good that the QA check is diagnosing it. On the other hand, it probably oughtn't to be diagnosing it by means of an objdump failure (and I think there is already a dedicated check for wrong ELF arch anyway). So probably the right thing to do is just trap exceptions around running objdump and ignore any files that it doesn't understand. p.