Use the following compile and link switches when building shared libraries on Solaris.
compile switches
-mt -noex +w -KPIC -i -instances=explicit -V -xtarget=ultra3cu -m64 -xlibmopt -xlibmil -features=no%conststrings -erroff=truncwarn,nokeyworddefine,diffenumtype
link switches
-z defs -G -ldl -lnsl -lsocket -ladm -lposix4 -lCrun -lCstd -lc -lm -lefi -liostream -lkstat
compile switches
+w2 -m64 -features=no%conststrings -erroff=truncwarn,nokeyworddefine,diffenumtype,doubunder -errtags -mt -noex -KPIC -instances=explicit -xlibmopt -xlibmil
link switches
-z defs -G -ldl -lnsl -lsocket -ladm -lposix4 -lCrun -lCstd -lc -lm -lefi -liostream -lkstat