esc is sensitive to /usr/bin/cpp
During nightly build, esc is built and invoked. The invocation uses the preprocessor installed on the system. First, it tries /usr/bin/cpp. If that doesn't exist, it tries /usr/lib/cpp. It is entirely reasonable for a distro to put something in /usr/bin/cpp that's not compatible with what esc expects (e.g., gcc's cpp). (Note, illumos-gate ships nothing to either location. /usr/lib/cpp is delivered by pkg:/developer/macro/cpp on OI.)
The quick fix may be as easy as changing esc to only use /usr/lib/cpp.
Updated by Jim Klimov about 7 years ago
Note: Looking at code (because I did have a problem with `esc` taking a wrong `cpp`) I found there is support for an `_ESC_CPP` envvar to use whatever the caller wants. Otherwise it indeed uses `/usr/bin/cpp` by default. In both cases it falls back to `/usr/lib/cpp` if the first requested path to binary is absent.
Some other code in the gate also refers to `/usr/libexec/cpp` but nothing installs that. I am not sure at this time if this assumes the same functionality as (Sun Studio?) `/usr/lib/cpp` or some third interpreter.