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 >