From patchwork Fri Jul 9 23:16:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 44303 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 024363994836 for ; Fri, 9 Jul 2021 23:17:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 024363994836 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625872621; bh=Jl66iRJNJFARe41h/Tko73oHmgNZAIdqJebUydRKqkA=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:Cc:From; b=D/ShT+J9YfFhCVxOHKRW68uxJjVSDvtA9WX/SIrimgEreSh+zKIKwPT3xliSAIfkn wGgvgyBAkIN+/OF3hRDSKvK+MgwPkjY+iAziEevuA3hIczGzAfgzVwCNi1Sb9VVONY d9zvV4mU9lvC/0zCHhpbXgL6NeAxx+4APEYOvub4= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-qv1-xf4a.google.com (mail-qv1-xf4a.google.com [IPv6:2607:f8b0:4864:20::f4a]) by sourceware.org (Postfix) with ESMTPS id 3BC113857C7F for ; Fri, 9 Jul 2021 23:16:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3BC113857C7F Received: by mail-qv1-xf4a.google.com with SMTP id f16-20020ad442d00000b029028c5121bf35so7460762qvr.10 for ; Fri, 09 Jul 2021 16:16:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=Jl66iRJNJFARe41h/Tko73oHmgNZAIdqJebUydRKqkA=; b=gi/+QpX+rVRQ78i6dbWOIA4Y9HKqpicGXgjlM9oGn++8yTB/A3wspxLi6IeJvNUOXL iqv59mnCcF3pgw9rTSXl+/a6aJESMfimf4EO9J7wCXaJhfxSZLtCvE98PIUxSyAdsYkh bRUcwkD+zuvxdxj3SivLB0Lqqrjuc/PVQqkPbx2GT3gVegzInYkykWhxrUkA5/W4GDgW dWqQVP0MPtLrNDxBHHRFuLXzf6cGQiHmXqqINPBpi376Cx0FJK+lWL4bc0IsXQ40tN72 +lDm3EgG0sgkjs5nUUDph6e4BbzjZ+ZvQ/O9n/zPJg10ibSjC1OZEEgFHQ7wCNbBM/Nt 2qnQ== X-Gm-Message-State: AOAM530465ZHueejdHqZIIGqI1aq0NF6YeZ0hx7VQGKPZnSNHH8okfCy b3A7ce6rEh+yg0D7TWr3mSioNucYaMpmPbyEFrjsRu1rxQ3HSQfuLUXL/lotNkHiOdCmE875E+z 7dMgvso3pTvthm8qyIilfIUrOVwxzx2sQH68hkw0L++XDg2SSYfznANY1WmOAqcGpNFsItyY= X-Google-Smtp-Source: ABdhPJz3nVYXxAFU5TBFe2XgKUzBVI5EeUSwK2d6cB/P1WuydyM/yTpGDAozdJUVlgT/LcH87FwLERagZaTASA== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:7141:9291:942a:ca34]) (user=gprocida job=sendgmr) by 2002:a05:6214:1244:: with SMTP id q4mr39019428qvv.50.1625872616775; Fri, 09 Jul 2021 16:16:56 -0700 (PDT) Date: Sat, 10 Jul 2021 00:16:48 +0100 Message-Id: <20210709231649.2969609-1-gprocida@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.32.0.93.g670b81a890-goog Subject: [PATCH 0/1] Fix Bug 28060 - Invalid offset for bitfields To: libabigail@sourceware.org X-Spam-Status: No, score=-16.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Giuliano Procida via Libabigail From: Giuliano Procida Reply-To: Giuliano Procida Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Hi Dodji. I believe this fixes the bug as reported. I've tested with GCC and Clang and with multiple target architectures where I could. However, I would strongly recommend further testing and review given the history of this issue. Tests with a Linux kernel before / after the fix show a plain abidiff of around 1400 lines which is large but less than I feared. The scope of apparently breaking ABIs is at least: - GCC 10 (except with -gdwarf-5). - Clang 11. - Both big endian and little endian architectures. - Bitfields whose containing type does not have byte offset zero, unless their bit offset within the type as expressed by the DW_AT_data_bit_offset attribute is also zero and the compiler has omitted this attribute. This may warrant another XML version bump, but I'll let you make that call. Regards, Giuliano. Giuliano Procida (1): DWARF reader: fix bitfield offset calculations src/abg-dwarf-reader.cc | 60 +- .../data/test-annotate/test13-pr18894.so.abi | 54 +- .../data/test-annotate/test15-pr18892.so.abi | 4 +- .../data/test-annotate/test17-pr19027.so.abi | 12 +- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 8 +- .../data/test-annotate/test21-pr19092.so.abi | 44 +- .../PR25409-librte_bus_dpaa.so.20.0.abi | 5258 +++++++++-------- ...4--libcdio-0.94-2.fc26.x86_64-report.1.txt | 42 - .../data/test-read-dwarf/PR25007-sdhci.ko.abi | 168 +- .../PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi | 24 +- .../test-read-dwarf/test13-pr18894.so.abi | 54 +- .../test-read-dwarf/test15-pr18892.so.abi | 4 +- .../test-read-dwarf/test17-pr19027.so.abi | 12 +- ...19-pr19023-libtcmalloc_and_profiler.so.abi | 8 +- .../test-read-dwarf/test21-pr19092.so.abi | 44 +- .../test22-pr19097-libstdc++.so.6.0.17.so.abi | 14 +- 16 files changed, 2886 insertions(+), 2924 deletions(-)