Skip to end of metadata
Go to start of metadata

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 make
  • 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 lint that 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 illumos-gcc packagesource 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.

History

DateChange
2012-10-31GCC 4.4.4-il3 becomes the preferred GCC
2012-09-21

GCC 4.4.4-il2 becomes the default and only acceptable GCC

2012-06-15GCC 4.4.4-il2 is a non-default but supported option
Labels: