MPI compile error: error: bad value (native)...

Hi,

I know this really isn’t probably a mothur bug, when I try to compile with MPI, I’m getting some errors. I’ve attached the verbose output from make. Can anyone help?

$ make
mpic++ -O3 -v -mtune=native -march=native -m64 -DBIT_VERSION -DRELEASE_DATE="\"11/7/2011\"" -DVERSION="\"1.22.2\"" -DUSE_READLINE -DUSE_MPI -I.   -c -o ace.o ace.cpp
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)
 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1plus -quiet -v -I. -I/usr/mpi/gcc/openmpi-1.4.3/include -D_GNU_SOURCE -D_REENTRANT -DBIT_VERSION -DRELEASE_DATE="11/7/2011" -DVERSION="1.22.2" -DUSE_READLINE -DUSE_MPI ace.cpp -quiet -dumpbase ace.cpp -mtune=native -march=native -m64 -auxbase-strip ace.o -O3 -version -o /tmp/ccv73MAJ.s
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 .
 /usr/mpi/gcc/openmpi-1.4.3/include
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/x86_64-redhat-linux
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include
 /usr/include
End of search list.
ace.cpp:1: error: bad value (native) for -march= switch
ace.cpp:1: error: bad value (native) for -mtune= switch
GNU C++ version 4.1.2 20080704 (Red Hat 4.1.2-50) (x86_64-redhat-linux)
        compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-50).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
make: *** [ace.o] Error 1

The makefile is here:

USEMPI ?= yes
64BIT_VERSION ?= yes
USEREADLINE ?= yes
CYGWIN_BUILD ?= no
USECOMPRESSION ?= no
MOTHUR_FILES="\"Enter_your_default_path_here\""
RELEASE_DATE = "\"11/7/2011\""
VERSION = "\"1.22.2\""

# Optimize to level 3:
CXXFLAGS += -O3 -v

ifeq  ($(strip $(64BIT_VERSION)),yes)
        #if you are using centos uncomment the following lines
        #CXX = g++44

        #if you are a mac user use the following line
        #TARGET_ARCH += -arch x86_64

        #if you using cygwin to build Windows the following line
        #CXX = x86_64-w64-mingw32-g++
        #CC = x86_64-w64-mingw32-g++
        #TARGET_ARCH += -m64 -static

        #if you are a linux user use the following line
        CXXFLAGS += -mtune=native -march=native -m64

         CXXFLAGS += -DBIT_VERSION
endif


CXXFLAGS += -DRELEASE_DATE=${RELEASE_DATE} -DVERSION=${VERSION}

ifeq  ($(strip $(MOTHUR_FILES)),"\"Enter_your_default_path_here\"")
else
        CXXFLAGS += -DMOTHUR_FILES=${MOTHUR_FILES}
endif

ifeq  ($(strip $(CYGWIN_BUILD)),yes)
    CXXFLAGS += -mno-cygwin
    LDFLAGS += -mno-cygwin
endif

# if you do not want to use the readline library, set this to no.
# make sure you have the library installed


ifeq  ($(strip $(USEREADLINE)),yes)
    CXXFLAGS += -DUSE_READLINE
    LIBS = \
      -lreadline\
      -lncurses
endif

Thanks,
Chris

Might have found the problem - seems our cluster people may have linked MPI to an older g++. Changing mtune and march to opteron allows me to compile:

mpic++ --version
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)