From: Ralf Wildenhues Date: Fri, 30 Sep 2005 16:00:23 +0000 (+0000) Subject: * tests/deplibs-ident.at: New file with XFAIL test to expose X-Git-Tag: release-2-1b~481 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ca867a96cf830eb5f6c65cec941c639faba43e5;p=thirdparty%2Flibtool.git * tests/deplibs-ident.at: New file with XFAIL test to expose wrong multiple listing of a deplib on the command line. * Makefile.am, tests/testsuite.at: Updated. Reported by Brian Barrett . --- diff --git a/ChangeLog b/ChangeLog index 2cf12d533..4ccd1b572 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2005-09-30 Ralf Wildenhues + * tests/deplibs-ident.at: New file with XFAIL test to expose + wrong multiple listing of a deplib on the command line. + * Makefile.am, tests/testsuite.at: Updated. + Reported by Brian Barrett . + * tests/old-m4-iface.at: Define top_srcdir, work around current ltdl.m4 bug. diff --git a/Makefile.am b/Makefile.am index 697c18e37..bf78fb9be 100644 --- a/Makefile.am +++ b/Makefile.am @@ -472,6 +472,7 @@ TESTSUITE_AT = tests/testsuite.at \ tests/libtoolize.at \ tests/old-m4-iface.at \ tests/standalone.at \ + tests/deplibs-ident.at \ tests/stresstest.at \ tests/link-order.at \ tests/convenience.at \ diff --git a/tests/deplibs-ident.at b/tests/deplibs-ident.at new file mode 100644 index 000000000..f3ade8a42 --- /dev/null +++ b/tests/deplibs-ident.at @@ -0,0 +1,64 @@ +# Hand crafted tests for GNU Libtool. -*- Autotest -*- +# Copyright 2005 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. + + +AT_BANNER([Detecting identical deplibs.]) + + +## ----------------------------------------------- ## +## Different relative paths within the build tree. ## +## ----------------------------------------------- ## + +AT_SETUP([build tree relpaths]) + +mkdir a a/b c +echo 'int c() { return 0; }' > c/libcee.c +AT_CHECK([$LIBTOOL --mode=compile $CC $CFLAGS -c c/libcee.c -o c/libcee.lo],[0],[ignore],[ignore]) +AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o c/libcee.la c/libcee.lo -rpath /nowhere], + [0],[ignore],[ignore]) + +depl_1=../c/libcee.la +depl_2=`pwd`/c/libcee.la +depl_3="-L../c -lcee" + +( + cd a + for i in 1 2 3; do + eval depend_on_c=\"\$depl_$i\" + echo "extern int c(void); int a$i() { return c(); }" > liba$i.c + AT_CHECK([$LIBTOOL --mode=compile $CC $CFLAGS -c liba$i.c],[0],[ignore],[ignore]) + AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba$i.la liba$i.lo $depend_on_c -rpath /nowhere], + [0],[ignore],[ignore]) + done +) + +AT_DATA([a/b/b.c], +[[extern int a1(void), a2(void), a3(void), c(void); +int main() { return a1() + a2() + a3() + c(); } +]]) + +( + cd a/b + AT_CHECK([$CC $CFLAGS -c b.c],[0],[ignore],[ignore]) + AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o b b.$OBJEXT ../liba1.la ../liba2.la ../liba3.la ../../c/libcee.la -rpath /nowhere], + [0],[stdout],[ignore]) + AT_CHECK([$EGREP 'cee.*cee' stdout], 1, [ignore], [ignore]) + AT_XFAIL_IF(:) dnl This is currently broken in libtool +) + +AT_CLEANUP diff --git a/tests/testsuite.at b/tests/testsuite.at index a733a5395..0f5f8208d 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -108,5 +108,7 @@ m4_include([standalone.at]) m4_include([template.at]) # Behaviour of LT_OUTPUT m4_include([early-libtool.at]) +# identical deplibs +m4_include([deplibs-ident.at]) # stress test m4_include([stresstest.at])