mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-02-17 15:10:02 +08:00
* 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.
This commit is contained in:
parent
3280cb4b7c
commit
54c180945e
@ -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,
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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: \$!&*\`'()"],
|
||||
|
Loading…
Reference in New Issue
Block a user