On 27.05.23 02:52, Peter Geoghegan wrote:
Attached is a html report that was generated by a tool called
abi-compliance-checker/abi-dumper [1][2] (by using
"abi-compliance-checker -l libTest ... ") .

I have been using the libabigail library/set of tools (abidiff, abidw) for this. I was not familiar with the tool you used. The nice thing about abidiff is that it gives you text output and a meaningful exit status, so you can make it part of the build or test process. You can also write suppression files to silence specific warnings.

I think the way to use this would be to compute the ABI for the .0 release (or rc1 or something like that) and commit it into the tree. And then compute the current ABI and compare that against the recorded base ABI.

Here is the workflow:

# build REL_11_0
abidw src/backend/postgres > src/tools/postgres-abi-REL_11_0.xml
# build REL_11_20
abidw src/backend/postgres > src/tools/postgres-abi.xml
abidiff --no-added-syms src/tools/postgres-abi-REL_11_0.xml src/tools/postgres-abi.xml

This prints

Functions changes summary: 0 Removed, 0 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 14 Removed, 0 Added (85 filtered out) function symbols not referenced by debug info Variable symbols changes summary: 1 Removed, 0 Added (3 filtered out) variable symbols not referenced by debug info

14 Removed function symbols not referenced by debug info:

  [D] RelationHasUnloggedIndex
  [D] assign_nestloop_param_placeholdervar
  [D] assign_nestloop_param_var
  [D] logicalrep_typmap_gettypname
  [D] logicalrep_typmap_update
  [D] pqsignal_no_restart
  [D] rb_begin_iterate
  [D] rb_create
  [D] rb_delete
  [D] rb_find
  [D] rb_insert
  [D] rb_iterate
  [D] rb_leftmost
  [D] transformCreateSchemaStmt

1 Removed variable symbol not referenced by debug info:

  [D] wrconn

This appears to be similar to what your tool produced, but I haven't checked it in detail.



Reply via email to