mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-12-27 07:09:26 +08:00
e9b2b3f264
for a different host, it can't be shipped. That also means that defs will always be generated in the build tree, so each test case can have the srcdir discovery factored away into tests/defs.in: * Makefile.am (EXTRA_DIST): s/defs/defs.in/g * tests/Makefile.am (defs): New rule to remake defs from the parent directory's Makefile. * tests/cdemo-conf.test, tests/cdemo-exec.test, tests/cdemo-make.test, tests/cdemo-shared.test, tests/cdemo-static.test, tests/demo-conf.test, tests/demo-deplibs.test, tests/demo-exec.test, tests/demo-hardcode.test, tests/demo-inst.test, tests/demo-make.test, tests/demo-nofast.test, tests/demo-noinst-link.test, tests/demo-nopic.test, tests/demo-pic.test, tests/demo-relink.test, tests/demo-shared.test, tests/demo-static.test, tests/demo-unst.test, tests/depdemo-conf.test, tests/depdemo-exec.test, tests/depdemo-inst.test, tests/depdemo-make.test, tests/depdemo-nofast.test, tests/depdemo-relink.test, tests/depdemo-shared.test, tests/depdemo-static.test, tests/depdemo-unst.test, tests/f77demo-conf.test, tests/f77demo-exec.test, tests/f77demo-make.test, tests/f77demo-shared.test, tests/f77demo-static.test, tests/link-2.test, tests/link.test, tests/mdemo-conf.test, tests/mdemo-dryrun.test, tests/mdemo-exec.test, tests/mdemo-inst.test, tests/mdemo-make.test, tests/mdemo-shared.test, tests/mdemo-static.test, tests/mdemo-unst.test, tests/mdemo2-conf.test, tests/mdemo2-exec.test, tests/mdemo2-make.test, tests/nomode.test, tests/pdemo-conf.test, tests/pdemo-exec.test, tests/pdemo-inst.test, tests/pdemo-make.test, tests/quote.test, tests/sh.test, tests/suffix.test, tests/tagdemo-conf.test, tests/tagdemo-exec.test, tests/tagdemo-make.test, tests/tagdemo-shared.test, tests/tagdemo-static.test, tests/tagtrace.test: Removed srcdir discovery boilerplate... * tests/defs.in: ...and put it here.
111 lines
3.7 KiB
Bash
Executable File
111 lines
3.7 KiB
Bash
Executable File
#! /bin/sh
|
|
# depdemo-relink.test - check to see whether shlibpath overrides runpath
|
|
|
|
# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
|
# This is free software; see the source for copying conditions. There is NO
|
|
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, a copy can be downloaded from
|
|
# http://www.gnu.org/copyleft/gpl.html, or by writing to the Free
|
|
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
# MA 02111-1307, USA.
|
|
|
|
. defs || exit 1
|
|
|
|
func_restore_files ()
|
|
{
|
|
func_mkdir_p "$objdir"
|
|
mv -f _fnord/temp/libs/* "l3/$objdir"
|
|
mv -f "_fnord/temp/libl3.la" "l3"
|
|
mv -f "_fnord/temp/lt-depdemo$EXEXT" "_fnord/temp/depdemo$EXEXT" "$objdir"
|
|
rm -rf "_fnord"
|
|
}
|
|
|
|
func_save_files ()
|
|
{
|
|
func_mkdir_p "_fnord/temp/libs"
|
|
cp -f "$objdir/lt-depdemo$EXEEXT" "$objdir/depdemo$EXEEXT" "_fnord/temp"
|
|
cp -f l3/libl3.la "_fnord/temp"
|
|
cp -f l3/"$objdir"/* "_fnord/temp/libs"
|
|
trap "func_restore_files" 0 1 2 13 15
|
|
}
|
|
|
|
func_require "depdemo-inst" "$prefix/lib/libl3.la" "depdemo/l3/libl3.la"
|
|
|
|
func_mkprefixdir
|
|
func_cd "depdemo"
|
|
func_save_files
|
|
|
|
# Check to make sure we have a dynamic library.
|
|
func_get_config "library_names" "cat l3/libl3.la"
|
|
test -z "$library_names" \
|
|
&& func_fatal_error "Exiting: depdemo/l3/libl3.la is not a shared library"
|
|
|
|
func_get_config 'shlibpath_overrides_runpath
|
|
hardcode_action
|
|
hardcode_direct
|
|
hardcode_into_libs' "./libtool --config" ": fatal"
|
|
|
|
./depdemo # so that it links on-demand if needed
|
|
|
|
func_msg "removing libl3.la from depdemo/l3"
|
|
rm -rf l3/libl3.la l3/$objdir
|
|
|
|
func_msg "running depdemo/depdemo"
|
|
if ./depdemo ||
|
|
# On AIX 4.1, when the installed copy of libl3 is loaded, it brings
|
|
# with it the installed copies of libl1 and libl2, with disjoint
|
|
# counters var_l1 and var_l2. This is arguably acceptable behavior,
|
|
# but it's definitely not enough of a reason for the test to fail.
|
|
./depdemo -alt; then
|
|
:
|
|
elif test "x,$hardcode_action,$hardcode_direct" = x,relink,yes; then
|
|
func_msg "Ok, uninstalled programs fail after uninstalled libraries are removed"
|
|
func_msg "This works in other configurations, but not in this particular one"
|
|
else
|
|
func_fail "Exiting: depdemo/depdemo does not run, maybe libl3 was not installed"
|
|
fi
|
|
|
|
func_msg "linking a broken depdemo/l3/libl3.la"
|
|
(cd l3 && $MAKE libl3.la libl3_la_OBJECTS=../l2/l2.lo) \
|
|
|| func_fail "Exiting: cannot link broken libl3.la"
|
|
rm -f l3/libl3.la
|
|
|
|
func_msg "running depdemo/depdemo with broken libl3.la"
|
|
if (./depdemo) 2>&1; then
|
|
func_msg "Exiting: depdemo/depdemo runs even though libl3.la is incomplete"
|
|
func_fail "shlibpath_overrides_runpath should be set to no"
|
|
else
|
|
func_msg "Failed, as expected"
|
|
fi
|
|
|
|
if test "x$hardcode_action" = xrelink; then
|
|
func_msg "Exiting: install-time relinking is required"
|
|
exit $EXIT_SUCCESS
|
|
fi
|
|
|
|
if test "$shlibpath_overrides_runpath" != yes; then
|
|
rm -f $objdir/lt-depdemo || exit $EXIT_FAILURE
|
|
cp $objdir/depdemo $objdir/lt-depdemo || exit $EXIT_FAILURE
|
|
func_msg "running depdemo/depdemo with installed libl3.la"
|
|
if ./depdemo; then
|
|
func_msg "Worked, as expected"
|
|
else
|
|
func_msg "shlibpath_overrides_runpath should be set to yes"
|
|
status=$EXIT_FAILURE
|
|
fi
|
|
fi
|
|
|
|
exit $status
|