From patchwork Thu Apr 13 13:09:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 750432 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org 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 ozlabs.org (Postfix) with ESMTPS id 3w3h3T5dcbz9sNj for ; Thu, 13 Apr 2017 23:10:13 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="PWLsWu0W"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:to:from:subject:message-id:date:mime-version :content-type; q=dns; s=default; b=ch5H5SEgX5xSsuL6gHZml10yZfK4j hYApyXx97xovmzwsw6jso/LkuTP0Vkb3fGi78UAeMqAwXLYV9JUirxkviC0lWA8Q MB2fHkP+NuZu3XY6W7u26ArE51T1DMreaZQCn4Jm7ZC2+lIQJpMAKmJewo4jpP1r f8dw4hUJCY6EJQ= 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:to:from:subject:message-id:date:mime-version :content-type; s=default; bh=7WxiZUqrJp4JJgvPCByaVoOXMT4=; b=PWL sWu0WmNIzo1poN42P3DI4HQl5QeKYQVZ0Tp7pdXRcKI/mBBUH+t4qnbCTpd/0kZS 5Eh07ABrLqeN6BgE2iXoxf/fljHbIW0ZS0PyPPfYmXQJsZoHnlKZlxuKqugC3e8S 2KJt5NKIDV1Mc/8Oxq0Bh/F4iP6Z+jhit8KfagQM= Received: (qmail 25087 invoked by alias); 13 Apr 2017 13:09: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 Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 25071 invoked by uid 89); 13 Apr 2017 13:09:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=nf X-HELO: mx1.redhat.com DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3575AC04BD3C Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=fweimer@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3575AC04BD3C To: GNU C Library From: Florian Weimer Subject: Compat symbols in abilist files Message-ID: <6453f4f9-75b5-68b9-0e6b-22f40aaee599@redhat.com> Date: Thu, 13 Apr 2017 15:09:56 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 I've come up with the attached patch to mark compat symbols as such in the abilist files. Do we want to do this? The downside is that when building glibc in certain non-standard configurations, some symbols are not compat symbols anymore (the prime example is probably --enable-obsolete-rpc). On the other hand, the additional verification is valuable. Thanks, Florian ABI checks: Mark compat symbols with "" 2017-04-13 Florian Weimer * scripts/abilist.awk: Mark compat symbols with "." diff --git a/scripts/abilist.awk b/scripts/abilist.awk index bd740d4..cb17373 100644 --- a/scripts/abilist.awk +++ b/scripts/abilist.awk @@ -46,7 +46,10 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) { size = " 0x" size; version = $6; symbol = $NF; - gsub(/[()]/, "", version); + weak = version ~ /^\(.*\)$/; + if (weak) { + gsub(/[()]/, "", version); + } # binutils versions up through at least 2.23 have some bugs that # caused STV_HIDDEN symbols to appear in .dynsym, though that is useless. @@ -102,6 +105,10 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) { if (desc == "") desc = symbol " " type size; + if (weak) { + desc = desc " "; + } + if (combine) version = soname " " version (combine_fullname ? " " sofullname : "");