Hi folks,

I tried to build openmpi-1.8.2 with PGI fortran and -i8(64bit fortran int)
option
as shown below:

./configure \
--prefix=/home/mishima/opt/mpi/openmpi-1.8.2-pgi14.7_int64 \
--enable-abi-breaking-fortran-status-i8-fix \
--with-tm \
--with-verbs \
--disable-ipv6 \
CC=pgcc CFLAGS="-tp k8-64e -fast" \
CXX=pgCC CXXFLAGS="-tp k8-64e -fast" \
F77=pgfortran FFLAGS="-i8 -tp k8-64e -fast" \
FC=pgfortran FCFLAGS="-i8 -tp k8-64e -fast"

Then I saw this compile error in making oshmem at the last stage:

if test ! -r pshmem_real8_swap_f.c ; then \
                pname=`echo pshmem_real8_swap_f.c | cut -b '2-'` ; \
                ln -s ../../../../oshmem/shmem/fortran/$pname
pshmem_real8_swap_f.c ; \
        fi
  CC       pshmem_real8_swap_f.lo
if test ! -r pshmem_int4_cswap_f.c ; then \
                pname=`echo pshmem_int4_cswap_f.c | cut -b '2-'` ; \
                ln -s ../../../../oshmem/shmem/fortran/$pname
pshmem_int4_cswap_f.c ; \
        fi
  CC       pshmem_int4_cswap_f.lo
PGC-S-0058-Illegal lvalue (pshmem_int4_cswap_f.c: 39)
PGC/x86-64 Linux 14.7-0: compilation completed with severe errors
make[3]: *** [pshmem_int4_cswap_f.lo] Error 1
make[3]: Leaving directory
`/home/mishima/mis/openmpi/openmpi-pgi14.7/int64/openmpi-1.8.2/oshmem/shmem/fortran/profile'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/home/mishima/mis/openmpi/openmpi-pgi14.7/int64/openmpi-1.8.2/oshmem/shmem/fortran'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/home/mishima/mis/openmpi/openmpi-pgi14.7/int64/openmpi-1.8.2/oshmem'
make: *** [all-recursive] Error 1

I confirmed that it worked if I added configure option of --disable-oshmem.
So, I hope that oshmem experts would fix this problem.

(additional note)
I switched to use gnu compiler and checked with this configuration, then
I got the same error:

./configure \
--prefix=/home/mishima/opt/mpi/openmpi-1.8.2-gnu_int64 \
--enable-abi-breaking-fortran-status-i8-fix \
--disable-ipv6 \
F77=gfortran \
FC=gfortran \
CC=gcc \
CXX=g++ \
FFLAGS="-m64 -fdefault-integer-8" \
FCFLAGS="-m64 -fdefault-integer-8" \
CFLAGS=-m64 \
CXXFLAGS=-m64

make
....
if test ! -r pshmem_int4_cswap_f.c ; then \
                pname=`echo pshmem_int4_cswap_f.c | cut -b '2-'` ; \
                ln -s ../../../../oshmem/shmem/fortran/$pname
pshmem_int4_cswap_f.c ; \
        fi
  CC       pshmem_int4_cswap_f.lo
pshmem_int4_cswap_f.c: In function 'shmem_int4_cswap_f':
pshmem_int4_cswap_f.c:39: error: invalid lvalue in unary '&'
make[3]: *** [pshmem_int4_cswap_f.lo] Error 1

Regards
Tetsuya Mishima

Reply via email to