Julian Foad <julian.foad_at_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
Received on 2010-12-16 15:04:47 CET