Re: ABI Compliance Checker GSoC Project

From: "David E(dot) Wheeler" <david(at)justatheory(dot)com>
To: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, Mankirat Singh <mankiratsingh1315(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Andrew Dunstan <andrew(at)dunslane(dot)net>
Subject: Re: ABI Compliance Checker GSoC Project
Date: 2026-01-25 20:32:34
Message-ID: A94C850D-05B6-4DA0-BCCC-E2745519D7A6@justatheory.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Jan 25, 2026, at 05:03, Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com> wrote:

> Yes, the most recent check on baza [1] is still incorrectly
> complaining about both structs.
>
> I have prepared a patch for .abi-compliance-history, but I'll hold off
> on pushing it.

Okay, off-list Andres suggested that perhaps --headers-dir wasn’t implying --drop-private-types on my system. Turns out bookworm packages libabigail 2.2; the Abigail maintainers changed that behavior[0] in v2.8[1]. Adding it explicitly on baza results in this output:

```
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function (3 filtered out)
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct TransitionCaptureState' changed:
type size changed from 24 to 40 (in bytes)
2 data member insertions:
'AfterTriggersTableData* tcs_update_private', at offset 24 (in bytes)
'AfterTriggersTableData* tcs_delete_private', at offset 32 (in bytes)
```

Which seems more correct. I’ve made a PR[2] to always pass --drop-private-types as well as --headers-dir, which seems to be compatible with the existing code[3].

One downside, though: the above is still considered an ABI compliance failure:

```
baza:REL_17_STABLE [19:21:24] ABICompCheck :: doing comparison against baseline 0f69beddea113dd1d6c5b6f6d82df577ef3c21f2
baza:REL_17_STABLE [19:21:57] ABICompCheck :: ABI difference found for postgres.abi
Branch: REL_17_STABLE
Stage abi-compliance-check failed with status 1
```

I tried adding --exported-interfaces-only but got the same result. Anyone got other ideas?

Best,

David

[0]: https://sourceware.org/git/?p=libabigail.git;a=commit;h=577a81fa83d215d9bd87aaf7baaae0c47bce4757
[1]: https://sourceware.org/git/?p=libabigail.git;a=blob;f=ChangeLog;h=0f5d805c901f9eb6f52d37c3bb4e72a85fdcc6c6;hb=HEAD#l364
[2]: https://github.com/PGBuildFarm/client-code/pull/41
[3]: https://sourceware.org/git/?p=libabigail.git;a=blob;f=tools/abidw.cc;h=ebffb8fd4e14d90ac8d650da93513526d1bda2be;hb=577a81fa83d215d9bd87aaf7baaae0c47bce4757#l316

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David E. Wheeler 2026-01-25 20:43:39 Re: ABI Compliance Checker GSoC Project
Previous Message Andres Freund 2026-01-25 20:06:12 Re: Make copyObject work in C++