Julian Foad wrote on Wed, Nov 17, 2010 at 10:18:05 +0000:
> Since r1035894 I'm getting a link error on Linux (and so is Noorul):
>
> cd subversion/libsvn_fs_fs && /usr/share/apr-1.0/build/libtool --tag=CC
> --silent --mode=link gcc -W[...] -D[...] -g -pthread
> -rpath /home/julianfoad/local/subversion-d/lib -Wl,--no-undefined -o
> libsvn_fs_fs-1.la caching.lo dag.lo fs.lo fs_fs.lo id.lo key-gen.lo
> lock.lo rep-cache.lo
> tree.lo ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la -laprutil-1 -lapr-1 ../../subversion/libsvn_fs_util/libsvn_fs_util-1.la
> .libs/tree.o: In function `get_mergeinfo_for_path':
> /home/julianfoad/src/subversion-d/subversion/libsvn_fs_fs/tree.c:3595:
> undefined reference to `svn_fs_validate_mergeinfo'
>
> I have deleted my ~/local/subversion-d directory, so it doesn't exist at
> this stage, and then I have run autogen.sh and configure.
>
> It appears that the new function 'svn_fs_validate_mergeinfo' is the only
> function outside libsvn_fs_fs and libsvn_fs_util that is called directly
> from within. I don't see why that shouldn't be OK, but it is
> suspicious.
>
> I wonder if the compiler option '-Wl,--no-undefined' is now wrong for
> this lib. How is that option controlled? Globally, by the configure
> flag '--enable-disallowing-of-undefined-references' (ugh), but how per
> lib?
>
build.conf contains "undefined-lib-symbols = yes" for libsvn_test.
Though in general, seems that disallowing undefined references is
preferable (when possible).
> Or should this function be moved to libsvn_fs_util/util.c, with merely a
> public wrapper placed in libsvn_fs/loader.c if required?
>
IIRC, libsvn_fs depends on libsvn_fs_{fs,base} depend on libsvn_fs_util.
So if code in fsfs or bdb wants to call svn_fs_validate_mergeinfo(),
then the code they call should live in libsvn_fs_util.
(This probably means "Yes".)
Daniel
> - Julian
>
>
> On Wed, 2010-11-17, pburba_at_apache.org wrote:
> > Log:
> > Reintegrate the issue-3668-3669 branch.
>
>
Received on 2010-11-17 14:01:03 CET