]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/config/ltmain.m4sh (func_lalib_unsafe_p): redirect
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 5 Mar 2008 20:14:43 +0000 (20:14 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 5 Mar 2008 20:14:43 +0000 (20:14 +0000)
and restore from stdin, not stdout.
* tests/execute-mode.at (execute mode): Adjust test to catch
this.
Report by Roberto Bagnara.

ChangeLog
libltdl/config/ltmain.m4sh
tests/execute-mode.at

index ee4ff3ddeb5f661c653eead25882503c18363f78..082dea531938f3dc380d6350e39b0325fbba33b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-03-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * libltdl/config/ltmain.m4sh (func_lalib_unsafe_p): redirect
+       and restore from stdin, not stdout.
+       * tests/execute-mode.at (execute mode): Adjust test to catch
+       this.
+       Report by Roberto Bagnara.
+
 2008-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Fix libltdl to not skip dlopen on systems with several loaders,
index 0d0d8a6f5b3ca4f848d5b0110b12060a4bd4fb87..13b221d0872a8fe6f4b0cd195f4e83a1bc030830 100644 (file)
@@ -648,7 +648,7 @@ func_lalib_p ()
 func_lalib_unsafe_p ()
 {
     lalib_p=no
-    if test -r "$1" && exec 5<&1 <"$1"; then
+    if test -r "$1" && exec 5<&0 <"$1"; then
        for lalib_p_l in 1 2 3 4
        do
            read lalib_p_line
@@ -656,7 +656,7 @@ func_lalib_unsafe_p ()
                \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
            esac
        done
-       exec 1<&5 5<&-
+       exec 0<&5 5<&-
     fi
     test "$lalib_p" = yes
 }
index 257e9d3c8ddab15804386dc8f94039ebab20bcbf..349c829f790e16163485c0585a10216876e7160e 100644 (file)
@@ -51,6 +51,30 @@ fi
 AT_DATA([lt-real],
 [[#! /bin/sh
 echo "$@"
+cat
+]])
+
+AT_DATA([libfakelib.la],
+[[# libfakelib.la - a libtool library file
+# Generated by ltmain.sh (GNU libtool 1.2605 2008/03/04 22:31:32) 2.3a
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+dlname=''
+library_names=''
+old_library='libfakelib.a'
+inherited_linker_flags=''
+dependency_libs=''
+weak_library_names=''
+current=
+age=
+revision=
+installed=no
+shouldnotlink=yes
+dlopen=''
+dlpreopen=''
+libdir=''
 ]])
 
 mkdir sub
@@ -61,20 +85,26 @@ AT_CHECK([$LIBTOOL --mode=execute ./foo])
 AT_CHECK([$LIBTOOL --mode=execute sub/foo])
 AT_CHECK([$LIBTOOL --mode=execute ./foo foo], [], [foo
 ])
-AT_CHECK([$LIBTOOL --mode=execute ./lt-wrapper foo], [], [foo
+AT_CHECK([$LIBTOOL --mode=execute ./lt-wrapper foo </dev/null], [], [foo
 ])
 AT_CHECK([cd sub && $LIBTOOL --mode=execute ./foo ../foo], [], [../foo
 ])
 # suppose that ./foo is gdb, and lt-wrapper is the wrapper script.
-AT_CHECK([$LIBTOOL --mode=execute ./foo lt-wrapper bar baz], [],
+AT_CHECK([$LIBTOOL --mode=execute ./foo lt-wrapper bar baz </dev/null], [],
         [./lt-real bar baz
 ])
 
+# check that stdin works even with -dlopen.
+AT_CHECK([echo bar | $LIBTOOL --mode=execute -dlopen libfakelib.la ./lt-wrapper foo],
+        [], [foo
+bar
+])
+
 # Check that a missing real program causes an error.
 # The error message and code are likely to be 126,
 # "No such file or directory" but system-dependent.
 mv -f lt-real lt-backup
-AT_CHECK([$LIBTOOL --mode=execute ./lt-wrapper foo || exit 1],
+AT_CHECK([$LIBTOOL --mode=execute ./lt-wrapper foo </dev/null || exit 1],
         [1], [ignore], [ignore])
 mv -f lt-backup lt-real
 
@@ -82,7 +112,7 @@ mv -f lt-backup lt-real
 AT_CHECK([$LIBTOOL --mode=execute ./foo "arg  with special chars: \$!&*\`'()"],
         [], [arg  with special chars: $!&*`'()
 ])
-AT_CHECK([$LIBTOOL --mode=execute ./lt-wrapper "arg  with special chars: \$!&*\`'()"],
+AT_CHECK([$LIBTOOL --mode=execute ./lt-wrapper "arg  with special chars: \$!&*\`'()" </dev/null],
         [], [arg  with special chars: $!&*`'()
 ])
 AT_CHECK([$LIBTOOL --mode=execute ./foo lt-wrapper "arg  with special chars: \$!&*\`'()"],