I need to support multiple compilers: Portland, Intel and GCC, so I've been compiling OpenMPI with each compiler, to avoid the Fortran symbol naming problems. When compiling, I'd use the --prefix and -exec-prefix switches like so:
GCC: ../configure CC=gcc CXX=g++ F77=gfortran FC=gfortran --prefix=/usr/local/openmpi-1.2.8 --exec-prefix=/usr/local/openmpi-1.2.8/gcc-4.1.2/x86 PGI: ../configure CC=pgcc CXX=pgCC F77=pgf77 FC=pgf90 --prefix=/usr/local/openmpi-1.2.8 --exec-prefix=/usr/local/openmpi-1.2.8/pgi-8.0/x86_64 Intel: ../configure CC=pgcc CXX=pgCC F77=pgf77 FC=pgf90 --prefix=/usr/local/openmpi-1.2.8 --exec-prefix=/usr/local/openmpi-1.2.8/pgi-8.0/x86_6 I compiled my versions of OpenMPI in the order above. Now when I try to compile using pgcc, I get this error: mpicc o mpihello mpihello.c pgcc-Error-Unknown switch: -pthread Clearly, the -pthread switch works with the Intel compilers, but not the PGI compilers. I know I can edit files mpi*-wrapper-data.txt, but this seems less than optimal. I'd like my users to be able to not need to specify any additional compiler args if I can avoid it. Also, since the previous mpi*-wrapper-data.txt files were overwritten when I did 'make install' for the Intel compilers, is there anyway to figure what those files contained for the GCC and PGI compilers w/o recompiling. Does each compiler need a completely separate tree under --prefix? -- Prentice