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

make error, Link error in subversion-1.3.2 test tree

From: Naipaul Ojar <OJAR_at_uk.ibm.com>
Date: 2006-09-08 11:54:36 CEST

OS:- Cygwin, v1.5.21-1
Downloaded and compiled the pre-req sources for:-
  apache, BerkeleyDB.4.4, apr -1.2.7, apr-util -1.2.7

Configured Using:-
./configure --enable-dav --enable-so --with-ssl --with-berkeley-db=/usr/local/BerkeleyDB.4.4 --with-apxs=/usr/local/apache/bin/apxs \
--with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd

I am having a link error in the test tree of subversion-1.3.2, which could be due to the LD_FLAG setting:-
   -no-undefined

The more general 'make' failed and I have been investigating the test sub-tree where the error is located.

$ make test
cd subversion/tests && /bin/sh /usr/src/subversion-1.3.2/libtool --tag=CC --silent --mode=link gcc -g -O2 -g -O2 -no-undefined
    -L/usr/local/BerkeleyDB.4.4/lib -rpath /usr/local/lib -o libsvn_test-1.la svn_test_editor.lo svn_test_fs.lo svn_test_main.lo
 ../../subversion/libsvn_repos/libsvn_repos-1.la ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_delta/libsvn_de
lta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la /usr/local/apr-util-httpd//lib/libaprutil-1.la -ldb -lpq -lexpat -liconv /u
sr/local/apr-httpd//lib/libapr-1.la -lcrypt
.libs/svn_test_main.o: In function `get_array_size':
/usr/src/subversion-1.3.2/subversion/tests/svn_test_main.c:118: undefined reference to `_test_funcs'
/usr/src/subversion-1.3.2/subversion/tests/svn_test_main.c:118: undefined reference to `_test_funcs'
.libs/svn_test_main.o: In function `do_test_num':
/usr/src/subversion-1.3.2/subversion/tests/svn_test_main.c:151: undefined reference to `_test_funcs'
/usr/src/subversion-1.3.2/subversion/tests/svn_test_main.c:150: undefined reference to `_test_funcs'
Creating library file: .libs/libsvn_test-1.dll.a
collect2: ld returned 1 exit status
make: *** [subversion/tests/libsvn_test-1.la] Error 1

There are a number of sub-directories in the test tree and only the 'libsvn_subr' seems to be build prior to the linking
of the test tree to create the library module:- .libs/libsvn_test-1.dll.a

The offending area of code is:-
/* Determine the array size of test_funcs[], the inelegant way. :) */
static int
get_array_size (void)
{
  int i;

  for (i = 1; test_funcs[i].func; i++)
    {
    }

  return (i - 1);
}
But the definition of the externally defined array of functions is implemented in a module that has not been build yet:-
       subversion/tests/libsvn_repos/repos-test$(EXEEXT)

I tried to build that module, but I realised that many other modules had to be built proir to the linking of the library.

gb047358@IBM-cno001y /usr/src/subversion-1.3.2/subversion/tests
$ ls -R lib*
libsvn_delta:
delta-window-test.h random-test.c range-index-test.h svndiff-test.c vdelta-test.c vdelta_1.txt

libsvn_diff:
diff-diff3-test.c

libsvn_fs:
fs-test.c locks-test.c

libsvn_fs_base:
changes-test.c fs-base-test.c key-test.c skel-test.c strings-reps-test.c

libsvn_ra_local:
ra-local-test.c

libsvn_repos:
dir-delta-editor.c dir-delta-editor.h repos-test.c

libsvn_subr:
compat-test.c config-test.c hashdump-test.c path-test.c string-test.c target-test.py utf-test.c
compat-test.o config-test.cfg opt-test.c stream-test.c target-test.c time-test.c

libsvn_vcdiff:
README source.txt target0.txt target1.txt target2.txt target3.txt target4.txt target5.txt

libsvn_wc:
translate-test.c
===================================================================================
Further Investigation:-

The build-outputs.mk define the TEST_PROGRAMS and their TEST_DEPS modules
but all the dependancies have not been build prior to the linking of the library.

TEST_DEPS = subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/target-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_wc/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_subr/target-test.py subversion/tests/clients/cmdline/getopt_tests.py subversion/tests/clients/cmdline/basic_tests.py subversion/tests/clients/cmdline/commit_tests.py subversion/tests/clients/cmdline/update_tests.py subversion/tests/clients/cmdline/switch_tests.py subversion/tests/clients/cmdline/prop_tests.py subversion/tests/clients/cmdline/schedule_tests.py subversion/tests/clients/cmdline/log_tests.py subversion/tests/clients/cmdline/copy_tests.py subversion/tests/clients/cmdline/diff_tests.py subversion/tests/clients/cmdline/export_tests.py subversion/tests/clients/cmdline/externals_tests.py subversion/tests/clients/cmdline/merge_tests.py subversion/tests/clients/cmdline/revert_tests.py subversion/tests/clients/cmdline/stat_tests.py subversion/tests/clients/cmdline/trans_tests.py subversion/tests/clients/cmdline/autoprop_tests.py subversion/tests/clients/cmdline/blame_tests.py subversion/tests/clients/cmdline/special_tests.py subversion/tests/clients/cmdline/svnadmin_tests.py subversion/tests/clients/cmdline/svnlook_tests.py subversion/tests/clients/cmdline/svnversion_tests.py subversion/tests/clients/cmdline/utf8_tests.py subversion/tests/clients/cmdline/history_tests.py subversion/tests/clients/cmdline/lock_tests.py subversion/tests/clients/cmdline/cat_tests.py subversion/tests/clients/cmdline/import_tests.py subversion/tests/clients/cmdline/authz_tests.py

TEST_PROGRAMS = subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_wc/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_subr/target-test.py subversion/tests/clients/cmdline/getopt_tests.py subversion/tests/clients/cmdline/basic_tests.py subversion/tests/clients/cmdline/commit_tests.py subversion/tests/clients/cmdline/update_tests.py subversion/tests/clients/cmdline/switch_tests.py subversion/tests/clients/cmdline/prop_tests.py subversion/tests/clients/cmdline/schedule_tests.py subversion/tests/clients/cmdline/log_tests.py subversion/tests/clients/cmdline/copy_tests.py subversion/tests/clients/cmdline/diff_tests.py subversion/tests/clients/cmdline/export_tests.py subversion/tests/clients/cmdline/externals_tests.py subversion/tests/clients/cmdline/merge_tests.py subversion/tests/clients/cmdline/revert_tests.py subversion/tests/clients/cmdline/stat_tests.py subversion/tests/clients/cmdline/trans_tests.py subversion/tests/clients/cmdline/autoprop_tests.py subversion/tests/clients/cmdline/blame_tests.py subversion/tests/clients/cmdline/special_tests.py subversion/tests/clients/cmdline/svnadmin_tests.py subversion/tests/clients/cmdline/svnlook_tests.py subversion/tests/clients/cmdline/svnversion_tests.py subversion/tests/clients/cmdline/utf8_tests.py subversion/tests/clients/cmdline/history_tests.py subversion/tests/clients/cmdline/lock_tests.py subversion/tests/clients/cmdline/cat_tests.py subversion/tests/clients/cmdline/import_tests.py subversion/tests/clients/cmdline/authz_tests.py
Received on Fri Sep 8 11:56:19 2006

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