Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] problem with mpijavac in openmpi-1.9a1r27359
From: Ralph Castain (rhc_at_[hidden])
Date: 2012-09-22 15:10:15


Looks to me like we had a bug in the configure code - when we set the path for the javac/h tests, we put your specified jdk-bindir at the *end* instead of at the beginning. So if you had javac in your path, we picked it up instead of the one you specified.

Should now be fixed in r27360.

Thanks!

On Sep 22, 2012, at 11:04 AM, Siegmar Gross <Siegmar.Gross_at_[hidden]> wrote:

> 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
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users