Bug #21457 Unresolved data symbol "test_flags"
Submitted: 5 Aug 2006 9:00 Modified: 13 Sep 2006 14:58
Reporter: Joerg Behrens Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.0.24 OS:Other (IRIX64)
Assigned to: CPU Architecture:Any
Tags: instance-manage, IRIX, mysqlmanager, test_flags

[5 Aug 2006 9:00] Joerg Behrens
Description:
When compiling the recent version (same for latest snapshot) with the configure option--with-mysqlmanager (its on by default) the following error pops up during compile.

CC -DDBUG_OFF -O3 -mips4 -I/usr/nekoware/include -OPT:Olimit=0:roundoff=3 -TARG:platform=IP27:proc=r10000 -LANG:exceptions=OFF -LANG:std=OFF -LANG:libc_in_namespace_std=OFF -D_BOOL -o .libs/mysqlmanager command.o mysqlmanager.o manager.o log.o thread_registry.o listener.o protocol.o mysql_connection.o user_map.o messages.o commands.o instance.o instance_map.o instance_options.o buffer.o parse.o guardian.o parse_output.o  -L/usr/nekoware/lib ./.libs/liboptions.so -lpthread -lpthread -lpthread -lpthread libnet.a ../../vio/libvio.a ../../mysys/libmysys.a ../../strings/libmystrings.a ../../dbug/libdbug.a -lz -lpthread -lgen -lnsl -lm -lpthread -Wl,-rpath -Wl,/usr/nekoware/lib:/usr/nekoware/mysql5/lib/mysql
ld32: WARNING 84 : ../../dbug/libdbug.a is not used for resolving any symbol.
ld32: WARNING 84 : /usr/lib32/libgen.so is not used for resolving any symbol.
ld32: ERROR   33 : Unresolved data symbol "test_flags" -- 1st referenced by libnet.a(net_serv.o).
        Use linker option -v to see when and which objects, archives and dsos are loaded.
ld32: INFO    152: Output file removed because of error.
gmake[3]: *** [mysqlmanager] Fehler 2
gmake[3]: Leaving directory `/raids/strip2/MIPS/mysql-5.0.24/server-tools/instance-manager'

[o2k]:/usr2/MIPS/mysql-5.0.24 $ uname -Ra
IRIX64 o2k 6.5 6.5.28m 07010238 IP27
[o2k]:/usr2/MIPS/mysql-5.0.24 $ cc -version
MIPSpro Compilers: Version 7.4.4m

How to repeat:
export CC=c99
export CFLAGS='-O3 -mips4  -I/usr/nekoware/include -OPT:Olimit=0:roundoff=3  -TARG:platform=IP27:proc=r10000'
export CXXFLAGS="$CFLAGS -LANG:exceptions=OFF -LANG:std=OFF -LANG:libc_in_namespace_std=OFF"
export CPPFLAGS='-I/usr/nekoware/include'

./configure --prefix=/usr/nekoware/mysql5  --with-extra-charsets=complex --enable-thread-safe-client --with-unix-socket-path=/usr/nekoware/var/run/mysql5/mysql.sock --without-extra-tools --disable-dependency-tracking  --with-mysqlmanager

Suggested fix:
Well, short workaround is to set --with-mysqlmanager=no.
[5 Aug 2006 15:20] Hartmut Holzgraefe
The symbol is defined in priv.cc which becomes part of liboptions.so and is referenced by libnet.a, so this is either a matter of library order, or, more likely, of symbol visibility (symbols from shared libraries not visible to other libraries linked in)
[13 Sep 2006 13:11] Valeriy Kravchuk
Bug #14995 is fixed only in 5.0.25, so, surely you can repeat it with 5.0.24.
[13 Sep 2006 14:58] Valeriy Kravchuk
Sorry, but I was not able to repeat the behaviour described on our IRIX machine:

...
CC -O3 -DDBUG_OFF -D_BOOL -o .libs/mysqlmanager command.o mysqlmanager.o manager
.o log.o thread_registry.o listener.o protocol.o mysql_connection.o user_map.o m
essages.o commands.o instance.o instance_map.o instance_options.o buffer.o parse
.o guardian.o parse_output.o  ./.libs/liboptions.a -lpthread -lpthread -lpthread
 -lpthread libnet.a ../../vio/libvio.a ../../mysys/libmysys.a ../../strings/libm
ystrings.a ../../dbug/libdbug.a ../../zlib/.libs/libz.so -lpthread -lpthread -lp
thread -lpthread -lpthread -lgen -lnsl -lm -lpthread -Wl,-rpath -Wl,/usr/people/
mysqldev/valeriy/dbs/5.0/lib/mysql
ld32: WARNING 84 : ../../dbug/libdbug.a is not used for resolving any symbol.
ld32: WARNING 84 : /usr/lib32/libgen.so is not used for resolving any symbol.
creating mysqlmanager
gmake[1]: Leaving directory `/usr/people/mysqldev/valeriy/mysql-5.0.24/server-to
ols/instance-manager'
gmake[1]: Entering directory `/usr/people/mysqldev/valeriy/mysql-5.0.24/server-t
ools'
gmake[1]: Nothing to be done for `all-am'.
gmake[1]: Leaving directory `/usr/people/mysqldev/valeriy/mysql-5.0.24/server-to
ols'
...

mysqldev@octane2:~/valeriy/mysql-5.0.24/server-tools> uname -a
IRIX64 octane2 6.5 07080050 IP30
mysqldev@octane2:~/valeriy/mysql-5.0.24/server-tools> cc -version
MIPSpro Compilers: Version 7.41

Before that I had performed:

CC=cc CXX=CC CFLAGS="$cflags" CXXFLAGS="$cxxflags" ./configure --prefix=/usr/people/mysqldev/valeriy/dbs/5.0 --with-extra-charsets=complex --enable-thread-safe-client --without-extra-tools --disable-dependency-tracking  --with-mysqlmanager
gmake -j

So, with flags we used for regular builds on IRIX some time ago I was not able to repeat the problem you described.