Hello,
I’m trying to compile Open MPI-1.3 with PGI 8.04 compilers on Red Hat Enterprise Linux 4 U5. Initially it failed with:
libtool: compile: mv -f “file.o” “.libs/file.o”
/bin/sh …/…/…/libtool --tag=CXX --mode=link /opt/pgi/linux86-64/8.0-4/bin/pgCC -DNDEBUG -O4 -export-dynamic -o libmpi_cxx.la -rpath /opt/openmpi/1.3/pgi/lib mpicxx.lo intercepts.lo comm.lo datatype.lo win.lo file.lo …/…/…/ompi/libmpi.la -lnsl -lutil -lpthread
libtool: link: /opt/pgi/linux86-64/8.0-4/bin/pgCC -shared .libs/mpicxx.o .libs/intercepts.o .libs/comm.o .libs/datatype.o .libs/win.o .libs/file.o -Wl,–rpath -Wl,/root/RRI/openmpi-1.3/ompi/.libs -Wl,–rpath -Wl,/root/RRI/openmpi-1.3/orte/.libs -Wl,–rpath -Wl,/root/RRI/openmpi-1.3/opal/.libs -Wl,–rpath -Wl,/opt/openmpi/1.3/pgi/lib -L/root/RRI/openmpi-1.3/orte/.libs -L/root/RRI/openmpi-1.3/opal/.libs …/…/…/ompi/.libs/libmpi.so /root/RRI/openmpi-1.3/orte/.libs/libopen-rte.so /root/RRI/openmpi-1.3/opal/.libs/libopen-pal.so -ldl -lnsl -lutil -lpthread -Wl,-soname -Wl,libmpi_cxx.so.0 -o .libs/libmpi_cxx.so.0.0.0
/usr/bin/ld: .libs/mpicxx.o: relocation R_X86_64_32S against __vtbl__Q2_3MPI8Datatype' can not be used when making a shared object; recompile with -fPIC .libs/mpicxx.o: could not read symbols: Bad value make[2]: *** [libmpi_cxx.la] Error 2 make[2]: Leaving directory
/root/RRI/openmpi-1.3/ompi/mpi/cxx’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/RRI/openmpi-1.3/ompi’
make: *** [all-recursive] Error 1
Then I used CFLAGS=-O4 -fPIC
reconfigurred and it failed with a different error during make.
PGC-W-0221-Redefinition of symbol offsetof (/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h: 414)
PGC-W-0258-Argument 1 in macro offsetof is not identical to previous definition (/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h: 414)
PGC-W-0258-Argument 2 in macro offsetof is not identical to previous definition (/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h: 414)
PGC/x86-64 Linux 8.0-4: compilation completed with warnings
source=‘btl_openib_endpoint.c’ object=‘btl_openib_endpoint.lo’ libtool=yes
DEPDIR=.deps depmode=none /bin/sh …/…/…/…/config/depcomp
/bin/sh …/…/…/…/libtool --tag=CC --mode=compile /opt/pgi/linux86-64/8.0-4/bin/pgcc -DHAVE_CONFIG_H -I. -I…/…/…/…/opal/include -I…/…/…/…/orte/include -I…/…/…/…/ompi/include -I…/…/…/…/opal/mca/paffinity/linux/plpa/src/libplpa -I…/…/…/… -D_REENTRANT -DNDEBUG -O4 -fPIC -c -o btl_openib_endpoint.lo btl_openib_endpoint.c
libtool: compile: /opt/pgi/linux86-64/8.0-4/bin/pgcc -DHAVE_CONFIG_H -I. -I…/…/…/…/opal/include -I…/…/…/…/orte/include -I…/…/…/…/ompi/include -I…/…/…/…/opal/mca/paffinity/linux/plpa/src/libplpa -I…/…/…/… -D_REENTRANT -DNDEBUG -O4 -fPIC -c btl_openib_endpoint.c -fpic -DPIC -o .libs/btl_openib_endpoint.o
NOTE: your trial license will expire in 10 days, 6.52 hours.
PGC-S-0060-transport_type is not a member of this struct or union (btl_openib_endpoint.c: 662)
PGC-S-0039-Use of undeclared variable IBV_TRANSPORT_IB (btl_openib_endpoint.c: 662)
PGC/x86-64 Linux 8.0-4: compilation completed with severe errors
make[2]: *** [btl_openib_endpoint.lo] Error 1
make[2]: Leaving directory /root/RRI/openmpi-1.3/ompi/mca/btl/openib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
/root/RRI/openmpi-1.3/ompi’
make: *** [all-recursive] Error 1
With other compilers Open MPI gets installed very easily. But its failing with PGI only.
What could be the solution for this?
Thanks,
Sangamesh