Re: [PATCH] Add support for Intel MPI fortran compiler
Christian Rössel <[email protected]>
| Newsgroups | gmane.comp.gnu.libtool.patches |
|---|---|
| Message-ID | <[email protected]> |
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 > >