Fabian Fritz
2018-Jul-05 17:30 UTC
[Samba] Compiling Samba 4.8.3 on Solaris 10 produces "Undefined symbol" for tdbtorture
Hi,
I am trying to compile the latest Samba (4.8.3) on a Solaris 10
server. Apart from a small precompiler issue the compilation worked
surprisingly well, up to this linker error I can't get past:
[3237/3835] Linking default/lib/tdb/tdbtorture
Undefined first referenced
symbol in file
tdb_traverse_read default/lib/tdb/tools/tdbtorture_3.o
tdb_transaction_start default/lib/tdb/tools/tdbtorture_3.o
tdb_transaction_cancel default/lib/tdb/tools/tdbtorture_3.o
tdb_transaction_commit default/lib/tdb/tools/tdbtorture_3.o
tdb_append default/lib/tdb/tools/tdbtorture_3.o
tdb_delete default/lib/tdb/tools/tdbtorture_3.o
tdb_open_ex default/lib/tdb/tools/tdbtorture_3.o
tdb_check default/lib/tdb/tools/tdbtorture_3.o
tdb_close default/lib/tdb/tools/tdbtorture_3.o
tdb_fetch default/lib/tdb/tools/tdbtorture_3.o
tdb_store default/lib/tdb/tools/tdbtorture_3.o
tdb_transaction_prepare_commit default/lib/tdb/tools/tdbtorture_3.o
tdb_reopen_all default/lib/tdb/tools/tdbtorture_3.o
tdb_runtime_check_for_robust_mutexes default/lib/tdb/tools/tdbtorture_3.o
tdb_chainlock default/lib/tdb/tools/tdbtorture_3.o
tdb_chainunlock default/lib/tdb/tools/tdbtorture_3.o
tdb_traverse default/lib/tdb/tools/tdbtorture_3.o
ld: fatal: symbol referencing errors. No output written to
/tmp/samba-samba-4.8.3/bin/default/lib/tdb/tdbtorture
Waf: Leaving directory `/tmp/samba-samba-4.8.3/bin'
Build failed: -> task failed (err #2):
{task: cc_link tdbtorture_3.o -> tdbtorture}
I assume the necessary symbols are in libtdb, so somehow it didn't
link automatically. Can I tell the build system explicitly to do so?
Or is there something else I should do?
Thanks,
Fabian
Gaiseric Vandal
2018-Jul-05 17:52 UTC
[Samba] Compiling Samba 4.8.3 on Solaris 10 produces "Undefined symbol" for tdbtorture
What compiler are you using? If I remember correctly, gcc still uses the Solaris linker, not the gnu linker. You could probably work around it by renaming ld and then creating a sym link to the gnu ld. I ended up at some point recompiling GCC just to make sure that the gnu linker would be used. On 07/05/18 13:30, Fabian Fritz via samba wrote:> Hi, > I am trying to compile the latest Samba (4.8.3) on a Solaris 10 > server. Apart from a small precompiler issue the compilation worked > surprisingly well, up to this linker error I can't get past: > > [3237/3835] Linking default/lib/tdb/tdbtorture > Undefined first referenced > symbol in file > tdb_traverse_read default/lib/tdb/tools/tdbtorture_3.o > tdb_transaction_start default/lib/tdb/tools/tdbtorture_3.o > tdb_transaction_cancel default/lib/tdb/tools/tdbtorture_3.o > tdb_transaction_commit default/lib/tdb/tools/tdbtorture_3.o > tdb_append default/lib/tdb/tools/tdbtorture_3.o > tdb_delete default/lib/tdb/tools/tdbtorture_3.o > tdb_open_ex default/lib/tdb/tools/tdbtorture_3.o > tdb_check default/lib/tdb/tools/tdbtorture_3.o > tdb_close default/lib/tdb/tools/tdbtorture_3.o > tdb_fetch default/lib/tdb/tools/tdbtorture_3.o > tdb_store default/lib/tdb/tools/tdbtorture_3.o > tdb_transaction_prepare_commit default/lib/tdb/tools/tdbtorture_3.o > tdb_reopen_all default/lib/tdb/tools/tdbtorture_3.o > tdb_runtime_check_for_robust_mutexes default/lib/tdb/tools/tdbtorture_3.o > tdb_chainlock default/lib/tdb/tools/tdbtorture_3.o > tdb_chainunlock default/lib/tdb/tools/tdbtorture_3.o > tdb_traverse default/lib/tdb/tools/tdbtorture_3.o > ld: fatal: symbol referencing errors. No output written to > /tmp/samba-samba-4.8.3/bin/default/lib/tdb/tdbtorture > Waf: Leaving directory `/tmp/samba-samba-4.8.3/bin' > Build failed: -> task failed (err #2): > {task: cc_link tdbtorture_3.o -> tdbtorture} > > I assume the necessary symbols are in libtdb, so somehow it didn't > link automatically. Can I tell the build system explicitly to do so? > Or is there something else I should do? > > Thanks, > Fabian >