libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add support for Intel MPI fortran compiler


From: Christian Rössel
Subject: Re: [PATCH] Add support for Intel MPI fortran compiler
Date: Mon, 14 Oct 2013 11:50:42 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0

Brooks,

On 10/09/2013 12:23 AM, Brooks Moses wrote:
On 10/07/2013 06:11 AM, Ward Poelmans wrote:
In the check for static/shared libraries, the Intel MPI fortran compiler
is not detected.

Thanks, but a couple of things don't look quite right here....

@@ -4443,7 +4443,7 @@ m4_if([$1], [CXX], [
          ;;
        # icc used to be incompatible with GCC.
        # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
+      icc* | ifort* | mpif77* | mpif90* | mpifc* | mpiifort*)

"mpif77" is a commonly-used generic name; there's no assurance this is
the Intel version (unless I'm missing something).

that's correct, checking for mpi* is IMO a bad idea regarding libtool. In case of MPI and non-GCC Fortran compilers, libtool currently does a 'case `$CC -V 2>&1 | sed 5q` in' and compares against compiler vendor names to set lt_prog_compiler_ *. This is IMO error-prone and duplication as the functionality is already there in the 'case $cc_basename' case statements.

What libtool really needs to know if used with MPI compiler wrappers, is the cc_basename of the compiler used by the MPI implementation. This could be implemented by extending _LT_CC_BASENAME. What do you think?

See also:
https://lists.gnu.org/archive/html/libtool/2010-12/msg00031.html
https://lists.gnu.org/archive/html/libtool/2012-09/msg00030.html

Christian

Also, as per the Intel documentation I'm aware of, all of these except
mpiifort* use GCC, not Intel's compilers, as the underlying compiler; do
they actually need the special handling here?
http://software.intel.com/sites/products/documentation/hpc/ics/impi/41/lin/Reference_Manual/Compiler_Commands.htm


It also looks like you're missing mpiicc* from the list here (and
mpiicpc* is also missing; it should be added with icpc* at line 4155).

@@ -4909,7 +4909,7 @@ _LT_EOF
        tmp_addflag=' -i_dynamic' ;;
      efc*,ia64* | ifort*,ia64*)    # Intel Fortran compiler on ia64
        tmp_addflag=' -i_dynamic -nofor_main' ;;
-    ifc* | ifort*)            # Intel Fortran compiler
+    ifc* | ifort* | mpif77* | mpif90* | mpifc* | mpiifort*)        #
Intel Fortran compiler

Likewise here, with regards to mpif77*/mpif90*/mpifc*.  Do these
actually need the special handling, and are we sure this will only be
triggered by Intel's mpif77?

Thanks,
- Brooks






reply via email to

[Prev in Thread] Current Thread [Next in Thread]