libtool-patches
[Top][All Lists]
Advanced

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

[1.5.1 PATCHES] Things I would like to merge from HEAD to branch-1-5 for


From: Scott James Remnant
Subject: [1.5.1 PATCHES] Things I would like to merge from HEAD to branch-1-5 for a libtool 1.5.1 release
Date: Wed, 21 Jan 2004 22:28:34 +0000

All of these are basically "catching up" with the Debian package which
was kept in sync with branch-1-5 and got some things backported from
HEAD.  Basically this is the list of patches I submitted to HEAD after
fixing them in Debian for something we needed fixed.

The complete list of attached patches follows, note that the first two
are actually new ones so should gain extra scrutiny.  For various bad
reasons, I didn't manage to include the NEWS file in the diff, so the
suggested initial value of that for 1.5.1 is attached as news.txt.

All except the first two are already on CVS HEAD, is it okay to commit
to branch-1-5 too?


n1-libtoolize-echo-cd.patch
2004-01-??  Scott James Remnant  <address@hidden>

        * libtoolize.in: Fix libtoolize so the cd command run when
        AC_CONFIG_AUX_DIR is used is shown when --dry-run is given.
        (Debian Bug #153699)

n2-ltmain-exists.patch
2004-01-??  Scott James Remnant  <address@hidden>

        * libtool.m4 (AC_LIBTOOL_CONFIG): Don't attempt to
        make ltmain.sh unless there's an ltmain.in to do it with.


01-precious-files.patch
2004-01-11  Scott James Remnant  <address@hidden>
 
        * ltmain.in: new -precious-files-regex link mode option
        to prevent removal of matching files from the temporary
        output directory.
        (Debian Bug #221420)
        * doc/libtool.texi: document the new option.
        * NEWS: announce the new option.

02-mkdir-remove-p.patch
2004-01-03  Stefan Nordhausen  <address@hidden>
        Scott James Remnant  <address@hidden>
 
        * ltmain.in: Don't use the mkdir -p option when creating a
        temporary output directory so a symlink attack can't be used to
        arbitrarily chmod other directories on the system if libtool
        gets run as root.

03-tagged-config-args.patch
2003-11-15  Scott James Remnant  <address@hidden>
 
        * ltmain.in: In compile mode, delay parsing of -shared, -static,
        -prefer-pic and -prefer-non-pic until after tagged configuration
        has been read.  In link mode, read tagged configuration before
        parsing any arguments.  These arguments will now work when using
        a non-C compiler.

04-pthread-deplibs.patch
2003-11-10  Scott James Remnant  <address@hidden>
 
        * ltmain.in: Add -pthread and similar to $deplibs ($compile_deplibs
        and $finalize_deplibs for programs) when found on the command line
        or in a .la file's dependency_libs (but don't place them there) so
        they are honoured when linking both programs and libraries.

05-ld-so-conf.patch
2003-11-10  Scott James Remnant  <address@hidden>
 
        * m4/libtool.m4  (AC_LIBTOOL_SYS_DYNAMIC_LINKER) [linux]: Include
        directories found in /etc/ld.so.conf in sys_lib_dlsearch_path_spec.

06-hppa-test-non-pic.patch
2003-11-06  Scott James Remnant  <address@hidden>
 
        * tests/demo-nopic.test: Skip test on hppa, which don't like
        non-PIC shared libraries.

07-libdir-order.patch
2003-11-01  Scott James Remnant  <address@hidden>
                                                                                
        * ltmain.in: When relinking, place the -L parameter containing
        the installation prefix directory after the intended destination,
        so we don't accidentally link against an older installed library.

08-readonly-symbol.patch
2003-11-06  Owen Taylor  <address@hidden>
                                                                                
        * m4/libtool.m4 (AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE): Recognise the
        'R' symbol type so read-only symbols can be exported when combining
        GCC and Solaris LD.

09-export-symbol.patch
2003-11-06  James Henstridge  <address@hidden>,
        Scott James Remnant  <address@hidden>
 
        * m4/libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [Linux]: Fix the
        -export-symbols and -export-symbols-regex options.

10-preserve-args.patch
2003-10-19  Kevin P. Fleming  <address@hidden>
        Charles Wilson <address@hidden>
                                                                                
        * ltmain.in: include --tag options, if specified, in the
        relink_command in uninstalled .la files.  Also, preserve --silent,
        --debug options when libtool re-execs itself.
        * NEWS: Updated.

11-lt-dlerror-null.patch
2003-10-08  Scott James Remnant  <address@hidden>
 
        * libltdl/ltdl.c (lt_dlerror): change return value when
        no error has occured to NULL to match documentation.
        (Debian Bug #157229)

12-no-suppress.patch
2003-10-07  Gary V. Vaughan  <address@hidden>
                                                                                
        * ltmain.in: Don't suppress output of PIC mode compile if
        -no-suppress option is given.
        * doc/libtool.texi (Invoking libtool): Document it.
        * NEWS: Updated.

13-dead-code-removal.patch
2003-10-07  Scott James Remnant  <address@hidden>
 
        * m4/libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Remove dead code
        for platforms that have been using pass_all for some time now.

14-quote-strip.patch
2003-09-13  Scott James Remnant  <address@hidden>
 
        * libtool.m4: allow STRIP to contain spaces and additional
        arguments.  (Debian Bug #183055)

15-ifs-newline.patch
2003-09-13  Scott James Remnant  <address@hidden>
        * ltmain.in: include newline in "sensible default" for IFS.
        (Debian Bug #98492 and #95447)

Scott
-- 
Have you ever, ever felt like this?
Had strange things happen?  Are you going round the twist?

diff -rup libtool-1.5/libtoolize.in libtool-1.5.1/libtoolize.in
--- libtool-1.5/libtoolize.in   2003-02-23 16:15:49.000000000 +0000
+++ libtool-1.5.1/libtoolize.in 2003-11-02 23:19:58.000000000 +0000
@@ -330,6 +330,7 @@ fi
 # Change to the auxiliary directory.
 if test "$auxdir" != .; then
   test -z "$automake" && echo "Putting files in AC_CONFIG_AUX_DIR, \`$auxdir'."
+  test "x$dry_run" = x"yes" && echo "cd $auxdir"
   cd $auxdir || exit 1
 fi
 
diff -rup libtool-1.5/libtool.m4 libtool-1.5.1/libtool.m4
--- libtool-1.5/libtool.m4      2004-01-21 20:51:23.000000000 +0000
+++ libtool-1.5.1/libtool.m4    2004-01-09 14:55:35.000000000 +0000
@@ -4332,7 +4305,10 @@ else
   # If there is no Makefile yet, we rely on a make rule to execute
   # `config.status --recheck' to rerun these tests and create the
   # libtool script then.
-  test -f Makefile && make "$ltmain"
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
 fi
 ])# AC_LIBTOOL_CONFIG
 
diff -rup libtool-1.5/doc/libtool.texi libtool-1.5.1/doc/libtool.texi
--- libtool-1.5/doc/libtool.texi        2003-08-05 17:29:48.000000000 +0100
+++ libtool-1.5.1/doc/libtool.texi      2004-01-11 01:32:38.000000000 +0000
@@ -1270,6 +1276,11 @@ libraries (@pxref{Inter-library dependen
 @item -o @var{output-file}
 Create @var{output-file} from the specified objects and libraries.
 
address@hidden -precious-files-regex @var{regex}
+Prevents removal of files from the temporary output directory whose
+names match this regular expression.  You might specify @samp{\.bbg?$}
+to keep those files created with @code{gcc -ftest-coverage} for example.
+
 @item -release @var{release}
 Specify that the library was generated by release @var{release} of your
 package, so that users can easily tell which versions are newer than
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -867,6 +890,7 @@ EOF
     no_install=no
     objs=
     non_pic_objects=
+    precious_files_regex=
     prefer_static_libs=no
     preload=no
     prev=
@@ -990,6 +1054,11 @@ EOF
          prev=
          continue
          ;;
+       precious_regex)
+         precious_files_regex="$arg"
+         prev=
+         continue
+         ;;
        release)
          release="-$arg"
          prev=
@@ -1351,6 +1425,11 @@ EOF
 
       -o) prev=output ;;
 
+      -precious-files-regex)
+       prev=precious_regex
+       continue
+       ;;
+
       -release)
        prev=release
        continue
