mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-02-05 14:40:42 +08:00
within a subshell and redirect stderr to stdout, so that dynamic linker errors are only printed in verbose mode
95 lines
2.3 KiB
Bash
Executable File
95 lines
2.3 KiB
Bash
Executable File
#! /bin/sh
|
|
# build-relink.test - check to see whether shlibpath overrides runpath
|
|
|
|
# Test script header.
|
|
need_prefix=yes
|
|
if test -z "$srcdir"; then
|
|
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
|
|
test "$srcdir" = "$0" && srcdir=.
|
|
test "${VERBOSE+set}" != "set" && VERBOSE=yes
|
|
fi
|
|
. $srcdir/defs || exit 1
|
|
|
|
# Check that things are built.
|
|
if test -f ../demo/hell; then :
|
|
else
|
|
echo "You must run demo-inst.test before $0" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Change to our build directory.
|
|
cd ../demo || exit 1
|
|
|
|
# Unfortunately, we need access to libtool internals for this test.
|
|
objdir=NONE
|
|
eval `egrep -e '^objdir=' ./libtool 2>/dev/null`
|
|
if test "$objdir" = NONE; then
|
|
echo "objdir not set in ../demo/libtool" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
shlibpath_overrides_runpath=NONE
|
|
eval `egrep -e '^shlibpath_overrides_runpath=' ./libtool 2>/dev/null`
|
|
if test "$shlibpath_overrides_runpath" = NONE; then
|
|
echo "shlibpath_overrides_runpath not set in ../demo/libtool" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Check to make sure we have a dynamic library.
|
|
library_names=NONE
|
|
eval `egrep -e '^library_names=' ./libhello.la 2>/dev/null`
|
|
|
|
if test "$library_names" = NONE; then
|
|
echo "library_names not set in ../demo/libhello.la" 1>&2
|
|
exit 1
|
|
elif test -z "$library_names"; then
|
|
echo "= Exiting: ../demo/libhello.la is not a shared library"
|
|
exit 0
|
|
fi
|
|
|
|
./hell # so that it links on-demand if needed
|
|
|
|
echo "removing libhello.la from ../demo"
|
|
rm -f libhello.la $objdir/libhello.*
|
|
|
|
echo "running ../demo/hell"
|
|
if ./hell; then
|
|
:
|
|
else
|
|
echo "= Exiting: ../demo/hell does not run, maybe libhello was not installed"
|
|
exit 1
|
|
fi
|
|
|
|
echo "linking a broken ../demo/libhello.la"
|
|
if $make libhello.la libhello_la_OBJECTS=hello.lo; then
|
|
:
|
|
else
|
|
echo "= Exiting: cannot link broken libhello.la"
|
|
exit 1
|
|
fi
|
|
rm -f libhello.la
|
|
|
|
echo "running ../demo/hell with broken libhello.la"
|
|
if (./hell) 2>&1; then
|
|
echo "= Exiting: ../demo/hell runs even though libhello.la is incomplete"
|
|
echo "shlibpath_overrides_runpath should be set to no"
|
|
exit 1
|
|
else
|
|
echo "Failed, as expected"
|
|
fi
|
|
|
|
if test "$shlibpath_overrides_runpath" != yes; then
|
|
rm -f $objdir/lt-hell || exit 1
|
|
cp $objdir/hell $objdir/lt-hell || exit 1
|
|
echo "running ../demo/hell with installed libhello.la"
|
|
if ./hell; then
|
|
echo "Worked, as expected"
|
|
else
|
|
echo "shlibpath_overrides_runpath should be set to yes"
|
|
status=1
|
|
fi
|
|
rm -f $objdir/lt-hell
|
|
fi
|
|
|
|
exit $status
|