A "common" build environment
In the past, both Sun and OpenSolaris had the notion of a common build environment (CBE), with which all software in the OS was built (the degree of adherence to this varied markedly, but that was the idea). We have stuck to that as a concept, in the sense that we tend to expect people to be building with the precise versions of compilers and other tools that we prescribe. This probably feels frighteningly limiting to those coming from a background of other open source software, but the absolute minimum variation in build environments has numerous advantages in that it gives a clear indication of what 3rd parties may expect to work, to what we expect patches to illumos to work with, and what we have tested as thoroughly as possible and expect to be faultless.
The current environment
- Sun Studio 12 (SunOS_i386 Patch 124868-10 2009/04/30, SunOS_sparc Patch 124867-11 2009/04/30)
This is no longer generally available for download, and provides the Sun C and C++ compilers that we use, and the Sun Distributed
- Sun Studio 12.1 (SunOS_i386 Patch 142363-03 2009/12/03, SunOS_sparc Patch 141861-03 2009/12/03)
This too is no longer generally available for download, and provides the Sun
lintthat we would prefer to use. The version of Sun Studio 12.1 available from the openindiana IPS repository is also acceptible for this purpose
- GCC 4.4.4-il2
This is GCC patched with changes specific for illumos, and is available in the openindiana
,source is available from https://github.com/illumos/gcc/tree/gcc-4.4.4-il-2
Updates to this environment
In general, since any update to this environment represents a flag-day affecting all illumos developers, it is undesirable for this environment to change often or without compelling reason. It is currently very unlikely that updates will be made to the versions of Sun Studio that we use. The version of GCC that we use, absent compelling reasons and bugs, is also never going to be the "latest and greatest". It is recommended that people packaging compilers for their end-users package a separate GCC for end-user use, and for use as part of the illumos build environment.
|2012-10-31||GCC 4.4.4-il3 becomes the preferred GCC|
GCC 4.4.4-il2 becomes the default and only acceptable GCC
|2012-06-15||GCC 4.4.4-il2 is a non-default but supported option|