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

Reply via email to