libtool-patches
[Top][All Lists]
Advanced

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

Re: Fix libtool on HP-UX/IA-64


From: Albert Chin
Subject: Re: Fix libtool on HP-UX/IA-64
Date: Sun, 6 Nov 2005 18:27:03 -0600
User-agent: Mutt/1.5.6i

On Sat, Nov 05, 2005 at 08:34:23AM +0100, Ralf Wildenhues wrote:
> * Albert Chin wrote on Fri, Nov 04, 2005 at 06:15:49PM CET:
> > The following patch fixes libtool-1.5 on HP-UX 11.23/IA-64.
> >   1. If you specify +b and -L, -L doesn't embed the path into
> >      DT_RPATH. Hence, removal of hardcode_minus_L=yes.
> >   2. If you specify only -L's without +nodefaultrpath, they are
> >      embedded into DT_RPATH.
> >   3. It's just easier to rely on +b throughout, like hppa*64.
> > 
> > There is one problem. If a library is created _without_ +b (because it
> > has no dependencies) but -L in LDFLAGS, the paths from -L will get
> > hardcoded into the library. Uck! The fix is to add
> > ${wl}+nodefaultrpath. Should we do this for _every_ library we create
> > on ia64*? I say yes.
> 
> I agree.  The patch is ok with me.  Could you be bothered to
> forward-port to HEAD though?  Knowing me, the logic is just a
> tad too nontrivial that I won't mess it up without testing.
> I'll apply to both branches then.

Patch below.

-- 
albert chin (address@hidden)

-- snip snip
2005-11-04  Albert Chin-A-Young  <address@hidden>

        * libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG):
        hardcode_libdir_flag_spec and hardcode_minus_L are the
        same for hppa*64 and ia64*. Don't set
        hardcode_libdir_flag_spec='-L$libdir' on ia64* because
        if you specify +b and -L, +b overrides what is set into
        DT_RPATH.

Index: libltdl/m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v
retrieving revision 1.32
diff -u -3 -p -r1.32 libtool.m4
--- libltdl/m4/libtool.m4       1 Nov 2005 16:24:10 -0000       1.32
+++ libltdl/m4/libtool.m4       5 Nov 2005 17:26:55 -0000
@@ -4383,25 +4383,15 @@ _LT_EOF
        esac
       fi
       if test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
        case $host_cpu in
-       hppa*64*)
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+       hppa*64*|ia64*)
          _LT_TAGVAR(hardcode_direct, $1)=no
          _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
          ;;
-       ia64*)
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_TAGVAR(hardcode_direct, $1)=no
-         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         _LT_TAGVAR(hardcode_minus_L, $1)=yes
-         ;;
        *)
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
          _LT_TAGVAR(hardcode_direct, $1)=yes
          _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
 
@@ -5396,32 +5386,21 @@ if test "$_lt_caught_CXX_error" != yes; 
 
       hpux10*|hpux11*)
         if test $with_gnu_ld = no; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
           case $host_cpu in
-            hppa*64*)
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-              ;;
-            ia64*)
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            hppa*64*|ia64*)
               ;;
             *)
-             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
              _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
               ;;
           esac
         fi
         case $host_cpu in
-          hppa*64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          ia64*)
+          hppa*64*|ia64*)
             _LT_TAGVAR(hardcode_direct, $1)=no
             _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-                                                # but as the default
-                                                # location of the library.
             ;;
           *)
             _LT_TAGVAR(hardcode_direct, $1)=yes




reply via email to

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