public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: "woodard at redhat dot com" <sourceware-bugzilla@sourceware.org>
To: libabigail@sourceware.org
Subject: [Bug default/27635] New: abicompat doesn't handle abixml
Date: Tue, 23 Mar 2021 12:24:02 +0000	[thread overview]
Message-ID: <bug-27635-9487@http.sourceware.org/bugzilla/> (raw)

https://sourceware.org/bugzilla/show_bug.cgi?id=27635

            Bug ID: 27635
           Summary: abicompat doesn't handle abixml
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: woodard at redhat dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

abicompat doesn't handle abixml files

So for example say you want to save abixml files of some for some out of distro
proprietary application or an out of tree kernel module and make sure that the
abicompat can verify that a change to a library doesn't impact it. You may want
to do something like:

abidw foo.app > foo.abixml

Then at some later time you take this foo.abixml

abicompat foo.abixlm oldlib.elf newlib.elf

Unfortunately right now because the undefined symbols are not stored in abixml
files produced by abidw this can not be done directly. 

You have to separately extract the undefined symbols and then reassociate them
with the symbols that are are in the abixml to be able to perform the abicompat
test. 

While abicompat has a way to produce the undefined symbols list by using the
abicompat -u option it does not provide a way to reconsume that list and
reassociate the symbols with the app to make reconstitute the interfaces
between the libraries.

In other words you can't do:
abidw foo.app > foo.abixml
abicompat -u foo.app > foo.undefsyms

then at some later point:
abicompat foo.abixml:foo.undefsyms oldlib.elf newlib.elf

This would allow the QA department of a distro company to maintain the abixml
of proprietary apps known to be used by customers and and then verify that
changes to a library will not in fact create a problem for customers using
those libraries without having to keep copies of the application and know how
to run them.

This presents a different way of thinking about the abixml file. Previously the
abixml file was thought of as the exported decls and types which is the top
surface of the ABI presented by the ELF file. This is useful for library files
but it is not sufficient for applications which don't necessarily export that
much but consume quite a lot.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

             reply	other threads:[~2021-03-23 12:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-23 12:24 woodard at redhat dot com [this message]
2021-03-23 13:26 ` [Bug default/27635] " woodard at redhat dot com
2021-03-23 13:34 ` woodard at redhat dot com
2021-04-13 20:02 ` woodard at redhat dot com
2022-06-08 15:45 ` woodard at redhat dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-27635-9487@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=libabigail@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).