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
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.