Hi Jeff,
* Jeff Squyres wrote on Wed, May 21, 2008 at 05:08:57PM CEST:
The Open MPI project just switched yesterday to using LT 2.2.4, AC
2.62,
and AM 1.10.1 for our nightly trunk snapshot tarballs. Several
developers have been using this combo for a while (including me), but
using this trio for the nightly tarballs opens it up to a much wider
testing audience.
Thanks for the move, that really helps find those system-dependent
regressions we cannot test ourselves.
We ran into a problem with last night's regression testing with the
Fortran Intel compiler suite and shared libraries.
It seems that LT 2.2.x determines that the Intel ifort compiler
option
for building shared libraries is -KPIC (when it should be -fPIC). It
then tests -KPIC, determines that it doesn't work, and then
discards it.
Hence, sources built with ifort have *no* PIC option, and therefore
you
can't build shared libraries for them. Here's the relevant output
from
configure (RHEL4U4, x86_64, Intel compiler suite 10.1):
Do you have an idea how many different Intel compiler versions your
users use? Because commit 319a767ce6d3eb131cc6d4d64809af1859d1a801
was added here:
<http://lists.gnu.org/archive/html/libtool-patches/2008-02/msg00007.html
>
and I'm pretty sure that the version I tested then did work with -KPIC
(and I think I tested with a fairly new one).
I have only old version 8 to look at here right now, which states that
-KPIC is supported but deprecated, and that -fPIC is OK.
I've applied the patch below now. Can you report back how it worked
for
you?
Thanks,
Ralf
Fix ifort settings again.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC) [linux] <ifort>:
Unlike icc and ecc, not all ifort versions understand `-KPIC',
e.g. version 10.1, so use `-fPIC' instead.
Report by Jeff Squyres.
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 6f9ac1b..654f54a 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -3964,11 +3964,16 @@ m4_if([$1], [CXX], [
linux* | k*bsd*-gnu)
case $cc_basename in
- icc* | ecc* | ifort*)
+ icc* | ecc*)
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
+ ifort*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
pgcc* | pgf77* | pgf90* | pgf95*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)