public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
* [Bug default/18902] New: Apply suppression specifications to the output of abidw
@ 2015-01-01  0:00 dodji at redhat dot com
  2015-01-01  0:00 ` [Bug default/18902] " dodji at redhat dot com
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: dodji at redhat dot com @ 2015-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

            Bug ID: 18902
           Summary: Apply suppression specifications to the output of
                    abidw
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: dodji at redhat dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

Today suppression specifications apply to the result of a comparison.

It's useful that they also apply to the output of abidw.  That is, the abixml
format writer shouldn't emit a type or a decl if it's suppressed by a supplied
suppression specification.

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

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

* [Bug default/18902] Apply suppression specifications to the output of abidw
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
@ 2015-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` roland at gnu dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: dodji at redhat dot com @ 2015-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

dodji at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |18606

--- Comment #1 from dodji at redhat dot com ---
The code that evaluates a suppression specification and determines that it
matches an ABI artifact is in abg-comparison.cc.  It's called "suppression
engine" and it's part of the comparison engine.

We need to separate that suppression engine from the comparison engine and make
it have a well defined API.  We'll then adjust the comparison engine to make it
use the API of that new suppression engine logical component.

Then we'll change the xml format writer to make it use the suppression engine
to know if it should emit a decl or not, depending on if the decl (or its type)
has been suppressed.


Referenced Bugs:

https://sourceware.org/bugzilla/show_bug.cgi?id=18606
[Bug 18606] RFE: Handling opaque types by classifying header files as external
vs internal
-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug default/18902] Apply suppression specifications to the output of abidw
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
  2015-01-01  0:00 ` [Bug default/18902] " dodji at redhat dot com
  2016-01-01  0:00 ` roland at gnu dot org
@ 2016-01-01  0:00 ` roland at gnu dot org
  2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building type internal representation dodji at redhat dot com
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: roland at gnu dot org @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

Roland McGrath <roland at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |19843


Referenced Bugs:

https://sourceware.org/bugzilla/show_bug.cgi?id=19843
[Bug 19843] make abidw usable in the glibc build process
-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

* [Bug default/18902] Apply suppression specifications to the output of abidw
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
  2015-01-01  0:00 ` [Bug default/18902] " dodji at redhat dot com
@ 2016-01-01  0:00 ` roland at gnu dot org
  2016-01-01  0:00 ` roland at gnu dot org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: roland at gnu dot org @ 2016-01-01  0:00 UTC (permalink / raw)
  To: libabigail

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

Roland McGrath <roland at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |roland at gnu dot org

--- Comment #2 from Roland McGrath <roland at gnu dot org> ---
This is one of the key features that will enable glibc to start using abidw as
part of the build/test process.  So my vote is to give it high priority!

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

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

* [Bug default/18902] Apply suppression specifications when building the internal representation
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
                   ` (3 preceding siblings ...)
  2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building type internal representation dodji at redhat dot com
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building type " dodji at redhat dot com
  2016-01-01  0:00 ` dodji at redhat dot com
  6 siblings, 0 replies; 8+ 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=18902

dodji at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Apply suppression           |Apply suppression
                   |specifications to the       |specifications when
                   |output of abidw             |building the internal
                   |                            |representation

--- Comment #3 from dodji at redhat dot com ---
Indeed, this is an important feature to work on.

It appears that although libabigail only considers globally defined functions
and variables, all types that are reachable from these definitions are
represented (even through pointer dereferencing) end up being represented by
libabigail when it analyses a binary.

In these circumstances, it's not uncommon to to see cases where *all* types of
some analysed binaries are represented.  If nothing else, this can cause memory
consumption to sky-rocket.  Think about libraries like libwebkit, or libjvm.so.

As a positive perspective, we know that in most of the cases, abi{pkg}diff is
going to be used with suppression specifications to filter out ABI change
reports on types that are *NOT* defined in the public header. In other words,
filter out ABI change reports on types that are internal to the binary being
analysed.  I am thinking about the new options --header-dir{1,2} of abidiff or
--devel-pkg{1,2} at #19588 and #19948.

So if we can make it so that libabigail avoids building internal
representations of types that are effectively "internal types" to those
binaries, I figure we can save some significant amount of memory (and hopefully
time) during the analysis phase.  And there won't be anything to filter out
during the diff categorization/filtering phase.

So I am going to work on this soon, hopefully.

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

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

* [Bug default/18902] Apply suppression specifications when building type internal representation
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
                   ` (5 preceding siblings ...)
  2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building type " dodji at redhat dot com
@ 2016-01-01  0:00 ` dodji at redhat dot com
  6 siblings, 0 replies; 8+ 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=18902

dodji at redhat dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Apply suppression           |Apply suppression
                   |specifications when         |specifications when
                   |building the internal       |building type internal
                   |representation              |representation

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

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

* [Bug default/18902] Apply suppression specifications when building type internal representation
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
                   ` (2 preceding siblings ...)
  2016-01-01  0:00 ` roland at gnu dot org
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building the " dodji at redhat dot com
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ 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=18902

dodji at redhat dot com changed:

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

--- Comment #4 from dodji at redhat dot com ---
Work on this feature has started in branch dodji/suppr which can be browsed at
https://sourceware.org/git/gitweb.cgi?p=libabigail.git;a=shortlog;h=refs/heads/dodji/suppr.

The idea is that abidw (as well as abidiff, abipkgdiff, and abilint) can now
support a suppression specification like this one:

[suppress_function]
  # If we are looking at a C++ binary that is *NOT* libstdc++ itself,
  # internal representation of functions of libstdc++ that are
  # instantiated into this binary should be dropped on the floor
  # and not be present in memory.
  # As a result, the corresponding ABI XML file won't
  # contain any description of these functions either and
  # will be smaller as a result.
  name_regexp = std::.*
  file_name_not_regexp = libstdc++.so
  drop_artifact = yes


That suppression specification allows the tool to drop some selected functions
from the internal representation of the ABI of the binary so that the resulting
internal representation is smaller.

It's intended to make the "drop_artifact" property also work with the
"[suppress_variable]" directive.

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

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

* [Bug default/18902] Apply suppression specifications when building type internal representation
  2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
                   ` (4 preceding siblings ...)
  2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building the " dodji at redhat dot com
@ 2016-01-01  0:00 ` dodji at redhat dot com
  2016-01-01  0:00 ` dodji at redhat dot com
  6 siblings, 0 replies; 8+ 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=18902

dodji at redhat dot com changed:

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

--- Comment #5 from dodji at redhat dot com ---
This feature landed in the master branch at commit
https://sourceware.org/git/?p=libabigail.git;a=commit;h=98c8d616849059a219adf49e2b742ebae70deced.

It will be present in the coming 1.0rc6 release of Libabigail.

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

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

end of thread, other threads:[~2016-11-23  9:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-01  0:00 [Bug default/18902] New: Apply suppression specifications to the output of abidw dodji at redhat dot com
2015-01-01  0:00 ` [Bug default/18902] " dodji at redhat dot com
2016-01-01  0:00 ` roland at gnu dot org
2016-01-01  0:00 ` roland at gnu dot org
2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building type internal representation dodji at redhat dot com
2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building the " dodji at redhat dot com
2016-01-01  0:00 ` [Bug default/18902] Apply suppression specifications when building type " dodji at redhat dot com
2016-01-01  0:00 ` dodji at redhat 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).