bug-libtool
[Top][All Lists]
Advanced

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

Re: LT 2.2 series regression


From: Jeff Squyres
Subject: Re: LT 2.2 series regression
Date: Sun, 25 May 2008 09:25:20 -0400

This patch unfortunately does not seem to work -- here's some output from the build:

/bin/sh ../../../libtool --mode=compile ifort -I../../../ompi/ include -I../../../ompi/include -I. -I. -I../../../ompi/mpi/f90 -c - o mpi_wtick_f90.lo mpi_wtick_f90.f90 libtool: compile: ifort -I../../../ompi/include -I../../../ompi/ include -I. -I. -I../../../ompi/mpi/f90 -c mpi_wtick_f90.f90 -o .libs/ mpi_wtick_f90.o ./scripts/mpi_wtime_f90.f90.sh /users/jsquyres/svn/ompi/ompi/mpi/f90 > mpi_wtime_f90.f90

Note that it still doesn't have a -fPIC in there. Looking in the output of configure, it's still trying to use -KPIC:

checking for ifort option to produce PIC... -KPIC
checking if ifort PIC flag -KPIC works... no

I notice that you patched [opal/]libltdl/m4/libtool.m4 -- did you mean to patch config/libtool.m4? I tried patching both of these, but got the same result (listed above).


On May 25, 2008, at 4:50 AM, Ralf Wildenhues wrote:

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)


--
Jeff Squyres
Cisco Systems





reply via email to

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