libtool-patches
[Top][All Lists]
Advanced

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

Re: cmdline_wrap.at


From: Tim Rice
Subject: Re: cmdline_wrap.at
Date: Sun, 1 Mar 2009 14:44:37 -0800 (PST)

[ droping libtool@ from replies ]

Hi John, Ralf

On Sun, 1 Mar 2009, John Wolfe wrote:

> Hi Ralf, Tim
> 
> Here I am playing catch up again.
> 
> At first look at the patch I have one concern and that may be what is
> contributing to
> the failures later reported in this thread.
> 
>  - In the patch, I think the "$CC -r"   should be "$LD -r"
> 
>    Using the C++ compiler command to do the linking does not work!  It will
> begin to suck in
>    multiple copies of C++ startup runtime routines as you loop through the
> link.
> 

I wondered about that. Switching to $LD did the trick.
.....
79 tests behaved as expected.
7 tests were skipped.
.....

So after the minor change to Ralf's patch here is what we end up with.

-----------------< ChangeLog > -----------------------------------------
2009-02-28  Ralf Wildenhues  <address@hidden>

        Fix low max_cmd_len template test on UnixWare.
        * libltdl/config/ltmain.m4sh (func_mode_link): When expanding
        $reload_cmds, always put objects in $reload_objs rather than
        adding them to the command line, to allow more general command
        lines in reload_cmds.  Ensure $reload_objs contains a leading
        space.
        * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [sysv5*,
        sco3.2v5*, sco5v6*] <reload_cmds>: For CC, invoke prelinker
        before creating reloadable object.
        (_LT_CMD_RELOAD) <reload_cmds, reload_flag>: Declare as
        _LT_TAGDECL, not _LC_DECL.
        (_LT_LANG_CXX_CONFIG, _LT_LANG_F77_CONFIG, _LT_LANG_FC_CONFIG)
        (_LT_LANG_GCJ_CONFIG) <reload_cmds, reload_flag>: Initialize
        from default (C tag) value.
        * THANKS: Update.
        Report and analysis by Tim Rice and John Wolfe.

-----------------< Begin patch > -----------------------------------------
--- libtool-2.x/libltdl/config/ltmain.m4sh.old  2009-02-28 10:00:56.000000000 
-0800
+++ libtool-2.x/libltdl/config/ltmain.m4sh      2009-02-28 12:30:33.696970038 
-0800
@@ -6923,17 +6923,19 @@
                  # command to the queue.
                  if test "$k" -eq 1 ; then
                    # The first file doesn't have a previous command to add.
-                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+                   reload_objs=$objlist
+                   eval concat_cmds=\"$reload_cmds\"
                  else
                    # All subsequent reloadable object files will link in
                    # the last one created.
-                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist 
$last_robj~\$RM $last_robj\"
+                   reload_objs="$objlist $last_robj"
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM 
$last_robj\"
                  fi
                  last_robj=$output_objdir/$output_la-${k}.$objext
                  func_arith $k + 1
                  k=$func_arith_result
                  output=$output_objdir/$output_la-${k}.$objext
-                 objlist=$obj
+                 objlist=" $obj"
                  func_len " $last_robj"
                  func_arith $len0 + $func_len_result
                  len=$func_arith_result
@@ -6943,7 +6945,8 @@
              # reloadable object file.  All subsequent reloadable object
              # files will link in the last one created.
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist 
$last_robj\"
+             reload_objs="$objlist $last_robj"
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
              if test -n "$last_robj"; then
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
              fi
--- libtool-2.x/libltdl/m4/libtool.m4.old       2009-02-28 10:00:56.000000000 
-0800
+++ libtool-2.x/libltdl/m4/libtool.m4   2009-03-01 13:49:53.289834138 -0800
@@ -2888,8 +2888,8 @@
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -5314,6 +5314,8 @@
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6221,6 +6223,7 @@
            _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G 
${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs 
$compiler_flags'
            _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
              '"$_LT_TAGVAR(old_archive_cmds, $1)"
+           _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~$LD 
-r -o $output$reload_objs'
            ;;
          *)
            _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib 
$libobjs $deplibs $compiler_flags'
@@ -6555,6 +6558,8 @@
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6698,6 +6703,8 @@
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6843,6 +6850,8 @@
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 
 ## CAVEAT EMPTOR:
 ## There is no encapsulation within the following macros, do not change
-----------------< End patch > -----------------------------------------


-- 
Tim Rice                                Multitalents    (707) 887-1469
address@hidden






reply via email to

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