On 2010-09-10 16:21-0700 Alan W. Irwin wrote:

The Debian version 1.6 of abi-compliance checker doesn't work at all,
but I discovered that a downloaded version 1.21.4 of this perl script
works fine for simple PLplot libraries like libqsastime.  That result
was most encouraging. Therefore, I have checked in (revision 11164)
what I have accomplished so far.

Note my work is not ready for prime time yet. For example, if the two
headers required for libqsastime are expanded to the full set of
PLplot headers abi-compliance-checker currently stops with a compile
error. This weekend, I hope to rectify this issue and others to
achieve the goal of making Hazen's API checking life as simple as
possible for each of our C and C++ libraries.

Hi Hazen:

scripts/check_backwards_incompatible_api.sh

should be ready for prime time now (revision 11179).  It checks that
you have abi-compliance-checker.pl version 1.21.4 (downloadable from
http://linuxtesting.org/downloads/abi-compliance-checker-1.21.4.tar.gz)
on your PATH, builds and installs the working copy of PLplot, and
downloads, builds, and installs the reference released tarball
(defaults to 5.9.6).  Finally, it runs abi-compliance-checker.pl to
check whether there have been any backwards-incompatible changes in
any of our libraries between the installed reference version and
installed working copy.

Could you please run that script without arguments to make sure it
works properly for you?

On my system (fully loaded Debian testing) it originally gave a bad
compatibility report against 5.9.6, but revision 11177 (where I
reordered the PLStream struct using the comment

//CONSTANT SOVERSION FIX

) fixed that (gratuitous) broken backwards API compatibility.
I have attached the html report file which abi-compliance-checker.pl
generates here which you should compare with the one you generate.

As Orion suggested off list, if you mark reordering changes carefully
(as I have done with the above comment), then when we are absolutely
forced to bump soversion of libplplotd due to some change which we
cannot work around (say by reordering a struct), it should be
straightforward to take that opportunity to change back the struct to
optimal order.

BTW, abi-compliance-checker seems to be a fast-moving target. Although the above URL for the 1.21.4 version still works and is the
one I have used, the website now only refers to 1.21.6 in the patched
version of 1.21.  At some point I will download a later version of
abi-compliance-checker, update the script to use it, and make sure the
script gives a good report with it for PLplot, but for now, let's
stick with 1.21.4 since I _know_ that version works, and it is
still downloadable.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________
Title: ABI compliance report for the library plplotd from version r5.9.6 to r11176M on x86_64

ABI compliance report for the library plplotd from version r5.9.6 to r11176M on x86_64


Summary


Total header files19
Total shared objects11
Total interfaces / types643 / 174
VerdictCompatible

Problem Summary


Added Interfaces1
Withdrawn Interfaces0
Problems in
Data Types
High risk0
Medium risk0
Low risk2
Interface
Problems
High risk0
Medium risk0
Low risk0
Problems in Constants0

Added Interfaces (1)


plplot.h, libplplotd.so.9.8.0
c_pllegend PLFLT line_length, PLFLT x, PLFLT y, PLINT n, PLINT* text_colors, char** names, PLINT* colors, PLINT nsymbols, PLINT* symbols )

to the top

Problems in Data Types, Low risk (2)


Shorthand notations: RetVal - function's return value; this - pointer to method's object (C++).
plstrm.h
[+] PLStream (2)

to the top

Header Files (19)


disptab.h
drivers.h
pdf.h
plConfig.h
pldebug.h
plDevs.h
pldll.h
plevent.h
plplot.h
plplotP.h
plstream.h
plstrm.h
pltcl.h
pltk.h
plxwd.h
qsastime.h
qsastimedll.h
qt.h
tclMatrix.h

to the top

Shared Objects (11)


libcsirocsa.so.0.0.1
libcsironn.so.0.0.1
libplplotcxxd.so.9.3.0
libplplotd.so.9.8.0
libplplotqtd.so.0.0.1
libplplottcltkd.so.9.2.0
libplplotwxwidgetsd.so.0.0.0
libqsastime.so.0.0.1
libtclmatrixd.so.9.2.0
qt.so
wxwidgets.so

to the top




Generated on Mon Sep 13 21:19:16 2010 for plplotd by ABI-compliance-checker 1.21.4  
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to