A: You may have a system on which C and Fortran routines are incompatible (for example, using gcc and the Vendor's Fortran compiler). If you do not plan to use Fortran, the easiest fix is to rebuild with the -nof77 option to configure.
You should also look into making your C compiler compatible with your Fortran compiler. One possibility is use f2c to convert Fortran to C, then use the C compiler to compile everything. If you take this route, remember that every Fortran routine has to be compiled using f2c and the C compiler.
cc -g -o testtypes testtypes.o -L/usr/local/mpich/lib/solaris/ch_p4 -lmpi -lsocket -lnsl -lthread ld: warning: symbol `_defaultstkcache' has differing sizes: (file /usr/lib/libthread.so value=0x20; file /usr/lib/libaio.so value=0x8); /usr/lib/libthread.so definition takenA: This is a bug in Solaris 2.3 that is fixed in Solaris 2.4. There may be a patch for Solaris 2.3; contact Sun for more information.
cc -o pgm pgm.o -L/usr/local/mpi/lib/hpux/ch_p4 -lmpi -lm /bin/ld: Unsatisfied symbols: sigrelse (code) sigset (code) sighold (code) *** Error code 1A: You need to add the link option -lV3. The p4 device uses the System V signals on the HP; these are provided in the V3 library.