Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] problem with mpijavac in openmpi-1.9a1r27359
From: Siegmar Gross (Siegmar.Gross_at_[hidden])
Date: 2012-09-22 14:04:47


Hi,

I just installed openmpi-1.9a1r27359 in 64-bit mode. I used the following
command to configure the package. Unfortunately it doesn't work as expected,
because it still uses the 32-bit javac from /usr/local/jdk1.7.0_07/bin
so that I get an error when I try to run a Java program.

../openmpi-1.9a1r27359/configure --prefix=/usr/local/openmpi-1.9_64_cc \
  --libdir=/usr/local/openmpi-1.9_64_cc/lib64 \
  --with-jdk-bindir=/usr/local/jdk1.7.0_07/bin/sparcv9 \
  --with-jdk-headers=/usr/local/jdk1.7.0_07/include \
  LDFLAGS="-m64" \
  CC="cc" CXX="CC" FC="f95" \
  CFLAGS="-m64" CXXFLAGS="-m64 -library=stlport4" FCFLAGS="-m64" \
  CPP="cpp" CXXCPP="cpp" \
  CPPFLAGS="" CXXCPPFLAGS="" \
  C_INCL_PATH="" C_INCLUDE_PATH="" CPLUS_INCLUDE_PATH="" \
  OBJC_INCLUDE_PATH="" OPENMPI_HOME="" \
  --enable-cxx-exceptions \
  --enable-mpi-java \
  --enable-heterogeneous \
  --enable-orterun-prefix-by-default \
  --enable-opal-multi-threads \
  --enable-mpi-thread-multiple \
  --with-threads=posix \
  --with-hwloc=internal \
  --without-verbs \
  --without-udapl \
  --with-wrapper-cflags=-m64 \
  |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV.64_cc

I have the following lines in config.log.

tyr openmpi-1.9-SunOS.sparc.64_cc 237 more config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Open MPI configure 1.9a1, which was
generated by GNU Autoconf 2.69. Invocation command line was

  $ ../openmpi-1.9a1r27359/configure --prefix=/usr/local/openmpi-1.9_64_cc --libd
ir=/usr/local/openmpi-1.9_64_cc/lib64 --with-jdk-bindir=/usr/local/jdk1.7.0_07/bi
n/sparcv9 --with-jdk-headers=/usr/local/jdk1.7.0_07/include LDFLAGS=-m64 CC=cc CX
X=CC FC=f95 CFLAGS=-m64 CXXFLAGS=-m64 -library=stlport4 FCFLAGS=-m64 CPP=cpp CXXC
PP=cpp CPPFLAGS= CXXCPPFLAGS= C_INCL_PATH= C_INCLUDE_PATH= CPLUS_INCLUDE_PATH= OB
JC_INCLUDE_PATH= OPENMPI_HOME= --enable-cxx-exceptions --enable-mpi-java --enable
-heterogeneous --enable-orterun-prefix-by-default --enable-opal-multi-threads --e
nable-mpi-thread-multiple --with-threads=posix --with-hwloc=internal --without-ve
rbs --without-udapl --with-wrapper-cflags=-m64
...
configure:27443: checking --with-jdk-bindir value
configure:27463: result: sanity check ok (/usr/local/jdk1.7.0_07/bin/sparcv9)
configure:27475: checking --with-jdk-headers value
configure:27495: result: sanity check ok (/usr/local/jdk1.7.0_07/include)
configure:27515: checking for javac
configure:27533: found /usr/local/jdk1.7.0_07/bin/javac
configure:27545: result: /usr/local/jdk1.7.0_07/bin/javac
configure:27555: checking for javah
configure:27573: found /usr/local/jdk1.7.0_07/bin/javah
configure:27585: result: /usr/local/jdk1.7.0_07/bin/javah
configure:27595: checking for jar
configure:27613: found /usr/local/jdk1.7.0_07/bin/jar
configure:27625: result: /usr/local/jdk1.7.0_07/bin/jar
configure:27666: checking jni.h usability
...

javac is available in the 64-bit directory.

tyr openmpi-1.9-SunOS.sparc.64_cc 239 file /usr/local/jdk1.7.0_07/bin/sparcv9/javac
/usr/local/jdk1.7.0_07/bin/sparcv9/javac: ELF 64-bit MSB executable SPARCV9
  Version 1, dynamically linked, not stripped, no debugging information available

Why does configure still use the 32-bit version?

tyr openmpi-1.9-SunOS.sparc.64_cc 240 mpijavac -showme
/usr/local/jdk1.7.0_07/bin/javac -cp ... :.:/usr/local/openmpi-1.9_64_cc/lib64/mpi.jar

This way I get the following error.

tyr fd1026 244 mpiexec java -cp $HOME/mpi_classfiles HelloMainWithBarrier
Exception in thread "main" java.lang.UnsatisfiedLinkError:
  /.../openmpi-1.9_64_cc/lib64/libmpi_java.so.0.0.0: ld.so.1: java: fatal:
  /.../openmpi-1.9_64_cc/lib64/libmpi_java.so.0.0.0: wrong ELF class: ELFCLASS64
  (Possible cause: architecture word width mismatch)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
...

Is something wrong with my configure command? Thank you very much for any help
in advance.

Kind regards

Siegmar