public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (7 preceding siblings ...)
  2016-01-01  0:00 ` dodji at redhat dot com
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` dodji at seketeli dot org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at redhat dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

dodji at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] New: Incorrect exit status for incompatible ABI change
@ 2016-01-01  0:00 michi.henning at canonical dot com
  2016-01-01  0:00 ` [Bug default/19596] " michi.henning at canonical dot com
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: michi.henning at canonical dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

            Bug ID: 19596
           Summary: Incorrect exit status for incompatible ABI change
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: michi.henning at canonical dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

Created attachment 8969
  --> https://sourceware.org/bugzilla/attachment.cgi?id=8969&action=edit
Dump files and report file

I just swapped the order of two pure virtual methods in an abstract base class.
The generated report correctly diagnoses the ABI break, but the exit status
from abidiff is 4. I was expecting 8 or 12.

Here is the trace from my build driver script:

+ abidiff libunity-scopes_1.0.0.abi.xml libunity-scopes_1.0.3.abi.xml
check-abi-compliance.sh: ABI is compatible with changes, see
libunity-scopes_1.0.3_abi-report.txt for details.
+ status=4
+ [ 4 -ge 8 ]
+ [ 4 -ge 4 ]
+ echo check-abi-compliance.sh: ABI is compatible with changes, see
libunity-scopes_1.0.3_abi-report.txt for details.
+ exit 0

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (4 preceding siblings ...)
  2016-01-01  0:00 ` dodji at redhat dot com
@ 2016-01-01  0:00 ` dodji at seketeli dot org
  2016-01-01  0:00   ` Dodji Seketeli
  2016-01-01  0:00 ` michi.henning at canonical dot com
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 14+ messages in thread
From: dodji at seketeli dot org @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

dodji at seketeli dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |ASSIGNED
                 CC|                            |dodji at seketeli dot org

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
@ 2016-01-01  0:00 ` michi.henning at canonical dot com
  2016-01-01  0:00 ` dodji at redhat dot com
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: michi.henning at canonical dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #9 from Michi Henning <michi.henning at canonical dot com> ---
Right. What it boils down to is that I need a simple exit status that allows me
to decide whether my test should pass or fail. If I've explicitly suppressed
something, it should no longer give me a failing exit status. (Otherwise, why
would I bother to suppress it?)

This is also how valgrind works: suppressed reports leave the exit status
alone, and only unsurpassed ones affect it.

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (9 preceding siblings ...)
  2016-01-01  0:00 ` dodji at seketeli dot org
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` michi.henning at canonical dot com
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at redhat dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #3 from dodji at redhat dot com ---
Created attachment 8972
  --> https://sourceware.org/bugzilla/attachment.cgi?id=8972&action=edit
A patch without regression test binary content -- for back-porting purposes

The commit that fixes this issue comes with some testing material in binary
form that can make it cumbersome to apply it to a local tree if the sole
purpose is to back-port the fix.  I am not even talking about the need to
re-run automake if the testing bits are applied.

This patch doesn't contain the regression testing bits of the full blown
commit.  It should be easier to apply to a package, for back-porting purposes.

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (3 preceding siblings ...)
  2016-01-01  0:00 ` dodji at seketeli dot org
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` dodji at seketeli dot org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at redhat dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #5 from dodji at redhat dot com ---
> Thanks a lot for the patch!

You are very welcome.  Sorry for the inconvenience.

[...]

> BTW, the current version I have from the archives is 1.0.rc2.

It's the latest released version to date.

You can see that on the web page at
https://www.sourceware.org/libabigail/#source, where you can read:

    The latest released version of is source code is
    http://mirrors.kernel.org/sourceware/libabigail/libabigail-1.0.rc2.tar.gz

> Is there a place where I can look at the release history of abigail so
> I can easily figure out what the last version is that you actually
> released, so I can check whether the upstream packages are up to date?

Hmmh, good question.  I guess you could look at the NEWS file in the git
repository:

https://sourceware.org/git/gitweb.cgi?p=libabigail.git;a=blob_plain;f=NEWS

I really think we need to have a better way to see this information ...

Cheers,

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
  2016-01-01  0:00 ` [Bug default/19596] " michi.henning at canonical dot com
  2016-01-01  0:00 ` dodji at redhat dot com
@ 2016-01-01  0:00 ` michi.henning at canonical dot com
  2016-01-01  0:00 ` dodji at seketeli dot org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: michi.henning at canonical dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #4 from Michi Henning <michi.henning at canonical dot com> ---
Thanks a lot for the patch! I'll have a look at how we can get a distro patch
until this fix ends up upstream.

BTW, the current version I have from the archives is 1.0.rc2.

Is there a place where I can look at the release history of abigail so I can
easily figure out what the last version is that you actually released, so I can
check whether the upstream packages are up to date?

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (2 preceding siblings ...)
  2016-01-01  0:00 ` michi.henning at canonical dot com
@ 2016-01-01  0:00 ` dodji at seketeli dot org
  2016-01-01  0:00 ` dodji at redhat dot com
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at seketeli dot org @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

dodji at seketeli dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #10 from dodji at seketeli dot org ---
This issue should be fixed by commit
https://sourceware.org/git/gitweb.cgi?p=libabigail.git;a=commitdiff;h=ddc21ed73e4ce5ea2e78b800ce086712074c94f1
in the master branch of the git repository.  It should be available in the
1.O.rc3 release.

