libtool-patches
[Top][All Lists]
Advanced

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

Ignore hardcode_direct=yes if results in static lib entry


From: Albert Chin
Subject: Ignore hardcode_direct=yes if results in static lib entry
Date: Tue, 16 May 2006 20:18:09 -0500
User-agent: Mutt/1.5.6i

The following patch addresses
http://lists.gnu.org/archive/html/libtool/2006-04/msg00044.html. I
added a new variable, hardcode_direct_static, to indicate if
hardcode_direct=yes would hardcode a static library dependency. This
impacts HP-UX/PA and AIX.

Patch against HEAD.

2006-05-16  Albert Chin-A-Young  <address@hidden>

        * libltdl/config/ltmain.m4sh, libltdl/m4/libtool.m4
        (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG,
        _LT_LANG_FC_CONFIG) [ aix4*, aix5*, hpux10*, hpux11* ]: 
        Introduce a new variable, hardcode_direct_static, which
        would ignore hardcode_direct=yes if the result would create a
        static library dependency. Static library dependencies are
        immune to $shlibpath_var.

-- 
albert chin (address@hidden)

-- snip snip
Index: libltdl/config/ltmain.m4sh
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/config/ltmain.m4sh,v
retrieving revision 1.43
diff -u -p -r1.43 ltmain.m4sh
--- libltdl/config/ltmain.m4sh  14 May 2006 08:20:11 -0000      1.43
+++ libltdl/config/ltmain.m4sh  17 May 2006 00:58:16 -0000
@@ -3832,7 +3832,8 @@ func_mode_link ()
              fi
              ;;
            relink)
-             if test "$hardcode_direct" = yes; then
+             if test "$hardcode_direct" = yes &&
+                test "$hardcode_direct_static" = no; then
                add="$dir/$linklib"
              elif test "$hardcode_minus_L" = yes; then
                add_dir="-L$dir"
@@ -3887,7 +3888,8 @@ func_mode_link ()
            add_dir=
            add=
            # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes; then
+           if test "$hardcode_direct" = yes &&
+              test "$hardcode_direct_static" = no; then
              add="$libdir/$linklib"
            elif test "$hardcode_minus_L" = yes; then
              add_dir="-L$libdir"
Index: libltdl/m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v
retrieving revision 1.65
diff -u -p -r1.65 libtool.m4
--- libltdl/m4/libtool.m4       15 May 2006 16:40:43 -0000      1.65
+++ libltdl/m4/libtool.m4       17 May 2006 00:58:16 -0000
@@ -3967,6 +3968,7 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | 
$global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   _LT_TAGVAR(hardcode_automatic, $1)=no
   _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_static, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
   _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
@@ -4316,6 +4318,7 @@ _LT_EOF
 
       _LT_TAGVAR(archive_cmds, $1)=''
       _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_static, $1)=yes
       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
@@ -4561,6 +4564,7 @@ _LT_EOF
        _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
+       _LT_TAGVAR(hardcode_direct_static, $1)=yes
        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
        # hardcode_minus_L: Not really in the search PATH,
        # but as the default location of the library.
@@ -4605,6 +4609,7 @@ _LT_EOF
          ;;
        *)
          _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_direct_static, $1)=yes
          _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
 
          # hardcode_minus_L: Not really in the search PATH,
@@ -4975,6 +4980,11 @@ _LT_TAGDECL([], [hardcode_libdir_separat
 _LT_TAGDECL([], [hardcode_direct], [0],
     [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
     DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_static], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    static, impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
 _LT_TAGDECL([], [hardcode_minus_L], [0],
     [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
     into the resulting binary])
@@ -5134,6 +5144,7 @@ _LT_TAGVAR(always_export_symbols, $1)=no
 _LT_TAGVAR(archive_expsym_cmds, $1)=
 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_static, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
@@ -6390,6 +6401,7 @@ _LT_TAGVAR(always_export_symbols, $1)=no
 _LT_TAGVAR(archive_expsym_cmds, $1)=
 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_static, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
@@ -6523,6 +6535,7 @@ _LT_TAGVAR(always_export_symbols, $1)=no
 _LT_TAGVAR(archive_expsym_cmds, $1)=
 _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_static, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=




reply via email to

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