mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-03-19 15:50:25 +08:00
* tests/build-relink.test: new; check shlibpath_overrides_runpath
* tests/Makefile.am (TESTS): add build-relink.test; remove hardcode.test duplicates * doc/libtool.texi: document it
This commit is contained in:
parent
e7762d50c6
commit
592c5783b7
@ -1,5 +1,10 @@
|
||||
1999-03-07 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* tests/build-relink.test: new; check shlibpath_overrides_runpath
|
||||
* tests/Makefile.am (TESTS): add build-relink.test; remove
|
||||
hardcode.test duplicates
|
||||
* doc/libtool.texi: document it
|
||||
|
||||
* ltmain.in (relink_command): do not prepend cd `pwd` to it, the
|
||||
scripts already enters the correct directory, and expanding the
|
||||
pathname would prevent the build tree from moving
|
||||
|
@ -2948,6 +2948,12 @@ static and shared libraries, @file{cdemo-static.test} builds only static
|
||||
libraries (@samp{--disable-shared}), and @file{cdemo-shared.test} builds
|
||||
only shared libraries (@samp{--disable-static}).
|
||||
|
||||
@item build-relink.test
|
||||
@pindex build-relink.test
|
||||
Checks whether variable @var{shlibpath_overrides_runpath} is properly
|
||||
set. If the test fails and @var{VERBOSE} is set, it will indicate what
|
||||
the variable should have been set to.
|
||||
|
||||
@item hardcode.test
|
||||
@pindex hardcode.test
|
||||
On all systems with shared libraries, the location of the library can be
|
||||
|
@ -3,17 +3,19 @@
|
||||
AUTOMAKE_OPTIONS = gnits
|
||||
|
||||
TESTS = demo-static.test demo-make.test demo-exec.test \
|
||||
demo-inst.test demo-unst.test hardcode.test \
|
||||
demo-inst.test demo-unst.test \
|
||||
mdemo-static.test mdemo-make.test mdemo-exec.test \
|
||||
mdemo-inst.test mdemo-unst.test \
|
||||
cdemo-static.test cdemo-make.test cdemo-exec.test \
|
||||
demo-conf.test demo-make.test demo-exec.test \
|
||||
demo-inst.test demo-unst.test hardcode.test \
|
||||
demo-inst.test demo-unst.test \
|
||||
mdemo-conf.test mdemo-make.test mdemo-exec.test \
|
||||
mdemo-inst.test mdemo-unst.test \
|
||||
cdemo-conf.test cdemo-make.test cdemo-exec.test \
|
||||
demo-shared.test demo-make.test demo-exec.test \
|
||||
demo-inst.test demo-unst.test hardcode.test \
|
||||
demo-inst.test \
|
||||
build-relink.test hardcode.test \
|
||||
demo-unst.test \
|
||||
mdemo-shared.test mdemo-make.test mdemo-exec.test \
|
||||
mdemo-inst.test mdemo-unst.test \
|
||||
cdemo-shared.test cdemo-make.test cdemo-exec.test \
|
||||
|
94
tests/build-relink.test
Executable file
94
tests/build-relink.test
Executable file
@ -0,0 +1,94 @@
|
||||
#! /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=; 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; 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 $objdir/hellT || exit 1
|
||||
cp $objdir/hell $objdir/hellT || 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/hellT
|
||||
fi
|
||||
|
||||
exit $status
|
Loading…
x
Reference in New Issue
Block a user