From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <36NjoYAgKCkst241pvqnt11tyr.p1zyvonovtnvy5174pr9n4r.14t@flex--gprocida.bounces.google.com> 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 From: Giuliano Procida To: libabigail@sourceware.org Cc: dodji@seketeli.org, kernel-team@android.com, gprocida@google.com, maennich@google.com, david.marchand@redhat.com Content-Type: text/plain; charset="UTF-8" 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-List-Received-Date: Fri, 09 Jul 2021 23:16:58 -0000 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(-) -- 2.32.0.93.g670b81a890-goog