Ice 3.7.7 maintains full source and binary compatibility with previous Ice 3.7 releases: you can upgrade your application from Ice 3.7.x to Ice 3.7.7 without recompiling or relinking anything.
The database formats used by Ice services such as IceGrid and IceStorm have not changed, therefore no database migration is required. Generally speaking, you are free to use any combination of Ice 3.7.x applications and Ice services.
Some internal Ice interfaces may change in a patch release such as Ice 3.7.7, and therefore you must always upgrade all the Ice components of a given application together. For example, you should not use version 3.7.7 of the
ice37.dll with version 3.7.1 of the
icessl37.dll in the same application.
Ice 3.7.6 C++98 Binary Compatibility Bug
The C++98 library included in the Ice 3.7.6 release does not maintain binary compatibility with previous 3.7 releases of that library due to a bug. This bug does not affect libraries built with the clang C++ compiler.
This bug was fixed in Ice 3.7.7: the C++98 library of Ice 3.7.7 is binary compatible with the C++98 library of Ice 3.7.5 and earlier releases, for all C++ compilers. However, the Ice 3.7.7 C++98 library is not binary compatible with the Ice 3.7.6 C++98 library, except with the clang compiler.
As a result, if you built an application using Ice C++98 3.7.5 (or earlier), you can upgrade this application to use Ice 3.7.7 C++98 without recompiling or relinking anything. However, if you built an application using Ice 3.7.6 C++98, you need to recompile your application when upgrading to Ice 3.7.7 C++98, unless you are using the clang C++ compiler.