From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36010) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEalc-0007y9-TX for qemu-devel@nongnu.org; Sun, 19 Jun 2016 07:19:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bEalY-0003zT-F9 for qemu-devel@nongnu.org; Sun, 19 Jun 2016 07:19:51 -0400 Received: from mail.weilnetz.de ([37.221.199.173]:59044) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEalY-0003z4-8o for qemu-devel@nongnu.org; Sun, 19 Jun 2016 07:19:48 -0400 References: <1466287502-18730-1-git-send-email-pmaydell@chiark.greenend.org.uk> <1466287502-18730-3-git-send-email-pmaydell@chiark.greenend.org.uk> <57663351.50802@weilnetz.de> From: Stefan Weil Message-ID: <57667FD0.6020106@weilnetz.de> Date: Sun, 19 Jun 2016 13:19:44 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] configure: Make AVX2 test robust to non-ELF systems List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Peter Maydell , QEMU Developers , Patch Tracking Am 19.06.2016 um 11:41 schrieb Peter Maydell: > On 19 June 2016 at 06:53, Stefan Weil wrote: >> Am 19.06.2016 um 00:05 schrieb Peter Maydell: >>> From: Peter Maydell >>> >>> The AVX2 optimization test assumes that the object format >>> is ELF and the system has the readelf utility. If this isn't >>> true then configure might fail or emit a warning (since in >>> a pipe "foo | bar >/dev/null 2>&1" does not redirect the >>> stderr of foo, only of bar). Adjust the check so that if >>> we don't have readelf or don't have an ELF object then we >>> just don't enable the AVX2 optimization. >>> >>> Reported-by: Stefan Weil >>> Signed-off-by: Peter Maydell >>> --- >>> configure | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/configure b/configure >>> index 7beefcd..30bca55 100755 >>> --- a/configure >>> +++ b/configure >>> @@ -1792,8 +1792,10 @@ int foo(void *a) __attribute__((ifunc("bar_ifunc"))); >>> int main(int argc, char *argv[]) { return foo(argv[0]);} >>> EOF >>> if compile_object "" ; then >>> - if readelf --syms $TMPO |grep "IFUNC.*foo" >/dev/null 2>&1; then >>> - avx2_opt="yes" >>> + if has readelf; then >>> + if readelf --syms $TMPO 2>/dev/null |grep -q "IFUNC.*foo"; then >>> + avx2_opt="yes" >>> + fi >>> fi >>> fi >>> >>> >> >> You could check "has readelf" earlier and avoid the compile test >> if there is no readelf (saves a little time). > > I guess so, though there's not much in it. > >> The final I/O redirection is still needed (otherwise Linux users will >> see the grep output). > > I added -q which should suppress that, no ? > > thanks > -- PMM > Sorry, I missed that detail. Reviewed-by: Stefan Weil