From patchwork Sat Jul 10 16:52:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 44305 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 98D1E385780A for ; Sat, 10 Jul 2021 16:53:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 98D1E385780A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625935981; bh=tZBYGau4ns7vyDxpOybFAWIf+Afb1Pzar+gns03Pq08=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=gV/vvlS4nLpG9Sas+AsRvSP2AgMEtMvent2vMpq4hhAyyPk2uJLM9EGxA7HlXJhqY ZnPTHnG9GkXhmSNCsEoMaX0x5Q7fFBIMmXuLxa6Qgp3xiqQk6BgLtw1g7Z2PxWZM5L 8eHV3JZU3AlW1dzSC96w34kZ/Kl6ACGHsvpAzQxc= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-qk1-x749.google.com (mail-qk1-x749.google.com [IPv6:2607:f8b0:4864:20::749]) by sourceware.org (Postfix) with ESMTPS id BBF303858424 for ; Sat, 10 Jul 2021 16:52:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BBF303858424 Received: by mail-qk1-x749.google.com with SMTP id 134-20020a37068c0000b02903b7bc7392ceso6487042qkg.18 for ; Sat, 10 Jul 2021 09:52:38 -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:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=tZBYGau4ns7vyDxpOybFAWIf+Afb1Pzar+gns03Pq08=; b=bVcwZNxLRlQPNwA/ciQOuoQZP34GiEFZacjMgViYz62IFDO+PoLHZzsnbpwy888+ix xIJdD7yuFpiqZZey0fUva118YcEe579TBIs0WnhWq1+yEPJXFTmEylhsGlu+j4fdRkQX C7HvC8HezKj/rB6fMVuoR1OeQOKCV1isjd0XdgP6/v72jCbQ9bjjOwQB2DlfXjn0+bNH Q9SCZ2yOFVQ2/GrvUKygoLuRJgV08KCupNSZOSlvNnLlfLCX94TouefrzWNZkLfMLQlC H9UQC3iqtPo2hrOi4IdfuFxSj9xr9GclzK8ALdvNyHGibi32d/EvCH7ketP+5IsF3zP8 H6jg== X-Gm-Message-State: AOAM531A8U3TtKzj/KqBhT2BFBl0hfgdBVAj72Ehazgd7ZH8zQraHisL clcl8eq8/hzT/lmIj7cmHotYx5g/V1vJWYVXe52jOGvLx4YZ7C/atKDraeu+7I2C6yd4Haw4M70 MeHoL2tv6rPVvs8tOfX5HWW3PUUrW1pzfY+QaGe3MEm5pOwLCAVS1uBEWogVx02nOhlcGW1o= X-Google-Smtp-Source: ABdhPJxv7DY2ahm6c21LbXtg114C9ght4LsUa+HITvVlCTV2KozXpc6TokgvXmCLZ2Fg0YYoBSJOLO5RB7T41w== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:7cd8:15b0:ad65:4a42]) (user=gprocida job=sendgmr) by 2002:a05:6214:2a3:: with SMTP id m3mr42707821qvv.0.1625935957948; Sat, 10 Jul 2021 09:52:37 -0700 (PDT) Date: Sat, 10 Jul 2021 17:52:31 +0100 In-Reply-To: <20210709231649.2969609-2-gprocida@google.com> Message-Id: <20210710165232.3071638-1-gprocida@google.com> Mime-Version: 1.0 References: <20210709231649.2969609-2-gprocida@google.com> X-Mailer: git-send-email 2.32.0.93.g670b81a890-goog Subject: [PATCH v2] DWARF reader: fix bitfield offset calculations To: libabigail@sourceware.org X-Spam-Status: No, score=-22.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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" PR28060 - Invalid offset for bitfields Bitfield and other member offsets can be specified in DWARF using: - DW_AT_data_bit_offset, or - DW_AT_data_member_location and optionally DW_AT_bit_offset. The code would only use the value DW_AT_data_member_location if there was no DW_AT_bit_offset. This commit fixes this and adjusts documentation and affected tests. * src/abg-dwarf-reader.cc (read_and_convert_DW_at_bit_offset): Update documentation. (die_member_offset): Treat DW_AT_bit_offset as an optional adjustment to DW_AT_data_member_location. * tests/data/test-annotate/test13-pr18894.so.abi: Update. * tests/data/test-annotate/test15-pr18892.so.abi: Update. * tests/data/test-annotate/test17-pr19027.so.abi: Update. * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Update. * tests/data/test-annotate/test21-pr19092.so.abi: Update. * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: Regenerate. * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: Report now empty. * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Update. * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: Update. * tests/data/test-read-dwarf/test13-pr18894.so.abi: Update. * tests/data/test-read-dwarf/test15-pr18892.so.abi: Update. * tests/data/test-read-dwarf/test17-pr19027.so.abi: Update. * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Update. * tests/data/test-read-dwarf/test21-pr19092.so.abi: Update. * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Update. Signed-off-by: Giuliano Procida Tested-by: David Marchand --- src/abg-dwarf-reader.cc | 95 +- .../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, 2908 insertions(+), 2937 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index c8cd5170..9b59fd20 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -8433,31 +8433,35 @@ eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr, // // ----------------------------------- -/// Convert the value of the DW_AT_bit_offset attribute into the value -/// of the DW_AT_data_bit_offset attribute. +/// Convert a DW_AT_bit_offset attribute value into the same value as +/// DW_AT_data_bit_offset - 8 * DW_AT_data_member_location. /// /// On big endian machines, the value of the DW_AT_bit_offset +/// attribute + 8 * the value of the DW_AT_data_member_location /// attribute is the same as the value of the DW_AT_data_bit_offset /// attribute. /// /// On little endian machines however, the situation is different. /// The DW_AT_bit_offset value for a bit field is the number of bits -/// to the left of the most significant bit of the bit field. +/// to the left of the most significant bit of the bit field, within +/// the integer value at DW_AT_data_member_location. /// /// The DW_AT_data_bit_offset offset value is the number of bits to -/// the right of the least significant bit of the bit field. +/// the right of the least significant bit of the bit field, again +/// relative to the containing integer value. /// /// In other words, DW_AT_data_bit_offset is what everybody would -/// instinctively think of as being the "offset of the bit -/// field". DW_AT_bit_offset however is very counter-intuitive on -/// little endian machines. +/// instinctively think of as being the "offset of the bit field". 8 * +/// DW_AT_data_member_location + DW_AT_bit_offset however is very +/// counter-intuitive on little endian machines. /// /// This function thus reads the value of a DW_AT_bit_offset property /// of a DIE and converts it into what the DW_AT_data_bit_offset would -/// have been if it was present. +/// have been if it was present, ignoring the contribution of +/// DW_AT_data_member_location. /// /// Note that DW_AT_bit_offset has been made obsolete starting from -/// DWARF5. +/// DWARF5 (for GCC; Clang still emits it). /// /// If you like coffee and it's not too late, now might be a good time /// to have a coffee break. Otherwise if it's late at night, you @@ -8465,6 +8469,9 @@ eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr, /// read this. /// /// +/// In what follows, the bit fields are all contained within the first +/// whole int of the struct, so DW_AT_data_member_location is 0. +/// /// Okay, to have a better idea of what DW_AT_bit_offset and /// DW_AT_data_bit_offset represent, let's consider a struct 'S' which /// have bit fields data members defined as: @@ -8605,8 +8612,9 @@ eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr, /// /// @param offset this is the output parameter into which the value of /// the DW_AT_bit_offset is put, converted as if it was the value of -/// the DW_AT_data_bit_offset parameter. This parameter is set iff -/// the function returns true. +/// the DW_AT_data_bit_offset parameter, less the contribution of +/// DW_AT_data_member_location. This parameter is set iff the +/// function returns true. /// /// @return true if DW_AT_bit_offset was found on @p die. static bool @@ -8657,12 +8665,13 @@ read_and_convert_DW_at_bit_offset(const Dwarf_Die* die, /// DW_AT_data_member_location is not necessarily a constant that one /// would just read and be done with it. Rather, it can be a DWARF /// expression that one has to interpret. In general, the offset can -/// be given by the DW_AT_bit_offset or DW_AT_data_bit_offset -/// attribute. In that case the offset is a constant. But it can -/// also be given by the DW_AT_data_member_location attribute. In -/// that case it's a DWARF location expression. +/// be given by the DW_AT_data_bit_offset or by the +/// DW_AT_data_member_location attribute and optionally the +/// DW_AT_bit_offset attribute. The bit offset attributes are +/// always simple constants, but the DW_AT_data_member_location +/// attribute is a DWARF location expression. /// -/// When the it's the DW_AT_data_member_location that is present, +/// When it's the DW_AT_data_member_location that is present, /// there are three cases to possibly take into account: /// /// 1/ The offset in the vtable where the offset of a virtual base @@ -8691,12 +8700,12 @@ read_and_convert_DW_at_bit_offset(const Dwarf_Die* die, /// the offset of the function in the vtable. In this case this /// function returns that constant. /// -///@param ctxt the read context to consider. +/// @param ctxt the read context to consider. /// -///@param die the DIE to read the information from. +/// @param die the DIE to read the information from. /// -///@param offset the resulting constant offset, in bits. This -///argument is set iff the function returns true. +/// @param offset the resulting constant offset, in bits. This +/// argument is set iff the function returns true. static bool die_member_offset(const read_context& ctxt, const Dwarf_Die* die, @@ -8704,39 +8713,24 @@ die_member_offset(const read_context& ctxt, { Dwarf_Op* expr = NULL; uint64_t expr_len = 0; - uint64_t off = 0; + uint64_t bit_offset = 0; // First let's see if the DW_AT_data_bit_offset attribute is // present. - if (die_unsigned_constant_attribute(die, DW_AT_data_bit_offset, off)) + if (die_unsigned_constant_attribute(die, DW_AT_data_bit_offset, bit_offset)) { - offset = off; - return true; - } - - // Otherwise, let's see if the DW_AT_bit_offset attribute is - // present. On little endian machines, we need to convert this - // attribute into what it would have been if the - // DW_AT_data_bit_offset was used instead. In other words, - // DW_AT_bit_offset needs to be converted into a - // human-understandable form that represents the offset of the - // bitfield data member it describes. For details about the - // conversion, please read the extensive comments of - // read_and_convert_DW_at_bit_offset. - bool is_big_endian = architecture_is_big_endian(ctxt.elf_handle()); - if (read_and_convert_DW_at_bit_offset(die, is_big_endian, off)) - { - offset = off; + offset = bit_offset; return true; } + // Otherwise, let's see if the DW_AT_data_member_location attribute and, + // optionally, the DW_AT_bit_offset attributes are present. if (!die_location_expr(die, DW_AT_data_member_location, &expr, &expr_len)) return false; - // Otherwise, the DW_AT_data_member_location attribute is present. - // In that case, let's evaluate it and get its constant + // The DW_AT_data_member_location attribute is present. + // Let's evaluate it and get its constant // sub-expression and return that one. - if (!eval_quickly(expr, expr_len, offset)) { bool is_tls_address = false; @@ -8745,8 +8739,23 @@ die_member_offset(const read_context& ctxt, ctxt.dwarf_expr_eval_ctxt())) return false; } - offset *= 8; + + // On little endian machines, we need to convert the + // DW_AT_bit_offset attribute into a relative offset to 8 * + // DW_AT_data_member_location equal to what DW_AT_data_bit_offset + // would be if it were used instead. + // + // In other words, before adding it to 8 * + // DW_AT_data_member_location, DW_AT_bit_offset needs to be + // converted into a human-understandable form that represents the + // offset of the bitfield data member it describes. For details + // about the conversion, please read the extensive comments of + // read_and_convert_DW_at_bit_offset. + bool is_big_endian = architecture_is_big_endian(ctxt.elf_handle()); + if (read_and_convert_DW_at_bit_offset(die, is_big_endian, bit_offset)) + offset += bit_offset; + return true; } diff --git a/tests/data/test-annotate/test13-pr18894.so.abi b/tests/data/test-annotate/test13-pr18894.so.abi index 9e1f066f..da412b84 100644 --- a/tests/data/test-annotate/test13-pr18894.so.abi +++ b/tests/data/test-annotate/test13-pr18894.so.abi @@ -497,23 +497,23 @@ - + - + - + - + - + @@ -538,19 +538,19 @@ - + - + - + - + @@ -799,27 +799,27 @@ - + - + - + - + - + - + @@ -1033,11 +1033,11 @@ - + - + @@ -1074,7 +1074,7 @@ - + @@ -1117,11 +1117,11 @@ - + - + @@ -1179,11 +1179,11 @@ - + - + @@ -1305,11 +1305,11 @@ - + - + @@ -1321,7 +1321,7 @@ - + @@ -3235,11 +3235,11 @@ - + - + diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi index e64f0ff7..11f92374 100644 --- a/tests/data/test-annotate/test15-pr18892.so.abi +++ b/tests/data/test-annotate/test15-pr18892.so.abi @@ -8191,11 +8191,11 @@ - + - + diff --git a/tests/data/test-annotate/test17-pr19027.so.abi b/tests/data/test-annotate/test17-pr19027.so.abi index b07f0565..8401b438 100644 --- a/tests/data/test-annotate/test17-pr19027.so.abi +++ b/tests/data/test-annotate/test17-pr19027.so.abi @@ -9741,11 +9741,11 @@ - + - + @@ -9758,7 +9758,7 @@ - + @@ -9891,15 +9891,15 @@ - + - + - + diff --git a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi index 131b8078..46097898 100644 --- a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi +++ b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi @@ -20701,19 +20701,19 @@ - + - + - + - + diff --git a/tests/data/test-annotate/test21-pr19092.so.abi b/tests/data/test-annotate/test21-pr19092.so.abi index c742d7e4..8b91511a 100644 --- a/tests/data/test-annotate/test21-pr19092.so.abi +++ b/tests/data/test-annotate/test21-pr19092.so.abi @@ -1023,7 +1023,7 @@ - + @@ -1433,15 +1433,15 @@ - + - + - + @@ -1452,11 +1452,11 @@ - + - + @@ -1464,11 +1464,11 @@ - + - + @@ -1496,7 +1496,7 @@ - + @@ -6371,27 +6371,27 @@ - + - + - + - + - + - + @@ -6553,7 +6553,7 @@ - + @@ -7792,15 +7792,15 @@ - + - + - + @@ -7835,15 +7835,15 @@ - + - + - + diff --git a/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi b/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi index 52b7ce7e..2fe68f42 100644 --- a/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi +++ b/tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi @@ -119,15 +119,15 @@ - - - - + + + + - - - + + + @@ -141,12 +141,18 @@ - + + + + + + + - + @@ -164,16 +170,16 @@ - + - + - + - + @@ -182,17 +188,15 @@ - - - - - - - - - + - + + + + + + + @@ -244,23 +248,19 @@ - - - - + - - - - - - - + - + + + + + + - + @@ -327,7 +327,7 @@ - + @@ -336,9 +336,9 @@ - - - + + + @@ -361,7 +361,7 @@ - + @@ -387,25 +387,25 @@ - - - - - - - - - + + + + + + + + + @@ -423,10 +423,10 @@ - + - + @@ -444,34 +444,12 @@ - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -480,43 +458,32 @@ - + - + - + - - - - - - - - - - + - - - - + + - - + + - + - + - + @@ -531,31 +498,70 @@ - + - + + + + + + + + + + - - - + + + - - + + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -574,7 +580,7 @@ - + @@ -594,67 +600,95 @@ - - + - + - - + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - + + + + + - + - + + + + - + - + - + - + - + - + - + @@ -662,15 +696,15 @@ - + - + - + @@ -681,75 +715,41 @@ - + - - - - - - - + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - + + + + + + - - - + + + - + - + - + @@ -757,22 +757,22 @@ - + - + - + - + - - + + @@ -781,29 +781,29 @@ - + - + - - + + - - + + - - + + @@ -823,7 +823,7 @@ - + @@ -888,16 +888,16 @@ - + - + - + @@ -927,37 +927,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + @@ -972,55 +947,179 @@ - + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -1030,20 +1129,20 @@ - + - + - + - + @@ -1051,84 +1150,79 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + @@ -1148,61 +1242,38 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + @@ -1215,30 +1286,30 @@ - - + + - + - + - + - + - + - + - + @@ -1247,27 +1318,20 @@ - - + + - + - + - + - - - - - - - - + @@ -1278,89 +1342,57 @@ - + - + - + - - - - + - - + + - - + + - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + + + - - + + - - + + - + - + @@ -1369,36 +1401,36 @@ - + - + - + - + - + - + - + - + - + - + @@ -1412,15 +1444,15 @@ - + - + - + @@ -1428,160 +1460,110 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - - - - - - + + + - - + + - - + + - + - - + + - - + + - - - - + + - - - - - - - - - - - - - - - - + - + - + - - + + + + - - + + - - + + + + - - + + - - + + - + - + - + - + @@ -1611,85 +1593,116 @@ - + + + + + + + + + - + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + + + + - - - + + + - - + + - - + + + + + - + - - + + + + + - - - + + + - - + + - - - - + + - - - - + + - - + + - - + + + + + + + + - + - - + + - - + + + + + + + + + + + - + @@ -1697,7 +1710,7 @@ - + @@ -1709,7 +1722,7 @@ - + @@ -1720,31 +1733,31 @@ - + - + - + - + - + - + @@ -1752,63 +1765,60 @@ - + - + - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1819,79 +1829,79 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - + @@ -1912,7 +1922,7 @@ - + @@ -1920,38 +1930,38 @@ - + - + - + - - + + - - + + - + - - + + - - + + - + @@ -1969,65 +1979,65 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - - + + - - + + - + @@ -2035,22 +2045,22 @@ - + - - - - + - + - + + + + - + - + @@ -2059,15 +2069,15 @@ - + - + - + @@ -2075,133 +2085,257 @@ - + - + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + - + - + - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + @@ -2214,7 +2348,7 @@ - + @@ -2222,27 +2356,43 @@ - + - + + + + + + + + + + + + + + + + + - + - + - + - + @@ -2254,13 +2404,13 @@ - + - + - + @@ -2269,7 +2419,7 @@ - + @@ -2281,19 +2431,19 @@ - + - + - + - + - + @@ -2302,17 +2452,16 @@ - + - + - - + @@ -2320,61 +2469,51 @@ - - - + - + - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2382,45 +2521,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2428,23 +2567,9 @@ - - - - - - - - - - - - - - - + - + @@ -2453,7 +2578,7 @@ - + @@ -2461,405 +2586,281 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + + - - - - - + + - - + + - - - - + + - + - + - + - - - - - - - - - + - + - + - + - + - + - + - + - + + + + + + + + + - + - + - + + - + - + - + - + - + - + - + - + - + - - - - + + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - - - + + - - - - - - - - - + + + - - + + - - + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - + + - - + + @@ -2868,16 +2869,16 @@ - - + + - + - + @@ -2885,8 +2886,8 @@ - - + + @@ -2895,14 +2896,14 @@ - - + + - + @@ -2912,7 +2913,7 @@ - + @@ -2938,19 +2939,19 @@ - + - - + + - + @@ -2969,13 +2970,13 @@ - + - + @@ -2984,50 +2985,50 @@ - + - + - + - - + + - - + + - + - - + + - + - + - + - - + + @@ -3048,12 +3049,12 @@ - + - + @@ -3099,7 +3100,7 @@ - + @@ -3126,537 +3127,685 @@ - + - + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + - + - + - - + + - - + + - - + + + + - - + + - + + + + + + + + + + + + + + + + - + - + - + - + + + + + + + + + + + - + - + - - + + + + + + + + + + + - + - + - + - + - + - - - - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + + + + + + + + + + + + + - + - + - - - - - - - - - - + - + - + - + - + - + - - - - + - - - - + - - - - - - - - + + - - + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - + + - + - + - + - + - + - + - - - - - - - - - - - + + + + + + + + - + - + - - + + - - + + - + - + - - + + - - + + + + + + + + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + - + - + - + - + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - - - + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + + + - + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + - - + + - + - - - - + - - - - + - + - + - - + + - - + + - - + + - + + + + + + + + + - + + + + - + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + - + @@ -3671,78 +3820,103 @@ - + - - - - - - - - + + + + - + - + + + + + + - + - + + + - + - - + + - - + + + + - - + + + + + + + + + + + + + - - + + - + - - - - + + + + + + + + + - + - + - - + + - - + + + + - - + + - + - + - - + + - - + + + + - + - + @@ -3760,13 +3934,6 @@ - - - - - - - @@ -3775,22 +3942,9 @@ - - - - - - - - - - - - - - + - + @@ -3805,1383 +3959,1233 @@ - + - - - + + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - - - + + - + - + - + - - + + - - + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - + - + - - - - + - - + + - - + + - - + + - - + + - - + + - + - - - - + - - + + - - + + - - + + - + - - - - + - - + + - - + + + + - - + + - + - + - + - - - - + - - - - + + - - + + - + - - - - - - + + + + - + - + - - + + - - - - + + - - + + - - + + - - - - - - - - - - - - - + + + + + - + - + - - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + + + - - + + + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + - + - - - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + - + - - - - + - - - - - - - + - - - - + - - - - + - + - + - + - + - - - - + - + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - - - - + + - - + + - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - + + - - + + - - - - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - - - + + - - + + - - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - - - + + - - + + - - + + - - + + - - + + - - - + - + - - - - + - + - - - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - + + - - + + - + - + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - - - - - - - - - - - + + - - + + - - + + - - - - - - + + + + + - + - + - - - + - - - - - - + + + + + + - + - - - + + + - + - + - + - - - + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -5196,25 +5200,25 @@ - + - + - - + + - + - + @@ -5224,250 +5228,250 @@ - + - + - + - + - - + + - + - - - + + + - - + + - + - + - - - + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -5475,29 +5479,29 @@ - + - - + + - + - + - + @@ -5512,14 +5516,14 @@ - + - + - + @@ -5545,9 +5549,9 @@ - + - + @@ -5555,30 +5559,30 @@ - + - + - + - + - - + + @@ -5587,7 +5591,7 @@ - + diff --git a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt index 5eb2cdab..ed7c6df8 100644 --- a/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt +++ b/tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt @@ -1,45 +1,3 @@ -================ changes of 'libcdio.so.16.0.0'=============== - Functions changes summary: 0 Removed, 2 Changed, 0 Added functions - Variables changes summary: 0 Removed, 0 Changed, 0 Added variable - - 2 functions with some indirect sub-type change: - - [C] 'function discmode_t mmc_get_dvd_struct_physical(const CdIo_t*, cdio_dvd_struct_t*)' at mmc.c:949:1 has some indirect sub-type changes: - parameter 2 of type 'cdio_dvd_struct_t*' has sub-type changes: - in pointed to type 'typedef cdio_dvd_struct_t' at dvd.h:130:1: - underlying type 'union {uint8_t type; cdio_dvd_physical_t physical; cdio_dvd_copyright_t copyright; cdio_dvd_disckey_t disckey; cdio_dvd_bca_t bca; cdio_dvd_manufact_t manufact;}' at dvd.h:122:1 changed: - type size hasn't changed - 2 data member changes: - type of 'cdio_dvd_disckey_t disckey' changed: - underlying type 'struct cdio_dvd_disckey' at dvd.h:100:1 changed: - type size hasn't changed - 1 data member change: - 'unsigned int agid' offset changed from 0 to 8 (in bits) (by +8 bits) - type of 'cdio_dvd_physical_t physical' changed: - underlying type 'struct cdio_dvd_physical' at dvd.h:86:1 changed: - type size hasn't changed - 1 data member change: - type of 'cdio_dvd_layer_t layer[4]' changed: - array element type 'typedef cdio_dvd_layer_t' changed: - underlying type 'struct cdio_dvd_layer' at dvd.h:65:1 changed: - type size hasn't changed - 8 data member changes: - 'unsigned int layer_type' offset changed from 0 to 16 (in bits) (by +16 bits) - 'unsigned int min_rate' offset changed from 0 to 8 (in bits) (by +8 bits) - 'unsigned int linear_density' offset changed from 3 to 27 (in bits) (by +24 bits) - 'unsigned int disc_size' offset changed from 4 to 12 (in bits) (by +8 bits) - 'unsigned int track_path' offset changed from 4 to 20 (in bits) (by +16 bits) - 'unsigned int nlayers' offset changed from 5 to 21 (in bits) (by +16 bits) - 'unsigned int bca' offset changed from 7 to 31 (in bits) (by +24 bits) - 'unsigned int track_density' offset changed from 7 to 23 (in bits) (by +16 bits) - type size hasn't changed - - [C] 'function discmode_t mmc_get_dvd_struct_physical_private(void*, mmc_run_cmd_fn_t, cdio_dvd_struct_t*)' at mmc.c:450:1 has some indirect sub-type changes: - parameter 3 of type 'cdio_dvd_struct_t*' has sub-type changes: - pointed to type 'typedef cdio_dvd_struct_t' changed at dvd.h:130:1, as reported earlier - -================ end of changes of 'libcdio.so.16.0.0'=============== - ================ changes of 'libiso9660++.so.0.0.0'=============== Functions changes summary: 1 Removed, 0 Changed, 1 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi index 9766d691..0fd49315 100644 --- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi +++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi @@ -681,7 +681,7 @@ - + @@ -1551,16 +1551,16 @@ - + - + - + - + @@ -3013,16 +3013,16 @@ - + - + - + - + @@ -3332,10 +3332,10 @@ - + - + @@ -3581,19 +3581,19 @@ - + - + - + - + - + @@ -4620,19 +4620,19 @@ - + - + - + - + - + @@ -4918,22 +4918,22 @@ - + - + - + - + - + - + @@ -5445,31 +5445,31 @@ - + - + - + - + - + - + - + - + - + @@ -6112,10 +6112,10 @@ - + - + @@ -6349,34 +6349,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -6394,19 +6394,19 @@ - + - + - + - + - + @@ -6430,37 +6430,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -6566,10 +6566,10 @@ - + - + @@ -7488,19 +7488,19 @@ - + - + - + - + - + @@ -7691,37 +7691,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -8175,10 +8175,10 @@ - + - + diff --git a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi index 3d94607c..cb8303d1 100644 --- a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi +++ b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi @@ -359,28 +359,28 @@ - + - + - + - + - + - + - + - + @@ -425,16 +425,16 @@ - + - + - + - + diff --git a/tests/data/test-read-dwarf/test13-pr18894.so.abi b/tests/data/test-read-dwarf/test13-pr18894.so.abi index e9ded79a..b00e46c6 100644 --- a/tests/data/test-read-dwarf/test13-pr18894.so.abi +++ b/tests/data/test-read-dwarf/test13-pr18894.so.abi @@ -254,19 +254,19 @@ - + - + - + - + - + @@ -284,16 +284,16 @@ - + - + - + - + @@ -463,22 +463,22 @@ - + - + - + - + - + - + @@ -606,10 +606,10 @@ - + - + @@ -636,7 +636,7 @@ - + @@ -667,10 +667,10 @@ - + - + @@ -709,10 +709,10 @@ - + - + @@ -789,10 +789,10 @@ - + - + @@ -801,7 +801,7 @@ - + @@ -1901,10 +1901,10 @@ - + - + diff --git a/tests/data/test-read-dwarf/test15-pr18892.so.abi b/tests/data/test-read-dwarf/test15-pr18892.so.abi index 358000f0..20944bf2 100644 --- a/tests/data/test-read-dwarf/test15-pr18892.so.abi +++ b/tests/data/test-read-dwarf/test15-pr18892.so.abi @@ -4608,10 +4608,10 @@ - + - + diff --git a/tests/data/test-read-dwarf/test17-pr19027.so.abi b/tests/data/test-read-dwarf/test17-pr19027.so.abi index f7a11194..55b77e34 100644 --- a/tests/data/test-read-dwarf/test17-pr19027.so.abi +++ b/tests/data/test-read-dwarf/test17-pr19027.so.abi @@ -6242,10 +6242,10 @@ - + - + @@ -6255,7 +6255,7 @@ - + @@ -6349,13 +6349,13 @@ - + - + - + diff --git a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi index 38fd82e3..2b5466df 100644 --- a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi +++ b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi @@ -12728,16 +12728,16 @@ - + - + - + - + diff --git a/tests/data/test-read-dwarf/test21-pr19092.so.abi b/tests/data/test-read-dwarf/test21-pr19092.so.abi index b4a20a04..393bcc47 100644 --- a/tests/data/test-read-dwarf/test21-pr19092.so.abi +++ b/tests/data/test-read-dwarf/test21-pr19092.so.abi @@ -537,7 +537,7 @@ - + @@ -840,13 +840,13 @@ - + - + - + @@ -854,19 +854,19 @@ - + - + - + - + @@ -887,7 +887,7 @@ - + @@ -4042,22 +4042,22 @@ - + - + - + - + - + - + @@ -4198,7 +4198,7 @@ - + @@ -5072,13 +5072,13 @@ - + - + - + @@ -5104,13 +5104,13 @@ - + - + - + diff --git a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi index 1739af09..7e9c6206 100644 --- a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi +++ b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi @@ -27274,10 +27274,10 @@ - + - + @@ -27314,10 +27314,10 @@ - + - + @@ -37373,13 +37373,13 @@ - + - + - +