[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: libtool issue

From: Stefan Sperling <stsp_at_elego.de>
Date: 2007-12-05 15:33:41 CET

On Wed, Dec 05, 2007 at 10:57:44AM +0000, Joe Orton wrote:
> On Wed, Dec 05, 2007 at 01:02:01AM +0100, Stefan Sperling wrote:
> > Basically, anyone compiling subversion trunk on an ELF platform
> > should have seen this, given that they also have a subversion package
> > provided by the OS installed on their system. I know that it happens
> > on Debian (confirmed by Karl), FreeBSD (run ldd on the binary to see
> > crazy linkage), and OpenBSD (compile fails).
>
> Subversion (unnecessarily) links executables using "-rpath $(libdir)",
> so if you have old libraries in $(libdir) at build time it should be
> expected that odd things will happen.

Ah, nice hint. It does look like this is a problem.

Quoting the ld man page with emphasis added by me:

       -rpath dir
           Add a directory to the runtime library search path.
           This is used when linking an ELF executable with
           shared objects. All -rpath arguments are concatenated
           and passed to the runtime linker, which uses them to
           locate shared objects at runtime. The -rpath option
                                               ^^^^^^^^^^^^^^^^^^
           is also used when locating shared objects which are
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           needed by shared objects explicitly included in the
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           link; see the description of the -rpath-link option.
           ^^^^

> I have previously argued that this is incorrect, and we've been fixing
> it in the Fedora Subversion package for a long time, as below.

I've applied this patch to current svn trunk and tried to build
subversion from scratch after 'make distclean' on OpenBSD 4.2-current
-> no success :(

Just to show people what I am seeing, below you can see:

 1. The standard link command and output it genenerates.

 2. The link command and output it generates without -rpath.
    Basically same as 1, this is what the -rpath patch produces for me.

 3. The command and output of a manual link where I moved all
    the -L flags to the end of the command line. Linking somehow
    succeeds with warnings, but the program does not run from the working
    copy even though it should run using the libtool wrapper script...

1:

cd subversion/svn && /bin/sh /home/stsp/elego/svn-tigris/libtool --tag=CC --silent --mode=link gcc -g -Wpointer-arith -Wwrite-strings -Wshadow -DSVN_DEBUG -DAP_DEBUG -L/usr/local/lib/db4 -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/lib -rpath /usr/local/lib -o svn add-cmd.o blame-cmd.o cat-cmd.o changelist-cmd.o checkout-cmd.o cleanup-cmd.o commit-cmd.o conflict-callbacks.o copy-cmd.o delete-cmd.o diff-cmd.o export-cmd.o help-cmd.o import-cmd.o info-cmd.o list-cmd.o lock-cmd.o log-cmd.o main.o merge-cmd.o mergeinfo-cmd.o mkdir-cmd.o move-cmd.o notify.o propdel-cmd.o propedit-cmd.o propget-cmd.o proplist-cmd.o props.o propset-cmd.o resolved-cmd.o revert-cmd.o status-cmd.o status.o switch-cmd.o unlock-cmd.o update-cmd.o util.o ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /usr/local/lib/libaprutil-1.la -ldb -lexpat -liconv /usr/local/lib/libapr-1.la /usr/local/lib/libneon.la
/home/stsp/elego/svn-tigris/subversion/libsvn_ra_neon/.libs/libsvn_ra_neon-1.so.0.0: warning: strcpy() is almost always misused, please use strlcpy()
/usr/local/lib/libsasl2.so.2.22: warning: sprintf() is often misused, please use snprintf()
/usr/local/lib/libsasl2.so.2.22: warning: strcat() is almost always misused, please use strlcat()
/usr/bin/ld: warning: libsvn_subr-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_subr-1.so.0.0
/usr/bin/ld: warning: libsvn_delta-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_delta-1.so.0.0
/usr/bin/ld: warning: libsvn_fs_fs-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_fs_fs-1.so.0.0
/usr/bin/ld: warning: libsvn_fs_base-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_fs_base-1.so.0.0
/usr/bin/ld: warning: libsvn_fs-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_fs-1.so.0.0
/usr/bin/ld: warning: libsvn_repos-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_repos-1.so.0.0
/usr/bin/ld: warning: libsvn_ra_local-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_ra_local-1.so.0.0
/usr/bin/ld: warning: libsvn_ra_svn-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_ra_svn-1.so.0.0
/usr/bin/ld: warning: libsvn_ra-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_ra-1.so.0.0
/usr/bin/ld: warning: libsvn_diff-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_diff-1.so.0.0
/usr/bin/ld: warning: libsvn_wc-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_wc-1.so.0.0
add-cmd.o(.text+0x167): In function `svn_cl__add':
subversion/svn/add-cmd.c:68: undefined reference to `svn_client_add4'
blame-cmd.o(.text+0x76c): In function `svn_cl__blame':
subversion/svn/blame-cmd.c:304: undefined reference to `svn_client_blame4'
changelist-cmd.o(.text+0x52): In function `svn_cl__changelist':
subversion/svn/changelist-cmd.c:55: undefined reference to `svn_client_get_changelist'
changelist-cmd.o(.text+0x26b):subversion/svn/changelist-cmd.c:106: undefined reference to `svn_client_add_to_changelist'
changelist-cmd.o(.text+0x2b3):subversion/svn/changelist-cmd.c:123: undefined reference to `svn_client_remove_from_changelist'
checkout-cmd.o(.text+0x34e): In function `svn_cl__checkout':
subversion/svn/checkout-cmd.c:159: undefined reference to `svn_client_checkout3'
commit-cmd.o(.text+0x1e4): In function `svn_cl__commit':
subversion/svn/commit-cmd.c:102: undefined reference to `svn_client_commit4'
copy-cmd.o(.text+0x2f1): In function `svn_cl__copy':
subversion/svn/copy-cmd.c:135: undefined reference to `svn_client_copy4'
delete-cmd.o(.text+0x181): In function `svn_cl__delete':
subversion/svn/delete-cmd.c:76: undefined reference to `svn_client_delete3'
diff-cmd.o(.text+0x4c3): In function `svn_cl(double, int, float, float)':
subversion/svn/diff-cmd.c:197: undefined reference to `svn_client_get_changelist'
diff-cmd.o(.text+0xb26):subversion/svn/diff-cmd.c:344: undefined reference to `svn_client_diff_summarize2'
diff-cmd.o(.text+0xbb2):subversion/svn/diff-cmd.c:356: undefined reference to `svn_client_diff4'
diff-cmd.o(.text+0xcaa):subversion/svn/diff-cmd.c:388: undefined reference to `svn_client_diff_summarize_peg2'
diff-cmd.o(.text+0xd3d):subversion/svn/diff-cmd.c:400: undefined reference to `svn_client_diff_peg4'
export-cmd.o(.text+0x19b): In function `svn_cl__export':
subversion/svn/export-cmd.c:79: undefined reference to `svn_client_export4'
import-cmd.o(.text+0x1e1): In function `svn_cl__import':
subversion/svn/import-cmd.c:115: undefined reference to `svn_client_import3'
info-cmd.o(.text+0xeae): In function `svn_cl__info':
subversion/svn/info-cmd.c:459: undefined reference to `svn_client_get_changelist'
info-cmd.o(.text+0x10fa):subversion/svn/info-cmd.c:523: undefined reference to `svn_client_info2'
list-cmd.o(.text+0x991): In function `svn_cl__list':
subversion/svn/list-cmd.c:284: undefined reference to `svn_client_list2'
lock-cmd.o(.text+0x141): In function `svn_cl__lock':
subversion/svn/lock-cmd.c:94: undefined reference to `svn_client_get_changelist'
log-cmd.o(.text+0x94b): In function `svn_cl__log':
subversion/svn/log-cmd.c:475: undefined reference to `svn_client_get_changelist'
log-cmd.o(.text+0xe18):subversion/svn/log-cmd.c:613: undefined reference to `svn_client_log4'
log-cmd.o(.text+0xf0e):subversion/svn/log-cmd.c:637: undefined reference to `svn_client_log4'
merge-cmd.o(.text+0x62e): In function `svn_cl__merge':
subversion/svn/merge-cmd.c:229: undefined reference to `svn_client_merge_peg3'
merge-cmd.o(.text+0x67f):subversion/svn/merge-cmd.c:244: undefined reference to `svn_client_merge3'
mergeinfo-cmd.o(.text+0x225): In function `svn_cl__mergeinfo':
subversion/svn/mergeinfo-cmd.c:109: undefined reference to `svn_client_mergeinfo_get_merged'
mergeinfo-cmd.o(.text+0x291):subversion/svn/mergeinfo-cmd.c:120: undefined reference to `svn_client_root_url_from_path'
mergeinfo-cmd.o(.text+0x380):subversion/svn/mergeinfo-cmd.c:153: undefined reference to `svn_client_mergeinfo_get_available'
mkdir-cmd.o(.text+0x17b): In function `svn_cl__mkdir':
subversion/svn/mkdir-cmd.c:77: undefined reference to `svn_client_mkdir3'
move-cmd.o(.text+0x1ef): In function `svn_cl__move':
subversion/svn/move-cmd.c:86: undefined reference to `svn_client_move5'
propdel-cmd.o(.text+0xad): In function `svn_cl__propdel':
subversion/svn/propdel-cmd.c:65: undefined reference to `svn_client_get_changelist'
propdel-cmd.o(.text+0x33b):subversion/svn/propdel-cmd.c:136: undefined reference to `svn_client_propset3'
propedit-cmd.o(.text+0x417): In function `svn_cl__propedit':
subversion/svn/propedit-cmd.c:179: undefined reference to `svn_client_propget4'
propedit-cmd.o(.text+0x722):subversion/svn/propedit-cmd.c:257: undefined reference to `svn_client_propset3'
propget-cmd.o(.text+0x464): In function `svn_cl__propget':
subversion/svn/propget-cmd.c:189: undefined reference to `svn_client_get_changelist'
propget-cmd.o(.text+0x8a4):subversion/svn/propget-cmd.c:294: undefined reference to `svn_client_propget4'
proplist-cmd.o(.text+0x1d4): In function `svn_cl__proplist':
subversion/svn/proplist-cmd.c:121: undefined reference to `svn_client_get_changelist'
proplist-cmd.o(.text+0x5ec):subversion/svn/proplist-cmd.c:224: undefined reference to `svn_client_proplist3'
propset-cmd.o(.text+0x1d5): In function `svn_cl__propset':
subversion/svn/propset-cmd.c:99: undefined reference to `svn_client_get_changelist'
propset-cmd.o(.text+0x4e9):subversion/svn/propset-cmd.c:203: undefined reference to `svn_client_propset3'
resolved-cmd.o(.text+0x1c1): In function `svn_cl__resolved':
subversion/svn/resolved-cmd.c:89: undefined reference to `svn_client_resolved2'
revert-cmd.o(.text+0x58): In function `svn_cl__revert':
subversion/svn/revert-cmd.c:52: undefined reference to `svn_client_get_changelist'
revert-cmd.o(.text+0x1b5):subversion/svn/revert-cmd.c:86: undefined reference to `svn_client_revert2'
status-cmd.o(.text+0x32a): In function `do_status':
subversion/svn/status-cmd.c:188: undefined reference to `svn_client_status3'
status-cmd.o(.text+0x3de): In function `svn_cl__status':
subversion/svn/status-cmd.c:224: undefined reference to `svn_client_get_changelist'
switch-cmd.o(.text+0x49c): In function `svn_cl__switch':
subversion/svn/switch-cmd.c:161: undefined reference to `svn_client_switch2'
unlock-cmd.o(.text+0x51): In function `svn_cl__unlock':
subversion/svn/unlock-cmd.c:53: undefined reference to `svn_client_get_changelist'
update-cmd.o(.text+0x51): In function `svn_cl__update':
subversion/svn/update-cmd.c:53: undefined reference to `svn_client_get_changelist'
update-cmd.o(.text+0x18d):subversion/svn/update-cmd.c:82: undefined reference to `svn_client_update3'
collect2: ld returned 1 exit status

2:

cd subversion/svn && /bin/sh /home/stsp/elego/svn-tigris/libtool --tag=CC --silent --mode=link gcc -g -Wpointer-arith -Wwrite-strings -Wshadow -DSVN_DEBUG -DAP_DEBUG -L/usr/local/lib/db4 -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/lib -o svn add-cmd.o blame-cmd.o cat-cmd.o changelist-cmd.o checkout-cmd.o cleanup-cmd.o commit-cmd.o conflict-callbacks.o copy-cmd.o delete-cmd.o diff-cmd.o export-cmd.o help-cmd.o import-cmd.o info-cmd.o list-cmd.o lock-cmd.o log-cmd.o main.o merge-cmd.o mergeinfo-cmd.o mkdir-cmd.o move-cmd.o notify.o propdel-cmd.o propedit-cmd.o propget-cmd.o proplist-cmd.o props.o propset-cmd.o resolved-cmd.o revert-cmd.o status-cmd.o status.o switch-cmd.o unlock-cmd.o update-cmd.o util.o ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /usr/local/lib/libaprutil-1.la -ldb -lexpat -liconv /usr/local/lib/libapr-1.la /usr/local/lib/libneon.la
/home/stsp/elego/svn-tigris/subversion/libsvn_ra_neon/.libs/libsvn_ra_neon-1.so.0.0: warning: strcpy() is almost always misused, please use strlcpy()
/usr/local/lib/libsasl2.so.2.22: warning: sprintf() is often misused, please use snprintf()
/usr/local/lib/libsasl2.so.2.22: warning: strcat() is almost always misused, please use strlcat()
/usr/bin/ld: warning: libsvn_subr-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_subr-1.so.0.0
/usr/bin/ld: warning: libsvn_delta-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_delta-1.so.0.0
/usr/bin/ld: warning: libsvn_fs_fs-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_fs_fs-1.so.0.0
/usr/bin/ld: warning: libsvn_fs_base-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_fs_base-1.so.0.0
/usr/bin/ld: warning: libsvn_fs-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_fs-1.so.0.0
/usr/bin/ld: warning: libsvn_repos-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_repos-1.so.0.0
/usr/bin/ld: warning: libsvn_ra_local-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_ra_local-1.so.0.0
/usr/bin/ld: warning: libsvn_ra_svn-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_ra_svn-1.so.0.0
/usr/bin/ld: warning: libsvn_ra-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_ra-1.so.0.0
/usr/bin/ld: warning: libsvn_diff-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_diff-1.so.0.0
/usr/bin/ld: warning: libsvn_wc-1.so.1.0, needed by /usr/local/lib/libsvn_client-1.so.1.0, may conflict with libsvn_wc-1.so.0.0
add-cmd.o(.text+0x167): In function `svn_cl__add':
subversion/svn/add-cmd.c:68: undefined reference to `svn_client_add4'
blame-cmd.o(.text+0x76c): In function `svn_cl__blame':
subversion/svn/blame-cmd.c:304: undefined reference to `svn_client_blame4'
changelist-cmd.o(.text+0x52): In function `svn_cl__changelist':
subversion/svn/changelist-cmd.c:55: undefined reference to `svn_client_get_changelist'
changelist-cmd.o(.text+0x26b):subversion/svn/changelist-cmd.c:106: undefined reference to `svn_client_add_to_changelist'
changelist-cmd.o(.text+0x2b3):subversion/svn/changelist-cmd.c:123: undefined reference to `svn_client_remove_from_changelist'
checkout-cmd.o(.text+0x34e): In function `svn_cl__checkout':
subversion/svn/checkout-cmd.c:159: undefined reference to `svn_client_checkout3'
commit-cmd.o(.text+0x1e4): In function `svn_cl__commit':
subversion/svn/commit-cmd.c:102: undefined reference to `svn_client_commit4'
copy-cmd.o(.text+0x2f1): In function `svn_cl__copy':
subversion/svn/copy-cmd.c:135: undefined reference to `svn_client_copy4'
delete-cmd.o(.text+0x181): In function `svn_cl__delete':
subversion/svn/delete-cmd.c:76: undefined reference to `svn_client_delete3'
diff-cmd.o(.text+0x4c3): In function `svn_cl(double, int, float, float)':
subversion/svn/diff-cmd.c:197: undefined reference to `svn_client_get_changelist'
diff-cmd.o(.text+0xb26):subversion/svn/diff-cmd.c:344: undefined reference to `svn_client_diff_summarize2'
diff-cmd.o(.text+0xbb2):subversion/svn/diff-cmd.c:356: undefined reference to `svn_client_diff4'
diff-cmd.o(.text+0xcaa):subversion/svn/diff-cmd.c:388: undefined reference to `svn_client_diff_summarize_peg2'
diff-cmd.o(.text+0xd3d):subversion/svn/diff-cmd.c:400: undefined reference to `svn_client_diff_peg4'
export-cmd.o(.text+0x19b): In function `svn_cl__export':
subversion/svn/export-cmd.c:79: undefined reference to `svn_client_export4'
import-cmd.o(.text+0x1e1): In function `svn_cl__import':
subversion/svn/import-cmd.c:115: undefined reference to `svn_client_import3'
info-cmd.o(.text+0xeae): In function `svn_cl__info':
subversion/svn/info-cmd.c:459: undefined reference to `svn_client_get_changelist'
info-cmd.o(.text+0x10fa):subversion/svn/info-cmd.c:523: undefined reference to `svn_client_info2'
list-cmd.o(.text+0x991): In function `svn_cl__list':
subversion/svn/list-cmd.c:284: undefined reference to `svn_client_list2'
lock-cmd.o(.text+0x141): In function `svn_cl__lock':
subversion/svn/lock-cmd.c:94: undefined reference to `svn_client_get_changelist'
log-cmd.o(.text+0x94b): In function `svn_cl__log':
subversion/svn/log-cmd.c:475: undefined reference to `svn_client_get_changelist'
log-cmd.o(.text+0xe18):subversion/svn/log-cmd.c:613: undefined reference to `svn_client_log4'
log-cmd.o(.text+0xf0e):subversion/svn/log-cmd.c:637: undefined reference to `svn_client_log4'
merge-cmd.o(.text+0x62e): In function `svn_cl__merge':
subversion/svn/merge-cmd.c:229: undefined reference to `svn_client_merge_peg3'
merge-cmd.o(.text+0x67f):subversion/svn/merge-cmd.c:244: undefined reference to `svn_client_merge3'
mergeinfo-cmd.o(.text+0x225): In function `svn_cl__mergeinfo':
subversion/svn/mergeinfo-cmd.c:109: undefined reference to `svn_client_mergeinfo_get_merged'
mergeinfo-cmd.o(.text+0x291):subversion/svn/mergeinfo-cmd.c:120: undefined reference to `svn_client_root_url_from_path'
mergeinfo-cmd.o(.text+0x380):subversion/svn/mergeinfo-cmd.c:153: undefined reference to `svn_client_mergeinfo_get_available'
mkdir-cmd.o(.text+0x17b): In function `svn_cl__mkdir':
subversion/svn/mkdir-cmd.c:77: undefined reference to `svn_client_mkdir3'
move-cmd.o(.text+0x1ef): In function `svn_cl__move':
subversion/svn/move-cmd.c:86: undefined reference to `svn_client_move5'
propdel-cmd.o(.text+0xad): In function `svn_cl__propdel':
subversion/svn/propdel-cmd.c:65: undefined reference to `svn_client_get_changelist'
propdel-cmd.o(.text+0x33b):subversion/svn/propdel-cmd.c:136: undefined reference to `svn_client_propset3'
propedit-cmd.o(.text+0x417): In function `svn_cl__propedit':
subversion/svn/propedit-cmd.c:179: undefined reference to `svn_client_propget4'
propedit-cmd.o(.text+0x722):subversion/svn/propedit-cmd.c:257: undefined reference to `svn_client_propset3'
propget-cmd.o(.text+0x464): In function `svn_cl__propget':
subversion/svn/propget-cmd.c:189: undefined reference to `svn_client_get_changelist'
propget-cmd.o(.text+0x8a4):subversion/svn/propget-cmd.c:294: undefined reference to `svn_client_propget4'
proplist-cmd.o(.text+0x1d4): In function `svn_cl__proplist':
subversion/svn/proplist-cmd.c:121: undefined reference to `svn_client_get_changelist'
proplist-cmd.o(.text+0x5ec):subversion/svn/proplist-cmd.c:224: undefined reference to `svn_client_proplist3'
propset-cmd.o(.text+0x1d5): In function `svn_cl__propset':
subversion/svn/propset-cmd.c:99: undefined reference to `svn_client_get_changelist'
propset-cmd.o(.text+0x4e9):subversion/svn/propset-cmd.c:203: undefined reference to `svn_client_propset3'
resolved-cmd.o(.text+0x1c1): In function `svn_cl__resolved':
subversion/svn/resolved-cmd.c:89: undefined reference to `svn_client_resolved2'
revert-cmd.o(.text+0x58): In function `svn_cl__revert':
subversion/svn/revert-cmd.c:52: undefined reference to `svn_client_get_changelist'
revert-cmd.o(.text+0x1b5):subversion/svn/revert-cmd.c:86: undefined reference to `svn_client_revert2'
status-cmd.o(.text+0x32a): In function `do_status':
subversion/svn/status-cmd.c:188: undefined reference to `svn_client_status3'
status-cmd.o(.text+0x3de): In function `svn_cl__status':
subversion/svn/status-cmd.c:224: undefined reference to `svn_client_get_changelist'
switch-cmd.o(.text+0x49c): In function `svn_cl__switch':
subversion/svn/switch-cmd.c:161: undefined reference to `svn_client_switch2'
unlock-cmd.o(.text+0x51): In function `svn_cl__unlock':
subversion/svn/unlock-cmd.c:53: undefined reference to `svn_client_get_changelist'
update-cmd.o(.text+0x51): In function `svn_cl__update':
subversion/svn/update-cmd.c:53: undefined reference to `svn_client_get_changelist'
update-cmd.o(.text+0x18d):subversion/svn/update-cmd.c:82: undefined reference to `svn_client_update3'
collect2: ld returned 1 exit status
*** Error code 1

Stop in /home/stsp/elego/svn-tigris (line 738 of ./build-outputs.mk).

3:

stsp@jack [svn-tigris] $ cd subversion/svn && /bin/sh /home/stsp/elego/svn-tigris/libtool --tag=CC --silent --mode=link gcc -g -Wpointer-arith -Wwrite-strings -Wshadow -DSVN_DEBUG -DAP_DEBUG -o svn add-cmd.o blame-cmd.o cat-cmd.o changelist-cmd.o checkout-cmd.o cleanup-cmd.o commit-cmd.o conflict-callbacks.o copy-cmd.o delete-cmd.o diff-cmd.o export-cmd.o help-cmd.o import-cmd.o info-cmd.o list-cmd.o lock-cmd.o log-cmd.o main.o merge-cmd.o mergeinfo-cmd.o mkdir-cmd.o move-cmd.o notify.o propdel-cmd.o propedit-cmd.o propget-cmd.o proplist-cmd.o props.o propset-cmd.o resolved-cmd.o revert-cmd.o status-cmd.o status.o switch-cmd.o unlock-cmd.o update-cmd.o util.o ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /usr/local/lib/libaprutil-1.la -ldb -lexpat -liconv /usr/local/lib/libapr-1.la /usr/local/lib/libneon.la -L/usr/local/lib/db4 -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/lib
/home/stsp/elego/svn-tigris/subversion/libsvn_ra_neon/.libs/libsvn_ra_neon-1.so.0.0:
warning: strcpy() is almost always misused, please use strlcpy()
/usr/local/lib/libsasl2.so.2.22: warning: sprintf() is often misused,
please use snprintf()
/usr/local/lib/libsasl2.so.2.22: warning: strcat() is almost always
misused, please use strlcat()
/usr/bin/ld: warning: libsvn_ra-1.so.1.0, needed by
../../subversion/libsvn_client/.libs/libsvn_client-1.so.0.0, may
conflict with libsvn_ra-1.so.0.0
/usr/bin/ld: warning: libsvn_wc-1.so.1.0, needed by
../../subversion/libsvn_client/.libs/libsvn_client-1.so.0.0, may
conflict with libsvn_wc-1.so.0.0
/usr/bin/ld: warning: libsvn_diff-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_wc/.libs/libsvn_wc-1.so.0.0,
may conflict with libsvn_diff-1.so.0.0
/usr/bin/ld: warning: libsvn_delta-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_wc/.libs/libsvn_wc-1.so.0.0,
may conflict with libsvn_delta-1.so.0.0
/usr/bin/ld: warning: libsvn_ra_svn-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_ra/.libs/libsvn_ra-1.so.0.0,
may conflict with libsvn_ra_svn-1.so.0.0
/usr/bin/ld: warning: libsvn_ra_local-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_ra/.libs/libsvn_ra-1.so.0.0,
may conflict with libsvn_ra_local-1.so.0.0
/usr/bin/ld: warning: libsvn_repos-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so.0.0,
may conflict with libsvn_repos-1.so.0.0
/usr/bin/ld: warning: libsvn_fs-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_repos/.libs/libsvn_repos-1.so.0.0,
may conflict with libsvn_fs-1.so.0.0
/usr/bin/ld: warning: libsvn_fs_base-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0.0,
may conflict with libsvn_fs_base-1.so.0.0
/usr/bin/ld: warning: libsvn_fs_fs-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0.0,
may conflict with libsvn_fs_fs-1.so.0.0
/usr/bin/ld: warning: libsvn_subr-1.so.1.0, needed by
/home/stsp/elego/svn-tigris/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so.0.0,
may conflict with libsvn_subr-1.so.0.0

stsp@jack [svn-tigris] $ ldd ./subversion/svn/.libs/svn
./subversion/svn/.libs/svn:
./subversion/svn/.libs/svn: can't load library 'libsvn_fs_util-1.so.0.0'
./subversion/svn/.libs/svn: exit status 4

libtool made its wrapper script:

stsp@jack [svn-tigris] $ file ./subversion/svn/svn
./subversion/svn/svn: Bourne shell script text

But it fails to run:

stsp@jack [svn-tigris] $ ./subversion/svn/svn
/home/stsp/elego/svn-tigris/subversion/svn/.libs/svn:/usr/local/lib/libsvn_fs_base-1.so.1.0:
/home/stsp/elego/svn-tigris/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so.0.0
: WARNING: symbol(txn_vtable) size mismatch, relink your program
Type 'svn help' for usage.

-- 
Stefan Sperling <stsp@elego.de>                 Software Developer
elego Software Solutions GmbH                            HRB 77719
Gustav-Meyer-Allee 25, Gebaeude 12        Tel:  +49 30 23 45 86 96 
13355 Berlin                              Fax:  +49 30 23 45 86 95
http://www.elego.de                 Geschaeftsfuehrer: Olaf Wagner

  • application/pgp-signature attachment: stored
Received on Wed Dec 5 15:33:55 2007

This is an archived mail posted to the Subversion Dev mailing list.