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

Reply via email to