Julian Foad <julian.f...@wandisco.com> writes: > The patch committed in 1049944 has broken the Centos buildbot and my > local tests (in Ubuntu 10.04): all the C tests fail to run. If I try to > run one manually, the result is: > > $ obj-dir/subversion/tests/libsvn_client/client-test --list > /bin/sed: symbol lookup > error: > /home/julianfoad/build/subversion-c/subversion/tests/.libs/libsvn_test-1.so: > undefined symbol: test_funcs > ls: symbol lookup > error: > /home/julianfoad/build/subversion-c/subversion/tests/.libs/libsvn_test-1.so: > undefined symbol: test_funcs > /bin/sed: symbol lookup > error: > /home/julianfoad/build/subversion-c/subversion/tests/.libs/libsvn_test-1.so: > undefined symbol: test_funcs > mkdir: symbol lookup > error: > /home/julianfoad/build/subversion-c/subversion/tests/.libs/libsvn_test-1.so: > undefined symbol: test_funcs > gcc: symbol lookup > error: > /home/julianfoad/build/subversion-c/subversion/tests/.libs/libsvn_test-1.so: > undefined symbol: test_funcs > rm: symbol lookup > error: > /home/julianfoad/build/subversion-c/subversion/tests/.libs/libsvn_test-1.so: > undefined symbol: test_funcs
It's the external commands within the libtool script that are failing, because the exported LD_PRELOAD libraries apply to all commands and the external commands don't define test_funcs. I suppose we fix it by removing libsvn_test from the list of preload libraries. An alternative would be to define LD_PRELOAD near the end of the script just before the executable is exec'd. It might be a bit tricky to get the script to identify the right place. Another alternative: I suppose it might be possible to define some sort of weak linker symbol for test_funcs, so that executables that don't define it still run. I'm not sure if that's possible or portable. -- Philip