Thanks!

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (5 preceding siblings ...)
  2016-01-01  0:00 ` dodji at seketeli dot org
@ 2016-01-01  0:00 ` michi.henning at canonical dot com
  2016-01-01  0:00 ` dodji at redhat dot com
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: michi.henning at canonical dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

Michi Henning <michi.henning at canonical dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #7 from Michi Henning <michi.henning at canonical dot com> ---
I'm still seeing surprising exit status (compiled from HEAD):

$ abidiff --no-unreferenced-symbols --suppressions suppressions
libunity-scopes_1.0.0.abi.xml libunity-scopes_1.0.3.abi.xml
Functions changes summary: 0 Removed (5 filtered out), 0 Changed (75 filtered
out), 0 Added function (16 filtered out)
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

$ echo $?
8

See the attached new_files.tar.gz archive.

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (6 preceding siblings ...)
  2016-01-01  0:00 ` michi.henning at canonical dot com
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` dodji at redhat dot com
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at redhat dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

dodji at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from dodji at redhat dot com ---
This issue should be fixed in the upstream master branch of the git repository
by commit
https://sourceware.org/git/gitweb.cgi?p=libabigail.git;a=commit;h=4b7e295b209d5ed41afcaf9c612e1d86f257c7a2.

Thank you for submitting this problem report!

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (8 preceding siblings ...)
  2016-01-01  0:00 ` dodji at redhat dot com
@ 2016-01-01  0:00 ` dodji at seketeli dot org
  2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` michi.henning at canonical dot com
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at seketeli dot org @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #8 from dodji at seketeli dot org ---
I have indeed reproduced this issue and I think it's a real one.

This particular instance of it seems different from the initial one,
though.

I think the current issue is that libabigail considers a removed
function (or global variable) as being an incompatible change, whether
it has been suppressed or not.

Originally, I designed suppression specifications to act on sub-type
changes only, because these were the ones subject to human
interpretation.  Removed symbols changes were not meant to be suppressed
because I thought they constitute indubitably incompatible changes.

Of course, real world usage made me revisit that point of view :) But
then some parts of the code were not adjusted as they should have been.

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
                   ` (10 preceding siblings ...)
  2016-01-01  0:00 ` dodji at redhat dot com
@ 2016-01-01  0:00 ` michi.henning at canonical dot com
  11 siblings, 0 replies; 14+ messages in thread
From: michi.henning at canonical dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #6 from Michi Henning <michi.henning at canonical dot com> ---
Created attachment 9029
  --> https://sourceware.org/bugzilla/attachment.cgi?id=9029&action=edit
Dump files and suppressions file

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 ` dodji at seketeli dot org
@ 2016-01-01  0:00   ` Dodji Seketeli
  0 siblings, 0 replies; 14+ messages in thread
From: Dodji Seketeli @ 2016-01-01  0:00 UTC (permalink / raw)
  To: dodji at seketeli dot org; +Cc: libabigail

I have indeed reproduced this issue and I think it's a real one.

This particular instance of it seems different from the initial one,
though.

I think the current issue is that libabigail considers a removed
function (or global variable) as being an incompatible change, whether
it has been suppressed or not.

Originally, I designed suppression specifications to act on sub-type
changes only, because these were the ones subject to human
interpretation.  Removed symbols changes were not meant to be suppressed
because I thought they constitute indubitably incompatible changes.

Of course, real world usage made me revisit that point of view :) But
then some parts of the code were not adjusted as they should have been.

-- 
		Dodji

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug default/19596] Incorrect exit status for incompatible ABI change
  2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
  2016-01-01  0:00 ` [Bug default/19596] " michi.henning at canonical dot com
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` michi.henning at canonical dot com
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 14+ messages in thread
From: dodji at redhat dot com @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

--- Comment #1 from dodji at redhat dot com ---
> I just swapped the order of two pure virtual methods in an abstract base class.
> The generated report correctly diagnoses the ABI break, but the exit status
> from abidiff is 4. I was expecting 8 or 12.

Right, it should have been 12.

> Here is the trace from my build driver script:
>
> + abidiff libunity-scopes_1.0.0.abi.xml libunity-scopes_1.0.3.abi.xml
> check-abi-compliance.sh: ABI is compatible with changes, see
> libunity-scopes_1.0.3_abi-report.txt for details.

Hmmh ...

> + status=4

FWIW, the value 4 (named ABIDIFF_ABI_CHANGE) doesn't mean that the two
ABIs are compatible.  It means there is an ABI change, and that change
might or might not make the two ABIs be incompatible.  The change needs
to be reviewed.

With time (and reports like this one) we'll hopefully categorize
incompatible changes more precisely.  That is, more incompatible changes
will trigger the ABIDIFF_ABI_INCOMPATIBLE_CHANGE flag, leaving the
ABIDIFF_ABI_CHANGE flag really for the "gray area" changes that really
need human inspection to ultimately say if they are incompatible or not.

[...]

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2016-03-04  0:07 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-01  0:00 [Bug default/19596] New: Incorrect exit status for incompatible ABI change michi.henning at canonical dot com
2016-01-01  0:00 ` [Bug default/19596] " michi.henning at canonical dot com
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` michi.henning at canonical dot com
2016-01-01  0:00 ` dodji at seketeli dot org
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` dodji at seketeli dot org
2016-01-01  0:00   ` Dodji Seketeli
2016-01-01  0:00 ` michi.henning at canonical dot com
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` dodji at seketeli dot org
2016-01-01  0:00 ` dodji at redhat dot com
2016-01-01  0:00 ` michi.henning at canonical dot com

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).