...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Boost.Build's sunpro
toolset supports the Sun ONE Studio
compiler. This compiler has been known under several trade names including
Sun WorkShop and Forte Developer. For convenience, this document will refer
to numbered releases of the compiler when differention is neccessary; this
release number can be obtained by running CC ‑V
at the
command line.
As of this writing (November 2003) the Sun C++ compiler has difficulty
building many of the libraries included with Boost. Complete
regression test information is available, although absent from the
regression tables are some libraries that Sun C++ has particular difficulty
with, including mpl
and spirit
.
Best results can be obtained by being up-to-date on the most recent patches for your compiler version. Information on patches is available from Sun Microsystems.
Compiler Version | Trade Name(s) | Notes |
---|---|---|
<= 5.2 | Sun WorkShop 5 Sun WorkShop 6 Sun WorkShop 6 update 1 |
No current information available. Boost is unlikely to be very functional with these older releases, as they do not support some of the necessary parts of the C++ language. Patches and workarounds are welcome. |
5.3 | Sun WorkShop 6 update 2 |
The most recent reports seem to imply that this release is “hopeless for Boost”, but patches and workarounds are welcome. |
5.4 | Forte Developer 7 |
This version recognizes an undocumented, unsupported flag that improves its success in compiling templates:
This flag changes the template instantiation method from “exported” to an improved “global” which has been found to eliminate some compiler bugs regarding the instantiation of template run-time type information. This option, if used, is required for both compiling and linking. |
5.5 | Sun ONE Studio 8 |
No current information is available. This version changes the default template instantiation method from “exported” (using a template repository) to “global” (storing instances in object files with global linkage). The linker should then automatically detect and eliminate duplicate definitions. This change should improve template performace over previous releases. |
The sunpro toolset responds to the following variables which can be set
in the environment or configured on the bjam command line using
‑sVARIABLE_NAME=
value:
Variable Name | Semantics | Default | Notes |
---|---|---|---|
SUNPRO_ROOT_DIRECTORY |
Path to installation directory of compiler tools. | (none) | Usually there is no need to set this variable at all. However, if
CC is not in the path is is usually sufficient to
configure this one variable. A typical value for this variable is
/opt/SUNWspro . |
SUNPRO_BIN_DIRECTORY |
Path to bin directory. | $(SUNPRO_ROOT_DIRECTORY)/bin/ |
|
SUNPRO_CXX |
The name by which the C++ compiler is invoked | $(SUNPRO_BIN_DIRECTORY)CC |
You can also use this in lieu of setting the <cxxflags>
property to force options such as ‑Qoption CC
‑xcomdat into the CC command line:
“‑sSUNPRO_CXX=CC ‑Qoption CC
‑xcomdat” . |
SUNPRO_CC |
The name by which the C compiler is invoked | $(SUNPRO_BIN_DIRECTORY)cc |
Revised 03 Nov, 2003
Christopher Currie, Gennadiy Rozental, Jens Maurer