You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Julian Foad <ju...@wandisco.com> on 2010/11/17 10:18:05 UTC

Re: svn commit: r1035894 - undefined reference to 'svn_fs_validate_mergeinfo'

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?

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?

- Julian


On Wed, 2010-11-17, pburba@apache.org wrote:
> Log:
> Reintegrate the issue-3668-3669 branch.


Re: svn commit: r1035894 - undefined reference to 'svn_fs_validate_mergeinfo'

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
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@apache.org wrote:
> > Log:
> > Reintegrate the issue-3668-3669 branch.
> 
> 

Re: svn commit: r1035894 - undefined reference to 'svn_fs_validate_mergeinfo'

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
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@apache.org wrote:
> > Log:
> > Reintegrate the issue-3668-3669 branch.
> 
>