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

Reply via email to