From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-4.0 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 718C220248 for ; Tue, 12 Mar 2019 20:12:01 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=VwGzvSsVh+Lgk8xA 28yJKmfw6R0z+ZtPbjR7yV9fnY/Xeb7MIm+G54c/IhsmWe5+29gnYXWnyrSjIGYE exmUISAcTcaNXdn8NuD7YBrl46tR417w0Xx+Kp/6rUisaZSmWf7B3EC96GITewqo OcAtgeNaTD+IkIHbOzpwB1YcC7c= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-type :content-transfer-encoding; s=default; bh=fpoAeaJbaZZAQ+ggAmLW29 mSG7o=; b=etWexhSzWvxhBgpuDiviPB1NJHkbzawBVBRvMduXfQEKfGZUHWSkO0 1J9qGpQcBRHKhYD/SuGfKQ2o1MxDqboG1ImjKdsvnP13rN5d6nfkyoC8h5saCTAq 6YnjPBrdqM1oB9IbZaa4IjfdI8yeG94F1gvllXqINhWruGSeIdU6A= Received: (qmail 1801 invoked by alias); 12 Mar 2019 20:11:59 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 1746 invoked by uid 89); 12 Mar 2019 20:11:57 -0000 Authentication-Results: sourceware.org; auth=none X-HELO: mail-qk1-f193.google.com Subject: Re: [PATCH] Fix output of LD_SHOW_AUXV=1. To: Stefan Liebler , GNU C Library References: From: Carlos O'Donell Openpgp: preference=signencrypt Message-ID: <5b73a948-5209-14b0-61d1-aca82c99e192@redhat.com> Date: Tue, 12 Mar 2019 16:11:48 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 3/12/19 11:06 AM, Stefan Liebler wrote: > commit 988376a08d6d36ea321203b9c039db4b266609ae > Author: Stefan Liebler > Date: Fri Mar 8 11:18:53 2019 +0100 > > Fix output of LD_SHOW_AUXV=1. > > Starting with commit 1616d034b61622836d3a36af53dcfca7624c844e > the output was corrupted on some platforms as _dl_procinfo > was called for every auxv entry and on some architectures like s390 > all entries were represented as "AT_HWCAP". > > This patch is removing the condition and let _dl_procinfo decide if > an entry is printed in a platform specific or generic way. > This patch also adjusts all _dl_procinfo implementations which assumed > that they are only called for AT_HWCAP or AT_HWCAP2. They are now just > returning a non-zero-value for entries which are not handled platform > specifc. > > ChangeLog: > > * elf/dl-sysdep.c (_dl_show_auxv): Remove condition and always > call _dl_procinfo. > * sysdeps/unix/sysv/linux/s390/dl-procinfo.h (_dl_procinfo): > Ignore types other than AT_HWCAP. > * sysdeps/sparc/dl-procinfo.h (_dl_procinfo): Likewise. > * sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_dl_procinfo): > Likewise. Thanks for the cleanup, this makes it really clear how this is intended to work. OK for master if you... - Fix ARM and POWERPC backend _dl_procinfo to remove "/* This should not happen. */" comment in dl-procinfo.c. It *does* happen now because we pass all options to the machine version first. Reviewed-by: Carlos O'Donell > diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c > index 5f6c679a3f..5d19b100b2 100644 > --- a/elf/dl-sysdep.c > +++ b/elf/dl-sysdep.c > @@ -328,14 +328,9 @@ _dl_show_auxv (void) > assert (AT_NULL == 0); > assert (AT_IGNORE == 1); > > - if (av->a_type == AT_HWCAP || av->a_type == AT_HWCAP2 > - || AT_L1I_CACHEGEOMETRY || AT_L1D_CACHEGEOMETRY > - || AT_L2_CACHEGEOMETRY || AT_L3_CACHEGEOMETRY) > - { > - /* These are handled in a special way per platform. */ > - if (_dl_procinfo (av->a_type, av->a_un.a_val) == 0) > - continue; > - } > + /* Some entries are handled in a special way per platform. */ > + if (_dl_procinfo (av->a_type, av->a_un.a_val) == 0) > + continue; OK. OK. ARM backend returns -1 with default handling. OK. POWERPC backend return -1 with default handling. > > if (idx < sizeof (auxvars) / sizeof (auxvars[0]) > && auxvars[idx].form != unknown) > diff --git a/sysdeps/sparc/dl-procinfo.h b/sysdeps/sparc/dl-procinfo.h > index 282b8c5117..cc2687e99b 100644 > --- a/sysdeps/sparc/dl-procinfo.h > +++ b/sysdeps/sparc/dl-procinfo.h > @@ -32,7 +32,7 @@ _dl_procinfo (unsigned int type, unsigned long int word) > int i; > > /* Fallback to unknown output mechanism. */ > - if (type == AT_HWCAP2) > + if (type != AT_HWCAP) OK. > return -1; > > _dl_printf ("AT_HWCAP: "); > diff --git a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h b/sysdeps/unix/sysv/linux/i386/dl-procinfo.h > index 22b43431bc..3aef14c6c1 100644 > --- a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h > +++ b/sysdeps/unix/sysv/linux/i386/dl-procinfo.h > @@ -31,7 +31,7 @@ _dl_procinfo (unsigned int type, unsigned long int word) > int i; > > /* Fallback to unknown output mechanism. */ > - if (type == AT_HWCAP2) > + if (type != AT_HWCAP) OK. > return -1; > > _dl_printf ("AT_HWCAP: "); > diff --git a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h > index 19329a335b..16739fd6cd 100644 > --- a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h > +++ b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h > @@ -33,7 +33,7 @@ _dl_procinfo (unsigned int type, unsigned long int word) > int i; > > /* Fallback to unknown output mechanism. */ > - if (type == AT_HWCAP2) > + if (type != AT_HWCAP) OK. > return -1; > > _dl_printf ("AT_HWCAP: "); -- Cheers, Carlos.