Marc Girod <marc.girod <at> iona.com> writes:
> I'll look at the symbols in the objects, with nm.
$ nm -Au $(find . -name \*.o) | egrep \
'\.svn_client_(blame3|copy3|diff_summarize|diff_summarize_peg|list|log3|\
merge_peg2|merge2|move4)'
./subversion/svn/blame-cmd.o: .svn_client_blame3 U -
./subversion/svn/copy-cmd.o: .svn_client_copy3 U -
./subversion/svn/diff-cmd.o: .svn_client_diff_summarize U -
./subversion/svn/diff-cmd.o: .svn_client_diff_summarize_peg U -
./subversion/svn/list-cmd.o: .svn_client_list U -
./subversion/svn/log-cmd.o: .svn_client_log3 U -
./subversion/svn/merge-cmd.o: .svn_client_merge2 U -
./subversion/svn/merge-cmd.o: .svn_client_merge_peg2 U -
./subversion/svn/move-cmd.o: .svn_client_move4 U -
$
These are 'non-PIC' objects, for which there is no 'PIC' counterpart
(I guess 'Position Independent Code', suitable for shared libraries).
No '.lo' counterpart either.
The reason is obviously that they are meant to be linked exclusively into the
executables (svn or some other).
If I stick to the first missing symbol, and look into the shared libraries,
I get:
$ nm -A $(find . -type f -name libsvn_\*.so\*) | egrep '\.svn_client_blame3'
./subversion/libsvn_client/.libs/libsvn_client-1.so.0.0.0: .svn_client_blame3
T 42280 1584
./subversion/libsvn_client/.libs/libsvn_client-1.so.0.0.0: .svn_client_blame3
T 44544
./subversion/libsvn_client/.libs/libsvn_client-1.so.0.0.0: .svn_client_blame3
t 44544 40
$
ON AIX, 'T' is 'global text' and 't' local, followed by the value and size.
[ On HP-UX, I get a similar list of symbols, without the leading '.':
$ nm -Au $(find . -name \*.o) | grep 'svn_client_blame3'
./subversion/svn/blame-cmd.o:svn_client_blame3
$
]
I send this as temporary report...
Marc
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Oct 12 13:15:20 2006