@@ -3048,6 +3095,10 @@ EOF
            *.$objext)
               ;;
            $output_objdir/$outputname | $output_objdir/$libname.* | 
$output_objdir/${libname}${release}.*)
+              if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+              then
+                continue
+              fi
               removelist="$removelist $p"
               ;;
            *) ;;
@@ -6245,6 +6296,8 @@ The following components of LINK-COMMAND
   -no-undefined     declare that a library does not refer to external symbols
   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
   -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
   -release RELEASE  specify package release information
   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -5601,7 +5652,7 @@ relink_command=\"$relink_command\""
              tmpdir="/tmp"
              test -n "$TMPDIR" && tmpdir="$TMPDIR"
              tmpdir="$tmpdir/libtool-$$"
-             if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
+             if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then :
              else
                $echo "$modename: error: cannot create temporary directory 
\`$tmpdir'" 1>&2
                continue
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -373,6 +373,7 @@ if test -z "$show_help"; then
     suppress_output=
     arg_mode=normal
     libobj=
+    later=
 
     for arg
     do
@@ -400,19 +407,9 @@ if test -z "$show_help"; then
          continue
          ;;
 
-       -static)
-         build_old_libs=yes
-         continue
-         ;;
-
-       -prefer-pic)
-         pic_mode=yes
+       -static | -prefer-pic | -prefer-non-pic)
+         later="$later $arg"
          continue
          ;;
 
-       -prefer-non-pic)
-         pic_mode=no
-         continue
-         ;;
-
        -Xcompiler)
@@ -556,6 +558,25 @@ if test -z "$show_help"; then
       esac
     fi
 
+    for arg in $later; do
+      case $arg in
+      -static)
+       build_old_libs=yes
+       continue
+       ;;
+
+      -prefer-pic)
+       pic_mode=yes
+       continue
+       ;;
+
+      -prefer-non-pic)
+       pic_mode=no
+       continue
+       ;;
+      esac
+    done
+
     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
     if test "X$xdir" = "X$obj"; then
@@ -835,7 +858,7 @@ EOF
       ;;
     esac
     libtool_args="$nonopt"
-    base_compile="$nonopt"
+    base_compile="$nonopt $@"
     compile_command="$nonopt"
     finalize_command="$nonopt"
 
@@ -880,6 +904,47 @@ EOF
     vinfo=
     vinfo_number=no
 
+    # Infer tagged configuration to use if any are available and
+    # if one wasn't chosen via the "--tag" command line option.
+    # Only attempt this if the compiler in the base link
+    # command doesn't match the default compiler.
+    if test -n "$available_tags" && test -z "$tagname"; then
+      case $base_compile in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+       for z in $available_tags; do
+         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; 
then
+           # Evaluate the configuration.
+           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# 
### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+           case $base_compile in
+           "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+             # The compiler in $compile_command matches
+             # the one in the tagged configuration.
+             # Assume this is the tagged configuration we want.
+             tagname=$z
+             break
+             ;;
+           esac
+         fi
+       done
+       # If $tagname still isn't set, then no tagged configuration
+       # was found and let the user know that the "--tag" command
+       # line option must be used.
+       if test -z "$tagname"; then
+         $echo "$modename: unable to infer tagged configuration"
+         $echo "$modename: specify a tag with \`--tag'" 1>&2
+         exit 1
+#       else
+#         $echo "$modename: using $tagname tagged configuration"
+       fi
+       ;;
+      esac
+    fi
+
     # We need to know -static, to get the right output filenames.
     for arg
     do
@@ -911,7 +976,6 @@ EOF
     # Go through the arguments, transforming them on the way.
     while test "$#" -gt 0; do
       arg="$1"
-      base_compile="$base_compile $arg"
       shift
       case $arg in
       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
@@ -1619,47 +1698,6 @@ EOF
       exit 1
     fi
 
-    # Infer tagged configuration to use if any are available and
-    # if one wasn't chosen via the "--tag" command line option.
-    # Only attempt this if the compiler in the base link
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-       for z in $available_tags; do
-         if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; 
then
-           # Evaluate the configuration.
-           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# 
### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-           case $base_compile in
-           "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-             # The compiler in $compile_command matches
-             # the one in the tagged configuration.
-             # Assume this is the tagged configuration we want.
-             tagname=$z
-             break
-             ;;
-           esac
-         fi
-       done
-       # If $tagname still isn't set, then no tagged configuration
-       # was found and let the user know that the "--tag" command
-       # line option must be used.
-       if test -z "$tagname"; then
-         $echo "$modename: unable to infer tagged configuration"
-         $echo "$modename: specify a tag with \`--tag'" 1>&2
-         exit 1
-#       else
-#         $echo "$modename: using $tagname tagged configuration"
-       fi
-       ;;
-      esac
-    fi
-
     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; 
then
       eval arg=\"$export_dynamic_flag_spec\"
       compile_command="$compile_command $arg"
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -1287,6 +1356,11 @@ EOF
        continue
        ;;
 
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+       deplibs="$deplibs $arg"
+       continue
+       ;;
+
       -module)
        module=yes
        continue
@@ -1802,6 +1840,15 @@ EOF
        lib=
        found=no
        case $deplib in
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           deplibs="$deplib $deplibs"
+         fi
+         continue
+         ;;
        -l*)
          if test "$linkmode" != lib && test "$linkmode" != prog; then
            $echo "$modename: warning: \`-l' is ignored for archives/objects" 
1>&2
diff -rup libtool-1.5/libtool.m4 libtool-1.5.1/libtool.m4
--- libtool-1.5/libtool.m4      2004-01-21 20:51:23.000000000 +0000
+++ libtool-1.5.1/libtool.m4    2004-01-09 14:55:35.000000000 +0000
@@ -1448,6 +1449,12 @@ linux*)
   # before this can be enabled.
   hardcode_into_libs=yes
 
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' 
/etc/ld.so.conf`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $ld_extra"
+  fi
+
   # We used to test for /lib/ld.so.1 and disable shared libraries on
   # powerpc, because MkLinux only supported shared libraries with the
   # GNU dynamic linker.  Since this was broken with cross compilers,
