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)
