Rework the ABI checker to use explicit ABI lists
Context
As pointed in !633 (merged), the current ABI checker constructs implicit list of ABI, which then gets checked across updated. Working around issues happens in the means of suppression rules.
Description
Rework the ABI checker to use explicit ABI lists. Here is how Debian has been handling it for years https://salsa.debian.org/xorg-team/wayland/wayland/blob/debian-unstable/debian/libwayland-egl1.symbols
Some functionality ideas:
- 'required' ABI changes or get removed, a hard error is generated
- newly added symbols are highlighted and analysed - warning
- optional, platform specific ABI is, ignored
Notes:
- whenever 1. or 2. happens, poke upstream ASAP
- if anything is outside the ABI, yet exported - poke upstream
- check all exported symbol types - functions, variables, etc.
- do not assume symbols starting with underscore can be ignored
Acceptance Criteria
ABI lists are handled and suppression rules are a thing of the past.