+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,
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
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
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: \$!&*\`'()"],