Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

What is going on with the SONAME?

el_cubano
Beginner
245 Views
I posted the following to a bug on threadingbuildingblocks.org:

********************

Bug ID: 163
Description:

It has come to my attention from a user of the TBB Debian packages that there might have been some changes between the 2.1 and 2.2 versions that should have resulted in a SONAME bump. Apparently, I forgot to examine the diff when I packaged the first 2.2 packages. So, I looked at the diff between 2.1 update 4 (tbb21_017oss) and 2.2 (tbb22_004oss).

I found some changes like these:

-/** See implementation of SpinwaitWhileEq for an example. */
-class AtomicBackoff {
+/** See implementation of spin_wait_while_eq for an example. */
+class atomic_backoff {

- class finish_reduce_with_affinity: public task {
+ class finish_reduce: public task {

- template
- class start_reduce_with_affinity: public task {
- typedef finish_reduce_with_affinity finish_type;
+ template
+ class start_reduce: public task {
+ typedef finish_reduce finish_type;

- start_reduce_with_affinity( const Range& range, Body* body, affinity_partitioner& partitioner ) :
+ start_reduce( const Range& range, Body* body, Partitioner& partitioner

template<>
-struct atomic_word<1> { // Specialization
+struct atomic_rep<1> { // Specialization
typedef int8_t word;
+ int8_t value;
};
template<>
-struct atomic_word<2> { // Specialization
+struct atomic_rep<2> { // Specialization
typedef int16_t word;
+ __TBB_DECL_ATOMIC_FIELD(int16_t,value,2)
};


In any event, those are just some of the changes. There are lots more changes suggesting that a SONAME bump would be appropriate. If this is the case, could it be possible for a new release to be made with the bumped SONAME?

********************

So, does anyone (preferably an Intel employee working on TBB) know what is going on. I need to get the Debian package fixed. However, I do not want to mess around with the SONAME in a way that will create issues with a future release. I would prefer that upstream correct the problem and make a new release, but suggestions are welcome.

Regards,

-Roberto

0 Kudos
3 Replies
Alexey-Kukanov
Employee
245 Views

Isn't SONAME about preserving backward compatibility of binary interface?

The changes and renamings mentioned above are in internal template classes that do not impact binary compatibility.

We put proper efforts to test for binary backward compatibility. There were some bugs happened at times, which we fixed. If you compile an application with TBB 2.1, and later decide to run it with TBB 2.2 binaries, it should work; we test for it.

In the case you have examples of _real_ backward compatibility bugs, not just perceived theoretical issues, please let us know and we will do the best to fix it.

0 Kudos
el_cubano
Beginner
245 Views

Thanks very much for the reply. I had not encountered the issue, but it was reported to me as a potential issue by a user of the Ubuntu packages. So, I thought I would ask the experts here. I appreciate the information.

Regards,

-Roberto

0 Kudos
Alexey-Kukanov
Employee
245 Views

I understand, and of course you are absolutely right with raising the issue here.

With the clarification provided, could I close that bug you opened?

And let me thank you for the efforts of making TBB available to the users of Debian/Ubuntu.

0 Kudos
Reply