Hi Kurt, * Kurt Roeckx wrote on Mon, Mar 28, 2011 at 01:08:22AM CEST: > We're seeing this currently in Debian: > > FAIL: tests/tagdemo-make.test
> /bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -o tagdemo main.o > libbaz.la -ldl > libtool: link: g++ -g -O2 -o .libs/tagdemo main.o ./.libs/libbaz.so -ldl > -Wl,-rpath -Wl,/home/kurt/libtool/libtool-2.4/_inst-tagdemo/lib > /usr/bin/ld: main.o: undefined reference to symbol 'convenience' > /usr/bin/ld: note: 'convenience' is defined in DSO > //home/kurt/libtool/libtool-2.4/tests/tagdemo/.libs/libfoo.so.0 so try adding > it to the linker command line > //home/kurt/libtool/libtool-2.4/tests/tagdemo/.libs/libfoo.so.0: could not > read symbols: Invalid operation > collect2: ld returned 1 exit status > > I was expecting this to break with the change in toolchain. > > In case you wonder why we get that error now, it's because gcc now > passes --no-copy-dt-needed-entries to the linker. I think I've > mailed the lists with a similar case just like this before. > > The problem is main.o is linking to libbaz (which is not a > convenience library, and is linked to libfoo), but is using > symbols from libfoo directly and not linking too it. This > is just wrong, but used to work because ld fixed it for you. > And libtool probably also tries to fix it for you if you don't > set link_all_deplibs to no. > > I plan to adjust all the tests to add the proper libraries. > Would you be interested in the patch? Yes, please. I'm not quite sure whether the test case was intended to exercise this, or it was just inadvertent; the latter is more likely. Presumably one or more of the tests from the Autotest testsuite in Libtool fail as well due to this? Thanks for the report, Ralf -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org