Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] RFC: Add SunStudio/Libtool helper script for post-configure
From: Ralf Wildenhues (Ralf.Wildenhues_at_[hidden])
Date: 2008-11-21 07:02:12

Hello Ethan, all,

* Ethan Mallove wrote on Thu, Nov 20, 2008 at 10:33:08PM CET:
> On Thu, Nov/20/2008 07:00:31PM, Ralf Wildenhues wrote:
> >
> > Ah, ok. Please try the patch below instead of yours, thanks.
> Your patch seems to work, though I get this:
> libtool: Version mismatch error. This is libtool 2.2.7a, but the
> libtool: definition of this LT_INIT comes from libtool 2.2.6.
> libtool: You should recreate aclocal.m4 with macros from libtool 2.2.7a
> libtool: and run autoconf again.
> I take it the above error will occur if I have two different libtools
> in my PATH?

No. That means the macro files that were picked up were from Libtool
2.2.6, while the file is from 2.2.7a.

> This comment could be a little misleading because the same is true for
> Sun Fortran 8.1 and 8.2:
> # Sun Fortran 8.3 passes all unrecognized flags to the linker

OK. I think we simply didn't have any other version to test at the time
this was written. We usually list the version somewhere so we can check
for version-specific issues, should they later show up.

I will update the comment to list '8.1 through 8.3', when I commit your
patch (sometime this weekend); thanks for testing it.

> I don't know of a version of Sun Fortran that accepts -Wl the way GNU
> Fortran does. I will let you know if I find one.


> > > I'm still running into the Cstd/stlport4 issue with 2.2.6. That is,
> > > this line appears in the libtool script:
> > >
> > > postdeps="-library=Cstd -library=Crun"
> >
> > Do you have the string " -library=stlport4 " in $CXX $CXXFLAGS?
> > If not, then how can Libtool detect that you use stlport?
> Ok. When I use -library=stlport4, I get libstlport linked to
> libmpi_cxx, instead of libCstd. Doesn't that then lock the user into
> having to use stlport4 when we want them to be able to use either Cstd
> or stlport4?

Hmm, yes, it does. It is a bit of a problem to let libtool avoid either
standard C++ library in general: with shared libraries or even
dlopen'able modules, this can result in undefined symbols at run time.

As the code is currently written in libtool.m4, there is an undocumented
way which you can use to get the effects of adding neither library: set
solaris_use_stlport4=yes. You can use this, either as argument to
configure, or set it inside (or a macro) so that it is
expanded before AC_PROG_LIBTOOL.

However, as it is undocumented, there is no guarantee that it will
continue to work indefinitely. What Libtool should instead do future is
provide some configure flag to allow to specify that no C++ standard
library is to be linked in by default. That would help for a couple of
different setups with other compilers as well. IMHO OpenMPI can use
the solaris_use_stlport4=yes until such a functionality is in place.

Cheers, and thanks,