diff -rup libtool-1.5/tests/demo-nopic.test libtool-1.5.1/tests/demo-nopic.test
--- libtool-1.5/tests/demo-nopic.test   2003-06-03 16:43:41.000000000 +0100
+++ libtool-1.5.1/tests/demo-nopic.test 2003-09-26 23:24:41.000000000 +0100
@@ -10,6 +10,14 @@ if test -z "$srcdir"; then
 fi
 . $srcdir/defs || exit 1
 
+# This doesn't work on hppa
+HOST=`../config.guess`
+case "$HOST" in
+hppa*)
+        echo "Not running on hppa, it doesn't like non-PIC shared libs" 2>&1
+        exit 77
+esac
+
 # Maybe we have a VPATH build, in which case, create a new subdir.
 test -d ../demo || mkdir ../demo
 
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -2358,7 +2405,7 @@ EOF
                if test -n "$inst_prefix_dir"; then
                  case "$libdir" in
                    [\\/]*)
-                     add_dir="-L$inst_prefix_dir$libdir $add_dir"
+                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
                      ;;
                  esac
                fi
@@ -2430,7 +2477,7 @@ EOF
              if test -n "$inst_prefix_dir"; then
                case "$libdir" in
                  [\\/]*)
-                   add_dir="-L$inst_prefix_dir$libdir $add_dir"
+                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
                    ;;
                esac
              fi
