Binary compatibility report for the ODB library between 1.5.0 and 1.6.0 versions on x86
Test Info
Library Name | ODB |
Version #1 | 1.5.0 |
Version #2 | 1.6.0 |
CPU Type | x86 |
GCC Version | 4.6.1 |
Test Results
Total Header Files | 56 |
Total Shared Libraries | 1 |
Total Symbols / Types | 102 / 105 |
Verdict | Incompatible (17.6%) |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 10 |
Removed Symbols | High | 8 |
Problems with Data Types | High | 2 |
Medium | 0 |
Low | 1 |
Problems with Symbols | High | 4 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Other Changes in Symbols | - | 5 |
Added Symbols (10)
connection.hxx,
libodb-1.6.so
namespace odb
connection::~connection [in-charge-deleting] ( )
[symbol: _ZN3odb10connectionD0Ev]
connection::~connection [in-charge] ( )
[symbol: _ZN3odb10connectionD1Ev]
connection::~connection [not-in-charge] ( )
[symbol: _ZN3odb10connectionD2Ev]
database.hxx,
libodb-1.6.so
namespace odb
database::execute ( char const* statement, std::size_t length )
[symbol: _ZN3odb8database7executeEPKcj]
schema-catalog-impl.hxx,
libodb-1.6.so
namespace odb
schema_catalog_entry::schema_catalog_entry [in-charge] ( char const* name, bool(*entry)(database&, unsigned short, bool) )
[symbol: _ZN3odb20schema_catalog_entryC1EPKcPFbRNS_8databaseEtbE]
schema_catalog_entry::schema_catalog_entry [not-in-charge] ( char const* name, bool(*entry)(database&, unsigned short, bool) )
[symbol: _ZN3odb20schema_catalog_entryC2EPKcPFbRNS_8databaseEtbE]
transaction.hxx,
libodb-1.6.so
namespace odb
transaction::current ( transaction& p1 ) [static]
[symbol: _ZN3odb11transaction7currentERS0_]
transaction::reset_current ( ) [static]
[symbol: _ZN3odb11transaction13reset_currentEv]
transaction::transaction [in-charge] ( transaction_impl* p1, bool make_current )
[symbol: _ZN3odb11transactionC1EPNS_16transaction_implEb]
transaction::transaction [not-in-charge] ( transaction_impl* p1, bool make_current )
[symbol: _ZN3odb11transactionC2EPNS_16transaction_implEb]
to the top
Removed Symbols (8)
exceptions.hxx,
libodb-1.5.so
namespace odb
const_object::what ( ) const
[symbol: _ZNK3odb12const_object4whatEv]
const_object::~const_object [in-charge-deleting] ( )
[symbol: _ZN3odb12const_objectD0Ev]
const_object::~const_object [in-charge] ( )
[symbol: _ZN3odb12const_objectD1Ev]
vtable for const_object [data]
[symbol: _ZTVN3odb12const_objectE]
schema-catalog-impl.hxx,
libodb-1.5.so
namespace odb
schema_catalog_entry::schema_catalog_entry [in-charge] ( char const* name, bool(*entry)(database&, unsigned short) )
[symbol: _ZN3odb20schema_catalog_entryC1EPKcPFbRNS_8databaseEtE]
schema_catalog_entry::schema_catalog_entry [not-in-charge] ( char const* name, bool(*entry)(database&, unsigned short) )
[symbol: _ZN3odb20schema_catalog_entryC2EPKcPFbRNS_8databaseEtE]
transaction.hxx,
libodb-1.5.so
namespace odb
transaction::transaction [in-charge] ( transaction_impl* p1 )
[symbol: _ZN3odb11transactionC1EPNS_16transaction_implE]
transaction::transaction [not-in-charge] ( transaction_impl* p1 )
[symbol: _ZN3odb11transactionC2EPNS_16transaction_implE]
to the top
Problems with Data Types, High Severity (2)
transaction.hxx
namespace odb
[+] class transaction_impl (2)
| Change |
Effect |
1 | Size of this class has been changed from 8 bytes to 12 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
2 | Pure virtual method transaction_impl::start ( ) has been added to this class. | 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 7 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~transaction_impl |
~transaction_impl |
12 |
~transaction_impl |
~transaction_impl |
16 |
__cxa_pure_virtual |
__cxa_pure_virtual |
20 |
__cxa_pure_virtual |
__cxa_pure_virtual |
24 |
|
__cxa_pure_virtual |
[+] affected symbols (7)
transaction::commit ( )Field 'this->impl_' in the object of this method has base type 'transaction_impl'.
transaction::current ( ) [static]Field 'retval->impl_' in return value (reference) has base type 'transaction_impl'.
transaction::rollback ( )Field 'this->impl_' in the object of this method has base type 'transaction_impl'.
transaction::~transaction [in-charge] ( )Field 'this->impl_' in the object of this method has base type 'transaction_impl'.
transaction_impl::commit ( )This method is from 'transaction_impl' class.
transaction_impl::rollback ( )This method is from 'transaction_impl' class.
transaction_impl::~transaction_impl [in-charge] ( )This method is from 'transaction_impl' class.
to the top
Problems with Symbols, High Severity (4)
schema-catalog-impl.hxx,
libodb-1.5.so
namespace odb
[+] schema_catalog_entry::schema_catalog_entry [in-charge] ( char const* name, bool(*entry)(database&, unsigned short) ) (1)
changed to:schema_catalog_entry::schema_catalog_entry [in-charge] ( char const* name, bool(*entry)(database&, unsigned short, bool) )
[symbol: _ZN3odb20schema_catalog_entryC1EPKcPFbRNS_8databaseEtE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb20schema_catalog_entryC1EPKcPFbRNS_8databaseEtE to _ZN3odb20schema_catalog_entryC1EPKcPFbRNS_8databaseEtbE. This may cause "undefined reference" linker error in old client applications. |
[+] schema_catalog_entry::schema_catalog_entry [not-in-charge] ( char const* name, bool(*entry)(database&, unsigned short) ) (1)
changed to:schema_catalog_entry::schema_catalog_entry [not-in-charge] ( char const* name, bool(*entry)(database&, unsigned short, bool) )
[symbol: _ZN3odb20schema_catalog_entryC2EPKcPFbRNS_8databaseEtE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb20schema_catalog_entryC2EPKcPFbRNS_8databaseEtE to _ZN3odb20schema_catalog_entryC2EPKcPFbRNS_8databaseEtbE. This may cause "undefined reference" linker error in old client applications. |
transaction.hxx,
libodb-1.5.so
namespace odb
[+] transaction::transaction [in-charge] ( transaction_impl* p1 ) (1)
changed to:transaction::transaction [in-charge] ( transaction_impl* p1, bool make_current )
[symbol: _ZN3odb11transactionC1EPNS_16transaction_implE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb11transactionC1EPNS_16transaction_implE to _ZN3odb11transactionC1EPNS_16transaction_implEb. This may cause "undefined reference" linker error in old client applications. |
[+] transaction::transaction [not-in-charge] ( transaction_impl* p1 ) (1)
changed to:transaction::transaction [not-in-charge] ( transaction_impl* p1, bool make_current )
[symbol: _ZN3odb11transactionC2EPNS_16transaction_implE]
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN3odb11transactionC2EPNS_16transaction_implE to _ZN3odb11transactionC2EPNS_16transaction_implEb. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Low Severity (1)
transaction.hxx
namespace odb
[+] class transaction_impl (1)
| Change |
Effect |
1 | Field connection_ has been added to this type. | 1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (5)
transaction::commit ( )Field 'this->impl_' in the object of this method has base type 'transaction_impl'.
transaction::current ( ) [static]Field 'retval->impl_' in return value (reference) has base type 'transaction_impl'.
transaction::rollback ( )Field 'this->impl_' in the object of this method has base type 'transaction_impl'.
transaction::~transaction [in-charge] ( )Field 'this->impl_' in the object of this method has base type 'transaction_impl'.
transaction_impl::~transaction_impl [in-charge] ( )This method is from 'transaction_impl' class.
to the top
Other Changes in Symbols (5)
transaction.hxx
namespace odb
[+] transaction_impl::commit ( ) (1)
[symbol: _ZN3odb16transaction_impl6commitEv]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::rollback ( ) (1)
[symbol: _ZN3odb16transaction_impl8rollbackEv]
| Change | Effect |
---|
1 | This method became public. | No effect. |
transaction.hxx,
libodb-1.5.so
namespace odb
[+] transaction_impl::~transaction_impl [in-charge-deleting] ( ) (1)
[symbol: _ZN3odb16transaction_implD0Ev]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::~transaction_impl [not-in-charge] ( ) (1)
[symbol: _ZN3odb16transaction_implD2Ev]
| Change | Effect |
---|
1 | This method became public. | No effect. |
[+] transaction_impl::~transaction_impl [in-charge] ( ) (1)
[symbol: _ZN3odb16transaction_implD1Ev]
| Change | Effect |
---|
1 | This method became public. | No effect. |
to the top
Header Files (56)
answer.hxx
base.hxx
buffer.hxx
cache-traits.hxx
callback.hxx
class-p.hxx
post.hxx (compilers/vc/post.hxx)
pre.hxx (compilers/vc/pre.hxx)
condition.hxx
config.h
config.hxx
container-traits.hxx
core.hxx
counter-type.hxx
database.hxx
exception.hxx (details/exception.hxx)
exceptions.hxx (details/posix/exceptions.hxx)
exception.hxx
exceptions.hxx
export.hxx
forward.hxx
lazy-pointer-traits.hxx
lazy-ptr-impl.hxx
lazy-ptr.hxx
lock.hxx
mutex.hxx
pointer-traits.hxx
polymorphic-p.hxx
condition.hxx (posix/condition.hxx)
mutex.hxx (posix/mutex.hxx)
thread.hxx (posix/thread.hxx)
tls.hxx (posix/tls.hxx)
post.hxx
pre.hxx
query.hxx
remove-c.hxx
remove-cv.hxx
remove-p.hxx
remove-v.hxx
result.hxx
schema-catalog-impl.hxx
schema-catalog.hxx
session.hxx
shared-ptr-fwd.hxx
shared-ptr.hxx
std-list-traits.hxx
std-map-traits.hxx
std-set-traits.hxx
std-vector-traits.hxx
thread.hxx
tls.hxx
traits.hxx
transaction.hxx
type-info.hxx
unused.hxx
version.hxx
to the top
Shared Libraries (1)
libodb-1.5.so
to the top