In order to maintain a consistant environment across all of our operating systems, the following guidelines are being set to assist UMBC sys-admins, and others, in building packages consistant in functionality across all systems. Tend towards the most default configuration of a package, as this provides for the most expected behaviour of a package, and also tends towards the most stable. Shared libraries are nice. Take advantage of them. Don't ever link perl against a shared libperl.so.
Shared libraries suck.
They make dependencies between packages creep up. Watch your back. If it doesn't compile with these, it's probably shouldn't be built. On the other hand, Solaris is pretty useless out of the box. Using gcc or cc is pretty much a tossup, however, I'd argue for the commercial compiler for strictly religious reasons.