cc - license-multiplexing front-end for the unbundled Solaris C compiler

Fetch the software.

I found this in alt.hackers, supposedly from "scott@spam.Corp.Sun.COM (Scott McNealy)". Here's what the comments at the front of the program say:


/* cc.c - front end for multiplexing a 1-user Solaris compiler license
 *
 * In Solaris 2.x, Sun has unbundled and licensed the compiler.  The
 * license is floating, and per-user instead of per process.  That is, if
 * you have one license, then any one user can run any number of compiles
 * at the same time, but a second user can't run any compiles at all.
 *
 * This program takes advantage of this somewhat unusual setup by running
 * all compiles as the same user.  The program should be installed setuid
 * to root.  When run, it changes a few things so that it looks like it is
 * some arbitrary user, and then runs the real Solaris compiler.
 *
 * As long as all users run this instead of using Solaris's cc directly,
 * everyone will be able to compile as much as they like with only a
 * single-user compiler license.
 *
 * Some technical notes:  It has to be setuid to root instead of to the
 * arbitrary normal user because under System V only root can set the real
 * uid, and the compiler's license checker looks at the real uid.  And
 * root itself can't be the user to do compiles, since the license checker
 * doesn't allow root to use the compiler at all!  The program also makes
 * the working directory world-writable during the compile, and changes it
 * back afterwards.  This is so that the objects or executables can be
 * written there by the designated user.  However, if you tell cc to write
 * objects to another directory, maybe a subdirectory, it won't work.  So,
 * either don't write into subdirectories, or manually make the destination
 * directory world-writable yourself.
 *
 * This program is probably of limited usefulness.  Most people who need a
 * compiler under Solaris will just get gcc.  However, I found myself in a
 * situation where we had a free 1-user copy of the Solaris compiler.  Living
 * with the limitation was out of the question, and writing this program
 * was easier than installing gcc.  Maybe in the next release, Sun will
 * go to a per-process license and this will stop working, but for now
 * it's useful.
 */

Back to ACME Labs Software.
Back to ACME Labs.