diff -rup libtool-1.5/libtool.m4 libtool-1.5.1/libtool.m4
--- libtool-1.5/libtool.m4      2004-01-21 20:51:23.000000000 +0000
+++ libtool-1.5.1/libtool.m4    2004-01-09 14:55:35.000000000 +0000
@@ -4405,7 +4381,7 @@ osf*)
   symcode='[[BCDEGQRST]]'
   ;;
 solaris* | sysv5*)
-  symcode='[[BDT]]'
+  symcode='[[BDRT]]'
   ;;
 sysv4)
   symcode='[[DFNSTU]]'
@@ -4423,7 +4399,7 @@ esac
 # If we're using GNU nm, then use its standard symbol codes.
 case `$NM -V 2>&1` in
 *GNU* | *'with BFD'*)
-  symcode='[[ABCDGISTW]]' ;;
+  symcode='[[ABCDGIRSTW]]' ;;
 esac
 
 # Try without a prefix undercore, then with it.
diff -rup libtool-1.5/libtool.m4 libtool-1.5.1/libtool.m4
--- libtool-1.5/libtool.m4      2004-01-21 20:51:23.000000000 +0000
+++ libtool-1.5.1/libtool.m4    2004-01-09 14:55:35.000000000 +0000
@@ -5192,6 +5168,31 @@ EOF
       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
