Difference between revisions of "Binary Compatibility"
From OpenSSLWiki
Jump to navigationJump to searchAponomarenko (talk | contribs) (Page about a method to test binary compatibility) |
Aponomarenko (talk | contribs) (Fixed internal link) |
||
Line 1: | Line 1: | ||
− | This approach allows to manually detect most of the possible binary compatibility issues between any particular releases of the OpenSSL. Alternatively one can set up a local instance of the [[ABI tracker]] for OpenSSL to automate analysis for sequential releases of the library. | + | This approach allows to manually detect most of the possible binary compatibility issues between any particular releases of the OpenSSL. Alternatively one can set up a local instance of the [[ABI Tracker|ABI tracker]] for OpenSSL to automate analysis for sequential releases of the library. |
== Build two versions of the library with debug info == | == Build two versions of the library with debug info == |
Revision as of 12:24, 26 October 2015
This approach allows to manually detect most of the possible binary compatibility issues between any particular releases of the OpenSSL. Alternatively one can set up a local instance of the ABI tracker for OpenSSL to automate analysis for sequential releases of the library.
Build two versions of the library with debug info
The library should be built with -g and -Og options of the GCC compiler and installed to a local directory (PREFIX=/home/USER):
./config -d --prefix=$PREFIX/openssl-1.0.2d/ shared sed -i -e 's/ \-O0 / /' Makefile sed -i -e 's/ \-g / -g -Og /' Makefile make make install_sw
Make ABI dumps of the library versions
Install abi-dumper tool (0.99.11 or newer) and run it on shared objects to create ABI dumps:
abi-dumper -o libssl-1.0.2.d.abi -public-headers $PREFIX/openssl-1.0.2d/include/ -vnum 1.0.2d $PREFIX/openssl-1.0.2d/lib/libssl.so.1.0.0
The -public-headers option is needed to filter out private part of the ABI.
Compare ABI dumps to produce report
Install abi-compliance-checker tool (1.99.13 or newer) and run it on two ABI dumps to create report:
abi-compliance-checker -l libssl -bin -old libssl-1.0.2.c.abi -new libssl-1.0.2.d.abi -headers-list ./headers.list -report-path ./report.html