Thanks Paul,
i pushed your patch at
https://github.com/open-mpi/ompi/commit/ef3ee027b07fa8cd447e4fffec56ecfe3332548e
and will PR from now
Cheers,
Gilles
On 5/6/2016 1:13 PM, Paul Hargrove wrote:
Disclamer first:
Yes, I am testing a *beta* compiler but this is NOT about a compiler bug.
I leave it to the judgment of others whether my findings warrant any
action.
I am testing the 2.0.0rc2 tarball with the Oracle Solaris Studio
12.5-beta for Linux.
With Studio 12.4 all is fine on the same system with identical
configure options.
The configure command options in both cases (with different $PATH):
--prefix=[...] --enable-debug --enable-mpi-cxx CC=cc CXX=CC FC=f95
With 12.5-beta (but not 12.4) I see the following failure while
building the fortran bindings:
/bin/sh ../../../../libtool --tag=FC --mode=link f95
-I../../../../ompi/include
-I/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/openmpi-2.0.0rc2/ompi/include
-I../../../..
-I/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/openmpi-2.0.0rc2
-g -version-info 20:0:0 -o libmpi_usempi_ignore_tkr.la
<http://libmpi_usempi_ignore_tkr.la> -rpath
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/INST/lib
mpi-ignore-tkr.lo
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/BLD/opal/libopen-pal.la
<http://libopen-pal.la> -lrt -lm -lutil
libtool: link: f95 -shared .libs/mpi-ignore-tkr.o -rpath
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/BLD/opal/.libs
-rpath
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/INST/lib
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u5b/BLD/opal/.libs/libopen-pal.so
-ldl -lnuma -lrt -lm -lutil -g -mt -soname
libmpi_usempi_ignore_tkr.so.20 -o .libs/libmpi_usempi_ignore_tkr.so.20.0.0
f90: Warning: Option -shared passed to ld, if ld is invoked, ignored
otherwise
f90: Warning: Option -path passed to ld, if ld is invoked, ignored
otherwise
f90: Warning: Option -path passed to ld, if ld is invoked, ignored
otherwise
f90: Warning: Option -soname passed to ld, if ld is invoked, ignored
otherwise
/usr/bin/ld: unrecognized option '-path'
/usr/bin/ld: use the --help option for usage information
make[2]: *** [libmpi_usempi_ignore_tkr.la
<http://libmpi_usempi_ignore_tkr.la>] Error 2
My first observation is that f95 command line produced by libtool
doesn't look at all like the same step when using the 12.4 compiler:
libtool: link: f95 -G -KPIC .libs/mpi-ignore-tkr.o -Qoption ld
-rpath -Qoption ld
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u4/BLD/opal/.libs
-Qoption ld -rpath -Qoption ld
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u4/INST/lib
/scratch/phargrov/OMPI/openmpi-2.0.0rc2-linux-x86_64-ss12u4/BLD/opal/.libs/libopen-pal.so
-ldl -lnuma -lrt -lm -lutil -g -mt -Qoption ld -soname -Qoption ld
libmpi_usempi_ignore_tkr.so.20 -o .libs/libmpi_usempi_ignore_tkr.so.20.0.0
So, my initial diagnosis was that this is most likely a libtool bug.
BUT, I also know that autogen.pl <http://autogen.pl> contains logic
for "Patching configure for Sun Studio Fortran version strings".
So, I recognized that Open MPI's autogen.pl <http://autogen.pl> might
be where the fix belongs.
Continuing on that line of though I discovered that the version
strings for the Fortran compiler have changed between 12.4 and 12.5-beta:
$ /opt/oracle/solarisstudio12.4/bin/f95 -V
f90: Sun Fortran 95 8.7 Linux_i386 2014/10/20
$ /opt/oracle/solarisstudio12.5-beta/bin/f95 -V
f90: Studio 12.5 Fortran 95 8.8 Linux_i386 Beta 2015/11/17
Notice that "Sun" is gone, and thus the patterns used by libtool no
longer match!
So, this *is* a libtool "issue", but can hardly be blamed on libtool.
FWIW: the C and C++ compiler still say "Sun" and match the patterns
used by libtool:
$ /opt/oracle/solarisstudio12.5-beta/bin/cc -V
cc: Studio 12.5 Sun C 5.14 Linux_i386 Beta 2015/11/17
$ /opt/oracle/solarisstudio12.5-beta/bin/CC -V
CC: Studio 12.5 Sun C++ 5.14 Linux_i386 Beta 2015/11/17
I checked the libtool git repo, and there is no upstream fix for this
(Ralf W., are you still on this list?)
So, for all that wind-up this posting comes down to a small addition
to autogen.sh:
--- a/autogen.pl <http://autogen.pl>
+++ b/autogen.pl <http://autogen.pl>
@@ -977,6 +977,12 @@ sub patch_autotools_output {
$c =~ s/$search_string/$replace_string/;
}
+ # Oracle has apparently begun (as of 12.5-beta) removing the
"Sun" branding.
+ # So this patch (cumulative over the previous one) is required.
+ push(@verbose_out, $indent_str . "Patching configure for Oracle
Studio Fortran version strings\n");
+ $c =~ s/\*Sun\*Fortran\*\)/*Sun*Fortran* | *Studio*Fortran*)/g;
+ $c =~ s/\*Sun\\ F\*\)(.*\n\s+tmp_sharedflag=)/*Sun\\ F* |
*Studio*Fortran*)$1/g;
+
# See
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=v2.2.6-201-g519bf91
for details
# Note that this issue was fixed in LT 2.2.8, however most
distros are still using 2.2.6b
-Paul
--
Paul H. Hargrove phhargr...@lbl.gov <mailto:phhargr...@lbl.gov>
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
_______________________________________________
devel mailing list
de...@open-mpi.org
Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post:
http://www.open-mpi.org/community/lists/devel/2016/05/18923.php