From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by sourceware.org (Postfix) with ESMTPS id 8127B385C426 for ; Tue, 24 Mar 2020 17:17:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8127B385C426 Received: by mail-il1-x141.google.com with SMTP id 7so4094233ill.2 for ; Tue, 24 Mar 2020 10:17:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+DvbIl+NNHaPK0XIy7FlozjtxJowhX92z1HeDlBFww0=; b=K3jStqxuQsk/q82Cn9Ak+WxhC/oL1f4c/fyNLNLoOG3WU+04sIdZdGe1KKdMWN+HU0 Y64BxvlPkbibbllU4ifn4JtPavsXH2Sb1kJZbsv/vmeCf1VMWmjvYY6t93WLugkXDGHb NylPKVjcYbf0CbPbeAKXmxSauF9Fe8SaTanfZ7y5pN5BIUFr8LwCEa8TQ2nPEqIJKgYp q2SqyFkPWecgEqOPT9iOhYtt71ngGyoB/fv34e2OSuIp/VZpOBVFdjT1RANZWUJTXIiZ AXYbKIbDgmIwwhhbFhHpQdPuaA3Ui9twPw1eXIhzdQgAR8ZapVldbUDct96OiqXNNmuD rncA== X-Gm-Message-State: ANhLgQ1Y9i3AOnYcyknzyvCvIfu3UXRSNpI1ZpZ8m7JI+OfNRo+NAQ1m kFr/3HKhZt9cpv19SfJU+0JSrzCt6BCl0ARuZY3+ticG X-Google-Smtp-Source: ADFU+vvqLAs1kNXvOfXd/+D8o3wkFrUhNgku4tg7D8SzEu+rbzoAHlF1gYa2qaoPROa2UqnxulW5AGzfK42gB5R1znM= X-Received: by 2002:a92:ad0b:: with SMTP id w11mr28428538ilh.241.1585070267384; Tue, 24 Mar 2020 10:17:47 -0700 (PDT) MIME-Version: 1.0 References: <20200324171344.258865-1-gprocida@google.com> In-Reply-To: <20200324171344.258865-1-gprocida@google.com> From: Giuliano Procida Date: Tue, 24 Mar 2020 17:17:30 +0000 Message-ID: Subject: Re: [RFC] Fix has_net_changes for leaf-changes-only mode. To: libabigail@sourceware.org Cc: Dodji Seketeli , kernel-team@android.com, =?UTF-8?Q?Matthias_M=C3=A4nnich?= Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-40.4 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libabigail mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Mar 2020 17:17:49 -0000 Dodji, Matthias. The test breakage I mentioned is returning exit code 0 despite type changes impacting functions. Comments welcome. Giuliano. On Tue, 24 Mar 2020 at 17:13, Giuliano Procida wrote: > > * Which other functions need the same treatment? > * Should something else change instead? > * What about tracking of changed types (inclusion of these in summary > stats and exit code for leaf mode)? > > This patch breaks tests and is not suitable for applying in its > current form. > > The issue we saw is that anonymous struct name changes triggered > hundreds of diffs (mostly but not all filtered out in non-leaf mode > which may be its own bug). > > * src/abg-comparison.cc (corpus_diff::has_net_changes): In > leaf-changes-only mode, check leaf changes to functions and > variables to avoid returning non-zero exit code with empty > output. > > Signed-off-by: Giuliano Procida > --- > src/abg-comparison.cc | 33 +++++++++++++++++++-------------- > 1 file changed, 19 insertions(+), 14 deletions(-) > > diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc > index 46bf9e30..7756c12b 100644 > --- a/src/abg-comparison.cc > +++ b/src/abg-comparison.cc > @@ -10602,21 +10602,26 @@ corpus_diff::has_net_changes() const > const diff_stats& stats = const_cast(this)-> > apply_filters_and_suppressions_before_reporting(); > > + bool leaf = context()->show_leaf_changes_only(); > return (architecture_changed() > - || soname_changed() > - || stats.net_num_func_changed() > - || stats.net_num_vars_changed() > - || stats.net_num_func_added() > - || stats.net_num_added_func_syms() > - || stats.net_num_func_removed() > - || stats.net_num_removed_func_syms() > - || stats.net_num_vars_added() > - || stats.net_num_added_var_syms() > - || stats.net_num_vars_removed() > - || stats.net_num_removed_var_syms() > - || stats.net_num_added_unreachable_types() > - || stats.net_num_removed_unreachable_types() > - || stats.net_num_changed_unreachable_types()); > + || soname_changed() > + || (leaf > + ? stats.net_num_leaf_func_changes() > + : stats.net_num_func_changed()) > + || (leaf > + ? stats.net_num_leaf_var_changes() > + : stats.net_num_vars_changed()) > + || stats.net_num_func_added() > + || stats.net_num_added_func_syms() > + || stats.net_num_func_removed() > + || stats.net_num_removed_func_syms() > + || stats.net_num_vars_added() > + || stats.net_num_added_var_syms() > + || stats.net_num_vars_removed() > + || stats.net_num_removed_var_syms() > + || stats.net_num_added_unreachable_types() > + || stats.net_num_removed_unreachable_types() > + || stats.net_num_changed_unreachable_types()); > } > > /// Apply the different filters that are registered to be applied to > -- > 2.25.1.696.g5e7596f4ac-goog >