+  linux*)
+    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags 
${wl}-soname $wl$soname -o $lib'
+       _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"
+      supports_anon_versioning=no
+      case `$LD -v 2>/dev/null` in
+        *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+        *\ 2.11.*) ;; # other 2.11 versions
+        *) supports_anon_versioning=yes ;;
+      esac
+      if test $supports_anon_versioning = yes; then
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > 
$output_objdir/$libname.ver~
+cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+$echo "local: *; };" >> $output_objdir/$libname.ver~
+        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname 
${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+      else
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"
+      fi
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
     *)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs 
$compiler_flags ${wl}-soname $wl$soname -o $lib'
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -176,6 +177,7 @@ do
       ;;
     tag)
       tagname="$arg"
+      preserve_args="${preserve_args}=$arg"
 
       # Check whether tagname contains only valid characters
       case $tagname in
@@ -238,6 +240,7 @@ do
   --debug)
     $echo "$progname: enabling shell trace mode"
     set -x
+    preserve_args="$preserve_args $arg"
     ;;
 
   --dry-run | -n)
@@ -268,6 +271,7 @@ do
 
   --quiet | --silent)
     show=:
+    preserve_args="$preserve_args $arg"
     ;;
 
   --tag) prevopt="--tag" prev=tag ;;
@@ -275,6 +279,7 @@ do
     set tag "$optarg" ${1+"$@"}
     shift
     prev=tag
+    preserve_args="$preserve_args --tag"
     ;;
 
   -dlopen)
@@ -5059,7 +5110,7 @@ fi\
        fi
       done
       # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args 
@inst_prefix_dir@)"
+      relink_command="(cd `pwd`; $SHELL $0 $preserve_args --mode=relink 
$libtool_args @inst_prefix_dir@)"
       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
         relink_command=
@@ -5684,7 +5735,7 @@ relink_command=\"$relink_command\""
     if test -n "$current_libdirs"; then
       # Maybe just do a dry run.
       test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $0 --finish$current_libdirs'
+      exec_cmd='$SHELL $0 $preserve_args --finish$current_libdirs'
     else
       exit 0
     fi
diff -rup libtool-1.5/libltdl/ltdl.c libtool-1.5.1/libltdl/ltdl.c
--- libtool-1.5/libltdl/ltdl.c  2003-09-29 12:00:57.000000000 +0100
+++ libtool-1.5.1/libltdl/ltdl.c        2003-09-30 23:46:04.000000000 +0100
@@ -3926,7 +3926,7 @@ lt_dlerror ()
   LT_DLMUTEX_GETERROR (error);
   LT_DLMUTEX_SETERROR (0);
 
-  return error ? error : LT_DLSTRERROR (UNKNOWN);
+  return error ? error : NULL;
 }
 
 static int
diff -rup libtool-1.5/doc/libtool.texi libtool-1.5.1/doc/libtool.texi
--- libtool-1.5/doc/libtool.texi        2003-08-05 17:29:48.000000000 +0100
+++ libtool-1.5.1/doc/libtool.texi      2004-01-11 01:32:38.000000000 +0000
@@ -1153,6 +1153,12 @@ linker flags with @samp{-Wl,@var{flag}} 
 You can also pass compile specific flags using @samp{-Wc,@var{flag}}
 and @samp{-Xcompiler @var{flag}}.
 
+If both PIC and non-PIC objects are being built, libtool will normally
+supress the compiler output for the PIC object compilation to save
+showing very similar, if not identical duplicate output for each
+object.  If the @samp{-no-suppress} option is given in compile mode,
+libtool will show the compiler output for both objects.
+
 If the @samp{-static} option is given, then a @samp{.o} file is built,
 even if libtool was configured with @samp{--disable-static}.
 
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -374,6 +374,7 @@ if test -z "$show_help"; then
     # Get the compilation command and the source file.
     base_compile=
     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
     suppress_output=
     arg_mode=normal
     libobj=
@@ -407,4 +407,9 @@ if test -z "$show_help"; then
          continue
          ;;
 
+       -no-suppress)
+         suppress_opt=no
+         continue
+         ;;
+
        -Xcompiler)
@@ -722,7 +743,9 @@ pic_object='$objdir/$objname'
 EOF
 
       # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
