Bug #24969 several IRIX compilation errors
Submitted: 11 Dec 2006 19:08 Modified: 14 Jan 2007 18:59
Reporter: [ name withheld ] Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:5.1.14 OS:Other (IRIX 6.5.30)
Assigned to: CPU Architecture:Any

[11 Dec 2006 19:08] [ name withheld ]
Description:
after using the script from ./BUILD for irix64 the following errors occured:

###
CC -64 -mips4 -woff 1064,1188,1460,1552,1681,1682,3303 -O3 -c99 -OPT:Olimit=0 -LANG:exceptions=OFF -LANG:std=OFF -LANG:libc_in_namespace_std=OFF -D_BOOL -o mysqltest mysqltest.o my_getsystime.o  -L/usr/local/lib -L/usr/local2/lib -L/usr/nekoware/lib -L/usr/freeware/lib32 ../regex/libregex.a -lpthread ../libmysql/.libs/libmysqlclient.a /temp/mysql-5.1.14-beta/zlib/.libs/libz.a ../mysys/libmysys.a ../zlib/.libs/libz.a -lgen -lm
gives unresolved pthread symbols.
-lpthread is missing. when added it works.
###
the command 'bison -y -p MYSQL  -d --debug --verbose sql_yacc.yy' in ./sql fails with system bison. one has to use a newer one. e.g. i took my 2.3 and it worked.
###
finally stops with:
cc-1101 CC: ERROR File = item_xmlfunc.cc, Line = 596
  "pos" has already been declared in the current scope.

    for (uint i= 0, pos= 0; i < numnodes; i++)
                    ^
#####################
by going the 'normal' way via './configure --prefix=/usr/local/mysql' and nothing more we get pthread errors with:
CC -O3 -mips4 -TARG:platform=IP27:proc=r12000 -OPT:Olimit=0:roundoff=3:IEEE_arithmetic=3 -D_BOOL -o .libs/mysqltest mysqltest.o my_getsystime.o  -lm -L/usr/local/lib -L/usr/local2/lib -L/usr/nekoware/lib -L/usr/freeware/lib32 ../regex/libregex.a -lpthread ../libmysql/.libs/libmysqlclient.so -lm -lm -lfastm -lm -lm ../mysys/libmysys.a -lgen -lnsl -lm -lz -Wl,-rpath -Wl,/usr/local/mysql/lib/mysql
-lpthread is set too early. by moving it to the end of the line the pthread errors disappear but there's still:
Unresolved text symbol "my_vsnprintf" -- 1st referenced by ../mysys/libmysys.a(my_error.o).

How to repeat:
compile it

Suggested fix:
your call :-)
[14 Dec 2006 18:59] Hartmut Holzgraefe
There is not much we can do about bison version dependencies,
the configure checks could be made a bit more clever about it
though ....

The following fix should at least fix the first compile 
error, i have no idea about the my_vsnprintf one though...

Could you check whether the patch really helps?

===== sql/item_xmlfunc.cc 1.22 vs edited =====
--- 1.22/sql/item_xmlfunc.cc    2006-12-14 19:53:18 +01:00
+++ edited/sql/item_xmlfunc.cc  2006-12-14 19:46:11 +01:00
@@ -579,7 +579,6 @@
   both_str.alloc(numnodes);
   char *both= (char*) both_str.ptr();
   bzero((void*)both, numnodes);
-  uint pos= 0;
   MY_XPATH_FLT *flt;
 
   fltbeg= (MY_XPATH_FLT*) s0->ptr();
[14 Dec 2006 20:55] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/16992

ChangeSet@1.2360, 2006-12-14 21:53:42+01:00, hartmut@mysql.com +1 -0
  Irix comiler error fixed (part of Bug #24969)
[26 Dec 2006 19:15] Joerg Behrens
Same problem with the missing "my_vsnprintf" on IRIX 6.5.30.

./configure --with-extra-charsets=complex --enable-thread-safe-client --with-unix-socket-path=/tmp/mysql-5.1.14.sock --without-extra-tools --disable-dependency-tracking --without-readline --prefix=/tmp/mysql-5.1.14 --with-debug=full
gmake -j32

Its stops first with the "Unresolved text symbol "pthread_key_create"" message and later with "my_vsnprintf".

The "my_vsnprintf" is can be found in one of the *internal* libraries
[fuel]:~ $ for i in `find /usr/lib32/ -name "*.so" -type f`;do nm $i | grep my_vsnprintf && echo $i;done
[226]   |  86270640|     704|FUNC |GLOB |DEFAULT  |MIPS_TEXT|my_vsnprintf
/usr/lib32/internal/libssdb.so

But i dont think this is right one.

regards
Joerg
[15 Jan 2007 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[6 Feb 2007 21:31] Magnus BlÄudd
The problem with my_snprintf and pthread_key_create missing is from mysqlslap being a multithreaded application linked with libmysqlclient_r but compiled with -DUNDEF_THREADS_HACK wich causes pthread_key_create to be undefined.