Hi!

On Tue, 2025-09-16 at 13:39:53 +0200, Jérémy Lal wrote:
> Le mar. 16 sept. 2025 à 09:28, Guillem Jover <guil...@debian.org> a écrit :
> > I think using abigail for ABI tracking would be great, yes, but I don't
> > think it looks like a good fit for dependency tracking TBH.
> >
> > Its XML representation seems too detailed (which is needed for its ABI
> > tracking), which means you really need to build the package on each
> > architecture, then fetch the generated XML, add them to the packaging,
> > and upload again. And it looks like each XML file is going to be arch
> > specific (besides embedding the arch specific types, it will embed
> > multi-arch qualified header locations etc, unless there's a way to
> > track some kind of more generic template representation).
> 
> Not sure about that, because of
> "abidiff uses by default, debug information in DWARF format"
> and I read that that format is architecture independent ?
> It has also some debuginfod integration.

I don't see how this format can be architecture independent if it
needs to represent a detailed view of an ELF ABI, but perhaps what
is being referred to is that XML being a textual format it is
architecture independent in the sense that it can be parsed easily
on any system.

Attached the abidw output (default and an attempt to a somewhat minimal)
for libbsd0.so.0 for amd64 and i386, after installing libbsd0-dbgsym
and abigail-tools on two chroots. Running abidw as:

  ,---
  $ arch=$(dpkg-architecture -q DEB_HOST_ARCH)
  $ multiarch=$(dpkg-architecture -q DEB_HOST_MULTIARCH)
  $ abidw /usr/lib/$multiarch/libbsd.so.0 >libbsd-$arch.xml
  $ abidw --no-load-undefined-interfaces --no-write-default-sizes \
          --no-architecture --no-corpus-path \
          --short-locs /usr/lib/$multiarch/libbsd.so.0 \
      >libbsd-$arch-minimal.xml
  `---

As you can see for the default output for starters the files contain
an architecture name which will differ for each architecture, then
there will be the type sizes which will definitely differ between 32
and 64-bit arches, and the header filenames I mentioned which will
differ for every arch, but there are going to be other differences as
well. The attempt at a minimal output while it removes some of the
above mentioned differences is still pretty much arch specific.

Thanks,
Guillem

Attachment: libbsd-amd64-minimal.xml.xz
Description: application/xz

Attachment: libbsd-amd64.xml.xz
Description: application/xz

Attachment: libbsd-i386-minimal.xml.xz
Description: application/xz

Attachment: libbsd-i386.xml.xz
Description: application/xz

Reply via email to