+      if test "$suppress_opt" = yes; then
+        suppress_output=' >/dev/null 2>&1'
+      fi
     else
       # No PIC object so indicate it doesn't exist in the libtool
       # object file.
diff -rup libtool-1.5/libtool.m4 libtool-1.5.1/libtool.m4
--- libtool-1.5/libtool.m4      2004-01-21 20:51:23.000000000 +0000
+++ libtool-1.5.1/libtool.m4    2004-01-09 14:55:35.000000000 +0000
@@ -2131,17 +2138,6 @@ mingw* | pw32*)
   ;;
 
 darwin* | rhapsody*)
-  # this will be overwritten by pass_all, but leave it in just in case
-  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared 
library'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  case "$host_os" in
-  rhapsody* | darwin1.[[012]])
-    
lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
-    ;;
-  *) # Darwin 1.3 on
-    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
-    ;;
-  esac
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -2184,23 +2180,12 @@ hpux10.20* | hpux11*)
   ;;
 
 irix5* | irix6* | nonstopux*)
-  case $host_os in
-  irix5* | nonstopux*)
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - 
version 1"
-    ;;
-  *)
-    case $LD in
-    *-32|*"-32 ") libmagic=32-bit;;
-    *-n32|*"-n32 ") libmagic=N32;;
-    *-64|*"-64 ") libmagic=64-bit;;
-    *) libmagic=never-match;;
-    esac
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] 
dynamic lib MIPS - version 1"
-    ;;
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
   esac
-  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -2247,9 +2223,6 @@ openbsd*)
   ;;
 
 osf3* | osf4* | osf5*)
-  # this will be overridden with pass_all, but let us keep it just in case
-  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
-  lt_cv_file_magic_test_file=/shlib/libc.so
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -2259,7 +2232,6 @@ sco3.2v5*)
 
 solaris*)
   lt_cv_deplibs_check_method=pass_all
-  lt_cv_file_magic_test_file=/lib/libc.so
   ;;
 
 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
diff -rup libtool-1.5/libtool.m4 libtool-1.5.1/libtool.m4
--- libtool-1.5/libtool.m4      2004-01-21 20:51:23.000000000 +0000
+++ libtool-1.5.1/libtool.m4    2004-01-09 14:55:35.000000000 +0000
@@ -3876,7 +3848,8 @@ if test -f "$ltmain"; then
   # Now quote all the things that may contain metacharacters while being
   # careful not to overquote the AC_SUBSTed values.  We take copies of the
   # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED 
SHELL \
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
     libname_spec library_names_spec soname_spec extract_expsyms_cmds \
     old_striplib striplib file_magic_cmd finish_cmds finish_eval \
     deplibs_check_method reload_flag reload_cmds need_locks \
@@ -4057,7 +4030,7 @@ LN_S=$lt_LN_S
 NM=$lt_NM
 
 # A symbol stripping program
-STRIP=$STRIP
+STRIP=$lt_STRIP
 
 # Used to examine libraries when file_magic_cmd begins "file"
 MAGIC_CMD=$MAGIC_CMD
diff -rup libtool-1.5/ltmain.in libtool-1.5.1/ltmain.in
--- libtool-1.5/ltmain.in       2003-07-31 21:46:40.000000000 +0100
+++ libtool-1.5.1/ltmain.in     2004-01-11 01:34:12.000000000 +0000
@@ -94,7 +94,8 @@ if test "${LANG+set}" = set; then
 fi
 
 # Make sure IFS has a sensible default
-: ${IFS="      "}
+: ${IFS="      
+"}
 
 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
   $echo "$modename: not configured to build any kind of library" 1>&2
New in 1.5.1: 2000-01-??; CVS version 1.5.0a, Libtool team:
* lt_dlrealloc is an official part of the libltdl API.
* --tag, --silent and --debug options are preserved and reused when libtool
  calls itself for relinking etc.
* `-pthread' and similar options are honoured when linking shared libraries.
* -no-suppress in compile mode shows compiler output for both PIC and non-PIC
  object compilation.
* New link mode option `-precious-files-regex' to prevent accidental removal
  of files you want to keep, such as test coverage data, from the temporary
  output directory.
* Directories specified in /etc/ld.so.conf are no longer hardcoded on Linux.
* Recognises the 'R' symbol type on Solaris so read-only symbols can be
  exported.
* Bug fixes.

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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