From: Ralf Wildenhues Date: Mon, 7 Jun 2010 20:30:44 +0000 (+0200) Subject: Fix versioning test for LDFLAGS=-Wl,--as-needed. X-Git-Tag: v2.2.10~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9a801684f6e1a665dc7126091662b34d042adf68;p=thirdparty%2Flibtool.git 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. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index b79b004fd..f1aab551f 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 529a69900..14ab56b5f 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 136a549a4..31f294ec0 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