diff --git a/ChangeLog b/ChangeLog index b79b004f..f1aab551 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-06-07 Ralf Wildenhues + + Fix versioning test for LDFLAGS=-Wl,--as-needed. + * tests/versioning.at (versioning): For the library update + hypotheses, ensure the unchanged library libb isn't accidentally + relinked against the new liba, by not reinstalling libb. + Fixes testsuite failure for the incompatible update case with + LDFLAGS=-Wl,--as-needed. + * THANKS: Update. + Report by Ryan Hill. + 2010-06-06 Ralf Wildenhues Rewrite manual intro to be gender-neutral. diff --git a/THANKS b/THANKS index 529a6990..14ab56b5 100644 --- a/THANKS +++ b/THANKS @@ -158,6 +158,7 @@ Roland Mainz roland.mainz@nrubsig.org Roumen Petrov bugtrack@roumenpetrov.info Rudolf Leitgeb r.leitgeb@x-pin.com + Ryan Hill dirtyepic@gentoo.org Sam Thursfield ssssam@gmail.com Scott McCreary scottmc2@gmail.com Sebastian Wilhelmi wilhelmi@ira.uka.de diff --git a/tests/versioning.at b/tests/versioning.at index 136a549a..31f294ec 100644 --- a/tests/versioning.at +++ b/tests/versioning.at @@ -1,6 +1,6 @@ # versioning.at -- test libtool versioning -*- Autotest -*- # -# Copyright (C) 2009 Free Software Foundation, Inc. +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. # # This file is part of GNU Libtool. # @@ -190,18 +190,17 @@ AT_CHECK([$LIBTOOL --mode=uninstall rm -f $libdir/liba.la], [], [ignore], [ignor # Hypothesis: library revision updates do not require (uninstalled -# nor installed) programs to be relinked. +# nor installed) programs or libraries to be relinked. AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la liba2.lo ]dnl [-version-info 0:1:0 -rpath $libdir], [], [ignore], [ignore]) test_uninstalled -AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir], - [], [ignore], [ignore]) +AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore]) AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore]) test_installed # do not uninstall here: the library may be reused in the next test. # Hypothesis: backward compatible library updates do not require -# (uninstalled nor installed) programs to be relinked. +# (uninstalled nor installed) programs or libraries to be relinked. # This can have one of several reasons: # - the soname is the difference between $current and $age, thus # unchanged; in this case, the newly installed library will be used, @@ -212,26 +211,26 @@ test_installed AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la liba3.lo ]dnl [-version-info 1:0:1 -rpath $libdir], [], [ignore], [ignore]) # Do not test the uninstalled program, it may be broken (in the second case). -AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir], - [], [ignore], [ignore]) +AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore]) AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore]) test_installed # do not uninstall here: the library may be reused in the next test. # Hypothesis: with shared libraries, incompatible library updates -# will not cause old installed programs (linked against the old +# will not cause old installed programs or libraries (linked against the old # library version) to break. # This can have one of several reasons: # - the soname has changed, so the old installed library will still be # available, # - we are linking statically, so the old library code will still be used. +# In order to be sure we are still linking against the old library version, +# we must ensure that libb is not relinked, so we must not reinstall libb here. AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o liba.la liba4.lo ]dnl [-version-info 2:0:0 -rpath $libdir], [], [ignore], [ignore]) # We do not guarantee that old versions of an uninstalled library are still # available, so test_uninstalled will not necessarily work here any more. -AT_CHECK([$LIBTOOL --mode=install cp liba.la libb.la $libdir], - [], [ignore], [ignore]) +AT_CHECK([$LIBTOOL --mode=install cp liba.la $libdir], [], [ignore], [ignore]) AT_CHECK([$LIBTOOL --mode=clean rm -f liba.la], [], [ignore], [ignore]) test_installed