From patchwork Tue Jan 18 09:03:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 50137 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 D489F385803D for ; Tue, 18 Jan 2022 09:03:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D489F385803D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1642496606; bh=xtn0sgXoLDs7wPD0WOIwo64bsD5/9fgyMWt+0ZBfcI4=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:Cc:From; b=kjvKs0MguKtBiGGWPF+wnJqBXGBYDoclVFAkwfUvjPXQHpOGPo0hC6YcvEzInjuJB CiM93GzN5DD3M0jUkBIjTTXvGZySC+lqA5qH4U+9blgFWRYYPqOlIQsgrShCqckoDT sfgdyyznjaCY+A+Kcb/4FQHLHXpExwx31KNXni84= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-ed1-x54a.google.com (mail-ed1-x54a.google.com [IPv6:2a00:1450:4864:20::54a]) by sourceware.org (Postfix) with ESMTPS id BEE3C385840C for ; Tue, 18 Jan 2022 09:03:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BEE3C385840C Received: by mail-ed1-x54a.google.com with SMTP id ee53-20020a056402293500b004022f34edcbso5694329edb.11 for ; Tue, 18 Jan 2022 01:03:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=xtn0sgXoLDs7wPD0WOIwo64bsD5/9fgyMWt+0ZBfcI4=; b=ZUq77tof7YjQ4PWnvvPM/likSYuIO23Ez2kzyagYKvorILM7Kigl9ExrxWUgWVrwQW 2MdEKBb+ncrZuiZH1ZpRNyKZs5xafjOf3iiozFY7x6nM0zlfPcuKWj4GDowKmMUqgI16 nDTIGh0KZIQzGRzCnyzalQsrlKkWcAOsCH3YxOTxqD7VpHZgd9DRBMf/whSc7u2VHeBC stwa/RZ8b75TK0YzQCrs0k3+RQkH1RS/EgJd/8M92qoNPU2K7yf1mX8wePEZTx4wrglc sOo4IX6m3vGsMttSvNnRV+bgNLkA3qXF7JlQSHiSt++LJ5ay33svC9FCeJbmCUwtMdCA koiQ== X-Gm-Message-State: AOAM53189UHCkSgF0lltwQO3ajmvhfK0unjgWbn0UGZnJ+GT18lS1iwg PZNNBOrDkFJgb/8dC/wfQol4fxSXPepk0mDnkUjNzWcRO/sA3t7m1UXqE7D0XC4Mhb+lwb2jBcp TcXHBciDsW6Mlh7KTXWLZU9Rx87qmMN02xGc79sigJBVjn5RFKgTU+U33uaye4hYBsfSvewA= X-Google-Smtp-Source: ABdhPJw07zCJVjYIM/WaMdsa73qu/zphMNld+LlAVeh9ocXrphACVK+n8Ae480Qkh6qJlAE7QDehubh6y6omKQ== X-Received: from tef.lon.corp.google.com ([2a00:79e0:d:210:e16e:3291:3ba4:acfc]) (user=gprocida job=sendgmr) by 2002:a17:907:6e0c:: with SMTP id sd12mr20052592ejc.536.1642496601243; Tue, 18 Jan 2022 01:03:21 -0800 (PST) Date: Tue, 18 Jan 2022 09:03:15 +0000 Message-Id: <20220118090315.854147-1-gprocida@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog Subject: [PATCH] abidiff: include ABI XML versions when reporting a mismatch To: libabigail@sourceware.org X-Spam-Status: No, score=-21.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" In the rare event of an XML version mismatch it would be helpful to have the versions in the error message, particularly if abidiff is being run from automation. * tools/abidiff.cc (emit_incompatible_format_version_error_message): Add version1 and version2 arguments. Add versions to error message. (main): Pass emit_incompatible_format_version_error_message mismatching versions. Signed-off-by: Giuliano Procida --- tools/abidiff.cc | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/tools/abidiff.cc b/tools/abidiff.cc index 779fa18b..a83d4485 100644 --- a/tools/abidiff.cc +++ b/tools/abidiff.cc @@ -1041,19 +1041,25 @@ handle_error(abigail::elf_reader::status status_code, /// /// @param file_path1 the first file path to consider. /// -/// @param file_path2 the second file path to consider. +/// @param version1 the second version to consider. +/// +/// @param file_path1 the first file path to consider. +/// +/// @param version2 the second version to consider. /// /// @param prog_name the name of the current program. static void emit_incompatible_format_version_error_message(const string& file_path1, + const string& version1, const string& file_path2, + const string& version2, const string& prog_name) { emit_prefix(prog_name, cerr) << "incompatible format version between the two input files:\n" - << "'" << file_path1 << "'\n" + << "'" << file_path1 << "' (" << version1 << ")\n" << "and\n" - << "'" << file_path2 << "'\n" ; + << "'" << file_path2 << "' (" << version2 << ")\n"; } int @@ -1354,11 +1360,14 @@ main(int argc, char* argv[]) return abigail::tools_utils::ABIDIFF_OK; } - if (c1->get_format_major_version_number() - != c2->get_format_major_version_number()) + const auto c1_version = c1->get_format_major_version_number(); + const auto c2_version = c2->get_format_major_version_number(); + if (c1_version != c2_version) { emit_incompatible_format_version_error_message(opts.file1, + c1_version, opts.file2, + c2_version, argv[0]); return abigail::tools_utils::ABIDIFF_ERROR; } @@ -1385,11 +1394,14 @@ main(int argc, char* argv[]) return abigail::tools_utils::ABIDIFF_OK; } - if (g1->get_format_major_version_number() - != g2->get_format_major_version_number()) + const auto g1_version = g1->get_format_major_version_number(); + const auto g2_version = g2->get_format_major_version_number(); + if (g1_version != g2_version) { emit_incompatible_format_version_error_message(opts.file1, + g1_version, opts.file2, + g2_version, argv[0]); return abigail::tools_utils::ABIDIFF_ERROR; }