Backwards compatibility of shared libraries

Backwards compatibility of shared libraries


I have a legacy dll in my product which was built with the Intel 10.1 C++ compiler. It links against the following shared libraries at runtime
• libguide40.dll
• lidmmd.dll
• libmmdd.dll

Is it possible to run my product with the Intel 11.1 or 12.0 shared libraries?

Similar questions have been asked elsewhere in the forum before e.g.

Previous answers suggest that shared libraries are backwards compatible 'within limits'. But what are these limits?

For example, can I give my customers a gaurantee that the 11.1 or 12.0 shared libraries are sufficiently backwards compatible that they can run with these instead of the 10.1 version, presuming there are no unsatisfied dependencies in the symbol exports of the Intel DLL?

To clarify: sufficiently backwards compatible refers here only to ‘runs without causing instabilities or crashes’ and not to possible performance issues.

Thanks in advance,

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

>>...Is it possible to run my product with the Intel 11.1 or 12.0 shared libraries?


Only intensive testing could certify your software for usage with newer Intel shared libraries. Also, it is Not clear what functions you're using ( too many unknowns ) and you need to clarify it.

The 11.1 compiler libraries should have been tested for compatibility with 10.1 objects.  Beyond that, you take your chances, and would need to carry out your own tests.  libguide40 was provided in 10.1 for backward compatibility, and was dropped afterwards, so use of that library appears to be a weakness in your proposal.

Leave a Comment

Please sign in to add a comment. Not a member? Join today