On Sat, 18 Oct 2025 at 01:22, David E. Wheeler <[email protected]> wrote: > > Adding Mankirat, who developed the ABI checker for his GSoC project.
Thanks! Really interesting discussion. On Sat, 18 Oct 2025 at 00:51, Peter Geoghegan <[email protected]> wrote: > > On Fri, Oct 17, 2025 at 3:11 PM Nathan Bossart <[email protected]> wrote: > > Anything else? I suppose this idea is entirely dependent on the > > maintainers of the abi-compliance-check code to adapt to it, so we'll need > > buy-in from them, too. > > That would require parsing the file and understanding that any > compliance failures associated with a given commit should be > suppressed. But that seems decidedly nontrivial to me. I can easily > think of (admittedly somewhat contrived) scenarios where it's > basically impossible to make this work due to transitive dependencies > across commits. > > I suspect that any practical approach to solving this problem will > have to involve ignore files that look somewhat like a Valgrind > suppression file. It'll have to be based on symbol names, plus > possibly a specific ABI breakage type. The per-branch file containing the commit hash reference for that branch is a good solution and can be easily implemented since perl is really good at working with files. But if we want a much clearer way based on symbol names, we could use a standard per branch suppression file, which the abidiff tool directly supports for this purpose[1]. For example, each branch could have an `abi.suppr` file with content like this: # commit hash: 123456abc [suppress_function] name=stats_lock_check_privileges # comments for this function # commit hash: oldercommit345 [suppress_type] type_kind = struct name = some_struct_name changed_data_members = updated_member_name If needed, the contents of this file could be truncated on a new minor release maybe? Added a patch for the same for handling current abi compliance failures on baza. Regards, Mankirat [1] - https://sourceware.org/libabigail/manual/suppression-specifications.html#code-examples
From 1adff8bc2de70e4a9d44e6ba84cf9669cc14442b Mon Sep 17 00:00:00 2001 From: Mankirat Singh <[email protected]> Date: Sat, 18 Oct 2025 18:24:24 +0530 Subject: [PATCH] [PATCH] Add ABI suppressions file v1 --- abi.suppr | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 abi.suppr diff --git a/abi.suppr b/abi.suppr new file mode 100644 index 00000000000..52bf0ec4fbb --- /dev/null +++ b/abi.suppr @@ -0,0 +1,24 @@ +# This file lists abidiff suppressions on the REL_18_STABLE branch that break ABI +# compatibility in ways that have been deemed acceptable (e.g., removing an +# extern function with no third-party uses). The primary intent of this file +# is to placate the ABI compliance checks on the buildfarm, but it also serves +# as a central location to document the justification for each. +# +# Add new suppressions as required in reaction to the abi-compliance-check reports +# on buildfarm. + + + +# commit hash :c8af5019bee5c57502db830f8005a01cba60fee0 +# +[suppress_function] + name=stats_lock_check_privileges +# +[suppress_function] + name=stats_lookup_relid +# +# Fix lookups in pg_{clear,restore}_{attribute,relation}_stats(). +# This commit replaced two functions related to lookups/privilege checks for +# the new stats stuff in v18 with RangeVarGetRelidExtended(). These functions +# were not intended for use elsewhere, exist in exactly one release (18.0), and +# do not have any known third-party callers. \ No newline at end of file -- 2.43.0
