Binary compatibility report for the CppCMS library between 0.99.7 and 0.99.8 versions on x86
Test Info
Library Name | CppCMS |
Version #1 | 0.99.7 |
Version #2 | 0.99.8 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 48 |
Total Shared Libraries | 2 |
Total Symbols / Types | 1399 / 668 |
Verdict | Incompatible (2.86%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 14 |
Removed Symbols | High | 17 |
Problems with Data Types | High | 3 |
Medium | 3 |
Low | 2 |
Problems with Symbols | High | 12 |
Medium | 0 |
Low | 5 |
Problems with Constants | Low | 0 |
Added Symbols (14)
form.h,
libcppcms.so.1.0.0
namespace cppcms::widgets
base_widget::error_message ( booster::locale::message const& p1 )
[ symbol: _ZN6cppcms7widgets11base_widget13error_messageERKN7booster6locale13basic_messageIcEE ]
base_widget::help ( booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11base_widget4helpERKN7booster6locale13basic_messageIcEE ]
base_widget::message ( booster::locale::message const& p1 )
[ symbol: _ZN6cppcms7widgets11base_widget7messageERKN7booster6locale13basic_messageIcEE ]
select_base::add ( booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11select_base3addERKN7booster6locale13basic_messageIcEE ]
select_base::add ( booster::locale::message const& msg, std::string const& id )
[ symbol: _ZN6cppcms7widgets11select_base3addERKN7booster6locale13basic_messageIcEERKSs ]
select_base::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11select_base7elementC1ERKSsRKN7booster6locale13basic_messageIcEE ]
select_base::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11select_base7elementC2ERKSsRKN7booster6locale13basic_messageIcEE ]
select_multiple::add ( booster::locale::message const& msg, bool selected )
[ symbol: _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale13basic_messageIcEEb ]
select_multiple::add ( booster::locale::message const& msg, std::string const& id, bool selected )
[ symbol: _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale13basic_messageIcEERKSsb ]
select_multiple::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel )
[ symbol: _ZN6cppcms7widgets15select_multiple7elementC1ERKSsRKN7booster6locale13basic_messageIcEEb ]
select_multiple::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel )
[ symbol: _ZN6cppcms7widgets15select_multiple7elementC2ERKSsRKN7booster6locale13basic_messageIcEEb ]
submit::value ( booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets6submit5valueERKN7booster6locale13basic_messageIcEE ]
format.h,
libbooster.so.0.0.0
namespace booster::locale::details
format_parser::get_position ( )
[ symbol: _ZN7booster6locale7details13format_parser12get_positionEv ]
formatting.h,
libbooster.so.0.0.0
namespace booster::locale
ios_info::string_set::swap ( ios_info::string_set& other )
[ symbol: _ZN7booster6locale8ios_info10string_set4swapERS2_ ]
to the top
Removed Symbols (17)
boundary.h,
libbooster.so.0.0.0
namespace booster::locale::boundary
boundary_indexing<char>::~boundary_indexing [in-charge-deleting] ( )
[ symbol: _ZN7booster6locale8boundary17boundary_indexingIcED0Ev ]
boundary_indexing<char>::~boundary_indexing [in-charge] ( )
[ symbol: _ZN7booster6locale8boundary17boundary_indexingIcED1Ev ]
boundary_indexing<wchar_t>::~boundary_indexing [in-charge-deleting] ( )
[ symbol: _ZN7booster6locale8boundary17boundary_indexingIwED0Ev ]
boundary_indexing<wchar_t>::~boundary_indexing [in-charge] ( )
[ symbol: _ZN7booster6locale8boundary17boundary_indexingIwED1Ev ]
form.h,
libcppcms.so.1.0.0
namespace cppcms::widgets
base_widget::error_message ( booster::locale::message const& p1 )
[ symbol: _ZN6cppcms7widgets11base_widget13error_messageERKN7booster6locale7messageE ]
base_widget::help ( booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11base_widget4helpERKN7booster6locale7messageE ]
base_widget::message ( booster::locale::message const& p1 )
[ symbol: _ZN6cppcms7widgets11base_widget7messageERKN7booster6locale7messageE ]
select_base::add ( booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11select_base3addERKN7booster6locale7messageE ]
select_base::add ( booster::locale::message const& msg, std::string const& id )
[ symbol: _ZN6cppcms7widgets11select_base3addERKN7booster6locale7messageERKSs ]
select_base::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11select_base7elementC1ERKSsRKN7booster6locale7messageE ]
select_base::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets11select_base7elementC2ERKSsRKN7booster6locale7messageE ]
select_multiple::add ( booster::locale::message const& msg, bool selected )
[ symbol: _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale7messageEb ]
select_multiple::add ( booster::locale::message const& msg, std::string const& id, bool selected )
[ symbol: _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale7messageERKSsb ]
select_multiple::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel )
[ symbol: _ZN6cppcms7widgets15select_multiple7elementC1ERKSsRKN7booster6locale7messageEb ]
select_multiple::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel )
[ symbol: _ZN6cppcms7widgets15select_multiple7elementC2ERKSsRKN7booster6locale7messageEb ]
submit::value ( booster::locale::message const& msg )
[ symbol: _ZN6cppcms7widgets6submit5valueERKN7booster6locale7messageE ]
format.h,
libbooster.so.0.0.0
namespace booster::locale::details
format_parser::get_posision ( )
[ symbol: _ZN7booster6locale7details13format_parser12get_posisionEv ]
to the top
Problems with Data Types, High Severity (3)
date_time_facet.h
namespace booster::locale
[+] class abstract_calendar (3)
| Change |
Effect |
1 | Pure virtual method abstract_calendar::difference ( abstract_calendar const* other, period::marks::period_mark p ) const 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 virtual 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. |
2 | Pure virtual method abstract_calendar::get_value ( period::marks::period_mark p, abstract_calendar::value_type v ) const 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 virtual 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. |
3 | Virtual method abstract_calendar::adjust_value ( period::period_type p, abstract_calendar::update_type u, int difference ) has been removed from this class. | The layout of virtual table has been changed. Call of this virtual method or 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) - 16 entries | Virtual Table (New) - 17 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | __cxa_pure_virtual | __cxa_pure_virtual |
12 | __cxa_pure_virtual | __cxa_pure_virtual |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | __cxa_pure_virtual | __cxa_pure_virtual |
32 | __cxa_pure_virtual | __cxa_pure_virtual |
36 | __cxa_pure_virtual | __cxa_pure_virtual |
40 | __cxa_pure_virtual | __cxa_pure_virtual |
44 | __cxa_pure_virtual | __cxa_pure_virtual |
48 | __cxa_pure_virtual | __cxa_pure_virtual |
52 | __cxa_pure_virtual | __cxa_pure_virtual |
56 | abstract_calendar::~abstract_calendar | __cxa_pure_virtual |
60 | abstract_calendar::~abstract_calendar | abstract_calendar::~abstract_calendar |
64 | | abstract_calendar::~abstract_calendar |
[+] affected symbols (9)
abstract_calendar::clone ( ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::get_option ( abstract_calendar::calendar_option_type opt ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::get_time ( ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::get_timezone ( ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::same ( abstract_calendar const* other ) constCall of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::set_option ( abstract_calendar::calendar_option_type opt, int v )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::set_time ( posix_time const& p )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::set_timezone ( std::string const& tz )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
abstract_calendar::~abstract_calendar [in-charge] ( )Call of this virtual method may result in crash or incorrect behavior of applications because the layout of virtual table has been changed.
to the top
Problems with Symbols, High Severity (12)
form.h,
libcppcms.so.1.0.0
namespace cppcms::widgets
[+] base_widget::error_message ( booster::locale::message const& p1 ) (1)
changed to:base_widget::error_message ( booster::locale::message const& p1 )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11base_widget13error_messageERKN7booster6locale7messageE to _ZN6cppcms7widgets11base_widget13error_messageERKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] base_widget::help ( booster::locale::message const& msg ) (1)
changed to:base_widget::help ( booster::locale::message const& msg )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11base_widget4helpERKN7booster6locale7messageE to _ZN6cppcms7widgets11base_widget4helpERKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] base_widget::message ( booster::locale::message const& p1 ) (1)
changed to:base_widget::message ( booster::locale::message const& p1 )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11base_widget7messageERKN7booster6locale7messageE to _ZN6cppcms7widgets11base_widget7messageERKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] select_base::add ( booster::locale::message const& msg ) (1)
changed to:select_base::add ( booster::locale::message const& msg )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11select_base3addERKN7booster6locale7messageE to _ZN6cppcms7widgets11select_base3addERKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] select_base::add ( booster::locale::message const& msg, std::string const& id ) (1)
changed to:select_base::add ( booster::locale::message const& msg )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11select_base3addERKN7booster6locale7messageERKSs to _ZN6cppcms7widgets11select_base3addERKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] select_base::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg ) (1)
changed to:select_base::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11select_base7elementC2ERKSsRKN7booster6locale7messageE to _ZN6cppcms7widgets11select_base7elementC2ERKSsRKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] select_base::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg ) (1)
changed to:select_base::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets11select_base7elementC1ERKSsRKN7booster6locale7messageE to _ZN6cppcms7widgets11select_base7elementC1ERKSsRKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
[+] select_multiple::add ( booster::locale::message const& msg, bool selected ) (1)
changed to:select_multiple::add ( booster::locale::message const& msg, bool selected )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale7messageEb to _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale13basic_messageIcEEb. This may cause "undefined reference" linker error in old client applications. |
[+] select_multiple::add ( booster::locale::message const& msg, std::string const& id, bool selected ) (1)
changed to:select_multiple::add ( booster::locale::message const& msg, bool selected )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale7messageERKSsb to _ZN6cppcms7widgets15select_multiple3addERKN7booster6locale13basic_messageIcEEb. This may cause "undefined reference" linker error in old client applications. |
[+] select_multiple::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel ) (1)
changed to:select_multiple::element::element [in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets15select_multiple7elementC1ERKSsRKN7booster6locale7messageEb to _ZN6cppcms7widgets15select_multiple7elementC1ERKSsRKN7booster6locale13basic_messageIcEEb. This may cause "undefined reference" linker error in old client applications. |
[+] select_multiple::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel ) (1)
changed to:select_multiple::element::element [not-in-charge] ( std::string const& v, booster::locale::message const& msg, bool sel )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets15select_multiple7elementC2ERKSsRKN7booster6locale7messageEb to _ZN6cppcms7widgets15select_multiple7elementC2ERKSsRKN7booster6locale13basic_messageIcEEb. This may cause "undefined reference" linker error in old client applications. |
[+] submit::value ( booster::locale::message const& msg ) (1)
changed to:submit::value ( booster::locale::message const& msg )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN6cppcms7widgets6submit5valueERKN7booster6locale7messageE to _ZN6cppcms7widgets6submit5valueERKN7booster6locale13basic_messageIcEE. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (3)
date_time_facet.h
namespace booster::locale
[+] class abstract_calendar (3)
| Change |
Effect |
1 | Pure virtual method abstract_calendar::adjust_value ( period::marks::period_mark p, abstract_calendar::update_type u, int difference ) has been added to this class instead of abstract_calendar::difference ( abstract_calendar const* other, period::period_type p ) const. | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
2 | Pure virtual method abstract_calendar::normalize ( ) has been added to this class instead of abstract_calendar::get_value ( period::period_type p, abstract_calendar::value_type v ) const. | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
3 | Pure virtual method abstract_calendar::set_value ( period::marks::period_mark p, int value ) has been added to this class instead of abstract_calendar::set_value ( period::period_type p, int value ). | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 16 entries | Virtual Table (New) - 17 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | __cxa_pure_virtual | __cxa_pure_virtual |
12 | __cxa_pure_virtual | __cxa_pure_virtual |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | __cxa_pure_virtual | __cxa_pure_virtual |
32 | __cxa_pure_virtual | __cxa_pure_virtual |
36 | __cxa_pure_virtual | __cxa_pure_virtual |
40 | __cxa_pure_virtual | __cxa_pure_virtual |
44 | __cxa_pure_virtual | __cxa_pure_virtual |
48 | __cxa_pure_virtual | __cxa_pure_virtual |
52 | __cxa_pure_virtual | __cxa_pure_virtual |
56 | abstract_calendar::~abstract_calendar | __cxa_pure_virtual |
60 | abstract_calendar::~abstract_calendar | abstract_calendar::~abstract_calendar |
64 | | abstract_calendar::~abstract_calendar |
[+] affected symbols (1)
abstract_calendar::~abstract_calendar [in-charge] ( )Call of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
to the top
Problems with Data Types, Low Severity (2)
form.h
namespace cppcms::widgets
[+] class select_base::element (1)
| Change |
Effect |
1 | Base type of field tr_option has been changed from booster::locale::message to booster::locale::basic_message<char> of different format. | This field may be incorrectly initialized or accessed by applications. |
[+] affected symbols (5)
select_base::element::element [in-charge] ( )This constructor is from 'select_base::element' class.
select_base::element::element [in-charge] ( select_base::element const& p1 )1st parameter 'p1' (reference) has base type 'select_base::element'.
select_base::element::element [in-charge] ( std::string const& v, std::string const& msg )This constructor is from 'select_base::element' class.
select_base::element::operator= ( select_base::element const& p1 )1st parameter 'p1' (reference) has base type 'select_base::element'.
select_base::element::~element [in-charge] ( )This method is from 'select_base::element' class.
[+] class select_multiple::element (1)
| Change |
Effect |
1 | Base type of field tr_option has been changed from booster::locale::message to booster::locale::basic_message<char> of different format. | This field may be incorrectly initialized or accessed by applications. |
[+] affected symbols (2)
select_multiple::element::element [in-charge] ( )This constructor is from 'select_multiple::element' class.
select_multiple::element::element [in-charge] ( std::string const& v, std::string const& msg, bool sel )This constructor is from 'select_multiple::element' class.
to the top
Problems with Symbols, Low Severity (5)
form.h,
libcppcms.so.1.0.0
namespace cppcms::widgets
[+] base_widget::error_message ( ) (1)
[ symbol: _ZN6cppcms7widgets11base_widget13error_messageEv ]
| Change | Effect |
---|
1 | Base type of return value has been changed from booster::locale::message to booster::locale::basic_message<char> of different format. | This parameter may be incorrectly initialized by applications. |
[+] base_widget::help ( ) (1)
[ symbol: _ZN6cppcms7widgets11base_widget4helpEv ]
| Change | Effect |
---|
1 | Base type of return value has been changed from booster::locale::message to booster::locale::basic_message<char> of different format. | This parameter may be incorrectly initialized by applications. |
[+] base_widget::message ( ) (1)
[ symbol: _ZN6cppcms7widgets11base_widget7messageEv ]
| Change | Effect |
---|
1 | Base type of return value has been changed from booster::locale::message to booster::locale::basic_message<char> of different format. | This parameter may be incorrectly initialized by applications. |
generator.h,
libbooster.so.0.0.0
namespace booster::locale
[+] generator::categories ( ) const (1)
[ symbol: _ZNK7booster6locale9generator10categoriesEv ]
| Change | Effect |
---|
1 | Type of return value has been changed from unsigned int to locale_category_type. | Replacement of return type may indicate a change in its semantic meaning. |
[+] generator::characters ( ) const (1)
[ symbol: _ZNK7booster6locale9generator10charactersEv ]
| Change | Effect |
---|
1 | Type of return value has been changed from unsigned int to character_facet_type. | Replacement of return type may indicate a change in its semantic meaning. |
to the top
Header Files (48)
application.h
applications_pool.h
archive_traits.h
base64.h
base_content.h
base_view.h
cache_interface.h
cache_pool.h
config.h
copy_filter.h
cppcms_error.h
crypto.h
cstdint.h
defs.h
encoding.h
filters.h
form.h
forwarder.h
http_content_type.h
http_context.h
http_cookie.h
http_file.h
http_request.h
http_response.h
json.h
locale_fwd.h
localization.h
mem_bind.h
mount_point.h
rpc_json.h
serialization.h
serialization_classes.h
service.h
session_api.h
session_cookies.h
session_dual.h
session_interface.h
session_pool.h
session_sid.h
session_storage.h
thread_pool.h
urandom.h
url_dispatcher.h
url_mapper.h
util.h
view.h
views_pool.h
xss.h
to the top
Shared Libraries (2)
libbooster.so.0.0.0
libcppcms.so.1.0.0
to the top