From 7105a8d04ee66b4bc8128b937be6cc4a3c2676da Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Sun, 17 Sep 2006 19:26:28 +0000 Subject: [PATCH] * tests/shlibpath.at: New file, with... (shlibpath_overrides_runpath): ...new test. * Makefile.am: Update. --- ChangeLog | 6 ++++ Makefile.am | 1 + tests/shlibpath.at | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 tests/shlibpath.at diff --git a/ChangeLog b/ChangeLog index c17f5a8a..d43d0021 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-09-17 Ralf Wildenhues + + * tests/shlibpath.at: New file, with... + (shlibpath_overrides_runpath): ...new test. + * Makefile.am: Update. + 2006-09-12 Ralf Wildenhues * tests/destdir.at: New file. diff --git a/Makefile.am b/Makefile.am index cdc242a8..c37f08d7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -403,6 +403,7 @@ TESTSUITE_AT = tests/testsuite.at \ tests/convenience.at \ tests/link-order.at \ tests/fail.at \ + tests/shlibpath.at \ tests/static.at \ tests/destdir.at \ tests/old-m4-iface.at \ diff --git a/tests/shlibpath.at b/tests/shlibpath.at new file mode 100644 index 00000000..0d91432a --- /dev/null +++ b/tests/shlibpath.at @@ -0,0 +1,68 @@ +# Hand crafted tests for GNU Libtool. -*- Autotest -*- +# Copyright 2006 Free Software Foundation, Inc. + +# 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Test shlibpath settings. + +AT_SETUP([shlibpath_overrides_runpath]) + +mkdir sub sub/lib sub/bin +echo 'int a () { return 0; }' > a.c +echo 'extern int a (); int main () { return a(); }' > m.c +$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c a.c +$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la a.lo -rpath `pwd`/sub/lib +$LIBTOOL --mode=install cp liba.la `pwd`/sub/lib/liba.la +$LIBTOOL --mode=clean rm -f liba.la +rm -f sub/lib/liba.la + +$CC $CPPFLAGS $CFLAGS -c m.c +AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o m m.$OBJEXT -Lsub/lib -la -R`pwd`/sub/lib], + [], [ignore], [ignore]) +AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o m2 m.$OBJEXT -Lsub/lib -la], + [], [ignore], [ignore]) + +mv sub moved +mkdir sub sub/lib sub/bin +echo 'int wrong_lib () { return 0; }' > a.c +$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c a.c +$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la a.lo -rpath `pwd`/sub/lib +$LIBTOOL --mode=install cp liba.la `pwd`/sub/lib/liba.la +$LIBTOOL --mode=clean rm -f liba.la + +eval `$LIBTOOL --config | $EGREP '^(shlibpath_var|shlibpath_overrides_runpath)='` + +# No point checking a system with static libraries: +AT_CHECK([{ ./m || exit 1; } && exit 77], [1], [ignore], [ignore]) + +if test "$shlibpath_var" = PATH; then + addpath=`pwd`/moved/bin +else + addpath=`pwd`/moved/lib +fi +sep= +eval test -n \"\$$shlibpath_var\" && sep=: +eval $shlibpath_var='$addpath$sep$'$shlibpath_var +export $shlibpath_var +if test "$shlibpath_overrides_runpath" != no; then + LT_AT_EXEC_CHECK([./m], [0], [ignore], [ignore]) +else + AT_CHECK([./m || exit 1], [1], [ignore], [ignore]) +fi +# Test that shlibpath_var is effective in adding paths at all: +LT_AT_EXEC_CHECK([./m2], [0], [ignore], [ignore]) + +AT_CLEANUP