Hello, the patch below fixes the build issue on Solaris 10. Please apply it to Open MPI 1.6 as follows:
$ cd openmpi-1.6 $ patch -p1 <openmpi-1.6patch_vt_sol10_build_issue_fix.diff $ make ; make install Thanks for the report! Best regards, Matthias Jurenz ---------------------------------------------- openmpi-1.6patch_vt_sol10_build_issue_fix.diff: diff -u -r -N openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_libwrap.c openmpi-1.6_vt_sol10_build_issue_fix/ompi/contrib/vt/vt/vtlib/vt_libwrap.c --- openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_libwrap.c 2012-04-24 21:18:17.000000000 +0200 +++ openmpi-1.6_vt_sol10_build_issue_fix/ompi/contrib/vt/vt/vtlib/vt_libwrap.c 2012-06-05 10:02:36.022566303 +0200 @@ -83,7 +83,7 @@ if( libc_errno == NULL ) { (void)dlerror(); -#ifdef HAVE_DECL___ERRNO_LOCATION +#if defined(HAVE_DECL___ERRNO_LOCATION) && HAVE_DECL___ERRNO_LOCATION *(void**)(&libc_errno) = dlsym(libc_handle, libc_errno_sym); #else /* HAVE_DECL___ERRNO_LOCATION */ libc_errno = (int*)dlsym(libc_handle, libc_errno_sym); @@ -102,7 +102,7 @@ } } -#ifdef HAVE_DECL___ERRNO_LOCATION +#if defined(HAVE_DECL___ERRNO_LOCATION) && HAVE_DECL___ERRNO_LOCATION return libc_errno(); #else /* HAVE_DECL___ERRNO_LOCATION */ return libc_errno; ---------------------------------------------- > From: Siegmar Gross <siegmar.gr...@informatik.hs-fulda.de> > Subject: [OMPI users] problems compiling openmpi-1.6 on some platforms > Date: May 30, 2012 7:29:31 AM EDT > To: <us...@open-mpi.org> > Reply-To: Siegmar Gross <siegmar.gr...@informatik.hs-fulda.de>, Open MPI Users <us...@open-mpi.org> > > Hi, > > I tried to compile "openmpi-1.6" on "Solaris 10" and Linux > (openSUSE 12.1) with "gcc-4.6.2" and "Sun C 5.12" (Oracle Solaris > Studio 12.3) with mainly the following configuration for a 64- and > 32-bit installation. "-L/usr/local/..." was necessary because "gcc" > didn't find its 64-bit libraries without this option. > > ../openmpi-1.6/configure --prefix=/usr/local/openmpi-1.6_64_gcc \ > --libdir=/usr/local/openmpi-1.6_64_gcc/lib64 \ > LDFLAGS="-m64 -L/usr/local/gcc-4.6.2/lib/sparcv9" \ > CC="gcc" CPP="cpp" CXX="g++" CXXCPP="cpp" F77="gfortran" \ > CFLAGS="-m64" CXXFLAGS="-m64" FFLAGS="-m64" FCFLAGS="-m64" \ > CXXLDFLAGS="-m64" CPPFLAGS="" \ > C_INCL_PATH="" C_INCLUDE_PATH="" CPLUS_INCLUDE_PATH="" \ > OBJC_INCLUDE_PATH="" MPIHOME="" \ > --without-udapl --without-openib \ > --enable-mpi-f90 --with-mpi-f90-size=small \ > --enable-heterogeneous --enable-cxx-exceptions \ > --enable-shared --enable-orterun-prefix-by-default \ > --with-threads=posix --enable-mpi-thread-multiple \ > --with-hwloc=internal --with-ft=LAM --enable-sparse-groups \ > |& tee log.configure.$SYSTEM_ENV.$MACHINE_ENV.64_gcc > > > For "cc" I used 'CC="cc" CXX="CC" F77="f77" FC="f95"'. With "gcc" > I got for example the following error so that I had to add the option > "--disable-vt" to the gcc-configuration. > > > tail -n 20 log.make.SunOS.sparc.64_gcc > > make[5]: Leaving directory `.../ompi/contrib/vt/vt/rfg' > Making all in vtlib > make[5]: Entering directory `.../ompi/contrib/vt/vt/vtlib' > CC vt_comp_gnu.lo > CC vt_iowrap.lo > CC vt_iowrap_helper.lo > CC vt_libwrap.lo > ../../../../../../openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_libwrap.c: > In function 'get_libc_errno_ptr': > ../../../../../../openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_libwrap.c: > 106:20: error: called object 'libc_errno' is not a function > make[5]: *** [vt_libwrap.lo] Error 1 > ... > > > With these options I was able to install OpenMPI on some of my > platforms. > > ls -d /export2/prog/*/openmpi-1.6* > > /export2/prog/Linux_x86/openmpi-1.6_32_gcc > /export2/prog/Linux_x86_64/openmpi-1.6_32_gcc > /export2/prog/Linux_x86_64/openmpi-1.6_64_gcc > /export2/prog/SunOS_sparc/openmpi-1.6_32_cc > /export2/prog/SunOS_sparc/openmpi-1.6_32_gcc > /export2/prog/SunOS_sparc/openmpi-1.6_64_cc > /export2/prog/SunOS_sparc/openmpi-1.6_64_gcc > /export2/prog/SunOS_x86_64/openmpi-1.6_32_cc > /export2/prog/SunOS_x86_64/openmpi-1.6_32_gcc > /export2/prog/SunOS_x86_64/openmpi-1.6_64_cc > /export2/prog/SunOS_x86_64/openmpi-1.6_64_gcc > > > Unfortunately "cc" on Linux creates the following error. > > ln -s "../../../openmpi-1.6/opal/asm/generated/ > atomic-ia32-linux-nongas.s" atomic-asm.S > CPPAS atomic-asm.lo > <command-line>:19:0: warning: "__FLT_EVAL_METHOD__" redefined > [enabled by default] > <built-in>:110:0: note: this is the location of the previous definition > cpp: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found > compilation terminated. > cc: cpp failed for atomic-asm.S > make[2]: *** [atomic-asm.lo] Error 1 > make[2]: Leaving directory `/.../opal/asm' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/.../opal' > make: *** [all-recursive] Error 1 > > > Adding the option "--with-libltdl=internal" (should be the default > anyway) didn't solve the problem so that I tried to add the options > "--without-libltdl --disable-dlopen" to the cc-configuration on > Linux. Unfortunately I still get the above error although I started > everything in a new directory. > > ln -s "../../../openmpi-1.6/opal/asm/generated/ > atomic-ia32-linux-nongas.s" atomic-asm.S > CPPAS atomic-asm.lo > <command-line>:19:0: warning: "__FLT_EVAL_METHOD__" redefined > [enabled by default] > <built-in>:110:0: note: this is the location of the previous definition > cpp: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found > compilation terminated. > cc: cpp failed for atomic-asm.S > make[2]: *** [atomic-asm.lo] Error 1 > make[2]: Leaving directory `/.../opal/asm' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/.../opal' > make: *** [all-recursive] Error 1 > > linpc1 openmpi-1.6-Linux.x86.32_cc 94 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.6, which was > generated by GNU Autoconf 2.68. Invocation command line was > > $ ../openmpi-1.6/configure --prefix=/usr/local/openmpi-1.6_32_cc LDFLAGS=- m32 > CC=cc CXX=CC F77=f77 FC=f95 CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=- m32 C > XXLDFLAGS=-m32 CPPFLAGS= C_INCL_PATH= C_INCLUDE_PATH= CPLUS_INCLUDE_PATH= OBJC_I > NCLUDE_PATH= MPICHHOME= --without-udapl --without-openib --enable-mpi-f90 -- with > -mpi-f90-size=small --enable-heterogeneous --enable-cxx-exceptions --enable- shar > ed --enable-orterun-prefix-by-default --with-threads=posix --enable-mpi- thread-m > ultiple --with-hwloc=internal --with-ft=LAM --enable-sparse-groups -- without-lib > ltdl --disable-dlopen > > > > I have another problem on SunOS_x86 with both "cc" and "gcc" where > "configure" breaks with the following error. > > configure: creating ./config.status > config.status: creating Makefile > ./config.status: line 1197: 4396 Done(141) > eval sed \"\$ac_sed_extra\" "$ac_file_inputs" > 4397 Segmentation Fault | $AWK -f "$ac_tmp/subs.awk" > $ac_tmp/out > config.status: error: could not create Makefile > configure: /bin/bash '../../../openmpi-1.6/opal/libltdl/configure' > failed for opal/libltdl > configure: WARNING: Failed to build GNU libltdl. This usually means > that something > configure: WARNING: is incorrectly setup with your environment. > There may be useful information in > configure: WARNING: opal/libltdl/config.log. You can also disable GNU > libltdl, which will disable > configure: WARNING: dynamic shared object loading, by configuring with > --disable-dlopen. > configure: error: Cannot continue > > > I tried once more adding the option "--disable-dlopen" without success. > > configure: creating ./config.status > config.status: creating ompi/include/ompi/version.h > ./config.status: line 3410: 26746 Done > eval sed \"\$ac_sed_extra\" "$ac_file_inputs" > 26747 Segmentation Fault | $AWK -f "$ac_tmp/subs.awk" > $ac_tmp/out > config.status: error: could not create ompi/include/ompi/version.h > > sunpc1 openmpi-1.6-SunOS.x86.32_gcc 83 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.6, which was > generated by GNU Autoconf 2.68. Invocation command line was > > $ ../openmpi-1.6/configure --prefix=/usr/local/openmpi-1.6_32_cc LDFLAGS=- m32 > CC=cc CXX=CC F77=f77 FC=f95 CFLAGS=-m32 CXXFLAGS=-m32 FFLAGS=-m32 FCFLAGS=- m32 C > XXLDFLAGS=-m32 CPPFLAGS= C_INCL_PATH= C_INCLUDE_PATH= CPLUS_INCLUDE_PATH= OBJC_I > NCLUDE_PATH= MPICHHOME= --without-udapl --without-openib --enable-mpi-f90 -- with > -mpi-f90-size=small --enable-heterogeneous --enable-cxx-exceptions --enable- shar > ed --enable-orterun-prefix-by-default --with-threads=posix --enable-mpi- thread-m > ultiple --with-hwloc=internal --with-ft=LAM --enable-sparse-groups -- disable-dlo > pen > > > I can create files and there is enough space available. > > sunpc1 fd1026 104 cd /export2/src/openmpi-1.6/ > sunpc1 openmpi-1.6 105 touch x > sunpc1 openmpi-1.6 106 rm x > sunpc1 openmpi-1.6 107 df -kh /export2 > Filesystem Size Used Avail Use% Mounted on > xxx:/export2 229G 121G 107G 54% /export2 > > > Do you have any suggestions how I can solve the problems on the > following platforms? > > Linux_x86, 32-bit, cc > Linux_x86_64, 32-bit, cc > Linux_x86_64, 64-bit, cc > SunOS_x86, 32-bit, cc > SunOS_x86, 32-bit, gcc > > Thank you very much for any help in advance. > > > Kind regards > > Siegmar > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users