Binary compatibility report for the TBB library between 22.20090809 and 30.20100310 versions on x86
Test Info
Library Name | TBB |
Version #1 | 22.20090809 |
Version #2 | 30.20100310 |
CPU Type | x86 |
GCC Version | 4.6.1 |
Test Results
Total Header Files | 1 |
Total Shared Libraries | 3 |
Total Symbols / Types | 148 / 135 |
Verdict | Incompatible (3.4%) |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 10 |
Removed Symbols | High | 0 |
Problems with Data Types | High | 1 |
Medium | 0 |
Low | 2 |
Problems with Symbols | High | 0 |
Medium | 0 |
Low | 1 |
Problems with Constants | Low | 0 |
Added Symbols (10)
critical_section.h,
libtbb.so.2
namespace tbb::internal
critical_section_v4::internal_construct ( )
[symbol: _ZN3tbb8internal19critical_section_v418internal_constructEv]
reader_writer_lock.h,
libtbb.so.2
namespace tbb::interface5
reader_writer_lock::lock ( )
[symbol: _ZN3tbb10interface518reader_writer_lock4lockEv]
reader_writer_lock::lock_read ( )
[symbol: _ZN3tbb10interface518reader_writer_lock9lock_readEv]
reader_writer_lock::try_lock ( )
[symbol: _ZN3tbb10interface518reader_writer_lock8try_lockEv]
reader_writer_lock::try_lock_read ( )
[symbol: _ZN3tbb10interface518reader_writer_lock13try_lock_readEv]
reader_writer_lock::unlock ( )
[symbol: _ZN3tbb10interface518reader_writer_lock6unlockEv]
tbb_exception.h,
libtbb.so.2
namespace tbb
improper_lock::what ( ) const
[symbol: _ZNK3tbb13improper_lock4whatEv]
invalid_multiple_scheduling::what ( ) const
[symbol: _ZNK3tbb27invalid_multiple_scheduling4whatEv]
missing_wait::what ( ) const
[symbol: _ZNK3tbb12missing_wait4whatEv]
tbb_exception.h,
libtbb.so.2
namespace tbb::internal
throw_exception_v4 ( exception_id p1 )
[symbol: _ZN3tbb8internal18throw_exception_v4ENS0_12exception_idE]
to the top
Problems with Data Types, High Severity (1)
task.h
namespace tbb::internal
[+] class scheduler (1)
| Change |
Effect |
1 | Pure virtual method scheduler::enqueue ( tbb::task&, void* ) 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) - 7 entries | Virtual Table (New) - 8 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 |
[+] affected symbols (4)
scheduler::spawn ( tbb::task& first, tbb::task*& next )This method is from 'scheduler' class.
scheduler::spawn_root_and_wait ( tbb::task& first, tbb::task*& next )This method is from 'scheduler' class.
scheduler::wait_for_all ( tbb::task& parent, tbb::task* child )This method is from 'scheduler' class.
scheduler::~scheduler [in-charge] ( )This method is from 'scheduler' class.
to the top
Problems with Data Types, Low Severity (2)
task.h
namespace tbb
[+] class task (2)
| Change |
Effect |
1 | Base class interface5::internal::task_base has been added. | Possible incorrect access of applications to the memory occupied by the base classes. |
2 | Base class internal::no_copy has been removed. | Possible incorrect access of applications to the memory occupied by the base classes. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 6 entries |
---|
0 |
(int (*)(...))0 |
(int (*)(...))0 |
4 |
(int (*)(...))(& typeinfo) |
(int (*)(...))(& typeinfo) |
8 |
~task |
~task |
12 |
~task |
~task |
16 |
__cxa_pure_virtual |
__cxa_pure_virtual |
20 |
task::note_affinity |
task::note_affinity |
[+] affected symbols (6)
task::destroy ( task& victim )This method is from 'task' class.
task::execute ( )This method is from 'task' class.
task::is_owned_by_current_thread ( ) constThis method is from 'task' class.
task::note_affinity ( task::affinity_id id )This method is from 'task' class.
task::self ( ) [static]This method is from 'task' class.
task::spawn_and_wait_for_all ( task_list& list )This method is from 'task' class.
to the top
Problems with Symbols, Low Severity (1)
recursive_mutex.h,
libtbb.so.2
namespace tbb::internal
[+] handle_perror ( int error_code, char const* what ) (1)
changed to:handle_perror ( int error_code, char const* aux_info )
[symbol: _ZN3tbb8internal13handle_perrorEiPKc]
| Change | Effect |
---|
1 | 2nd parameter what has been renamed to aux_info. | Renaming of a parameter may indicate a change in its semantic meaning. |
to the top
Header Files (1)
tbb.h
to the top
Shared Libraries (3)
libtbb.so.2
libtbbmalloc.so.2
libtbbmalloc_proxy.so.2
to the top