## 2.3 Changes in the implementation that affect maintainability and portability

### 2.3.1 GCC caveats for building from sources

The Mozart 1.3.0 release supports both the GCC 3.2+ with its new multi-vendor C++ ABI, and the old 2.95.*. GCC 3.2+ is the default on most contemporary GNU/Linux platforms, as well as available for most types of unix and the CYGWIN environment for Windows. We use GCC 3.3.2 on Linux and Solaris, and 3.3.1 with CYGWIN.

We would like to emphasize that Mozart binaries are not compatible if compiled with these two versions of GCC! In particular, all custom native libraries have to be (re)compiled with the compiler used for building the Mozart system itself.

Moreover, building a GCC 3.2+ compiler (to be used for compiling Mozart) on an old Linux installation is more complicated than it might appear, and we strongly advise against that. Upgrading Linux is much simpler and more reliable way to obtain the right GCC compiler.