![](https://secure.gravatar.com/avatar/0bb04ba26459288867dce5d2c890c5ce.jpg?s=120&d=mm&r=g)
Hi Monty, Sorry for the delay. I just got back from a vacation that didn't include computers or internet! :-) On 3/10/2010 1:43 PM, Michael Widenius wrote:
Hi!
Sorry, I had missed this email earlier...
"Jim" == Jim Grill
writes: Jim> Hello, Jim> I’m having trouble getting MariaDB 5.1.42 working on Solaris 10x86. I’ve Jim> tried both the Binary package (mariadb-5.1.42-solaris11-i386) and Jim> building from source (mariadb-5.1.42). I don't know if it's something in Jim> the binary package or source code, something goofy on my system, or Jim> something goofy with how I'm building it. I'm assuming the latter, but Jim> thought I might bring it up anyway just in case it might help others Jim> running Solaris. :-)
What version of Solaris do you have ?
What we are using is: SunOS opensolaris 5.11 snv_101b i86pc i386 i86pc Solaris
Jim> I can’t get the binary dist to startup. Here’s the error log from the Jim> binary dist (note the hostname missing from the error log name)…
Jim> $ cat data/.err Jim> 100212 09:54:33 mysqld_safe Starting mysqld daemon with databases from Jim> /data01/mydata/mariadb-bin-tst/data Jim> ld.so.1: mysqld: fatal: relocation error: file bin/mysqld: symbol Jim> strnlen: referenced symbol not found Jim> 100212 09:54:33 mysqld_safe mysqld from pid file Jim> /data01/mydata/mariadb-bin-tst/mysql.pid ended
That is strange.
What does this say for you:
nm /lib/64/libc.so | grep strnlen
Here's what I get from nm, basically nothing: /home/mysql/jgrill # /usr/xpg4/bin/nm /lib/64/libc.so | grep strnlen /home/mysql/jgrill # /usr/ccs/bin/nm /lib/64/libc.so | grep strnlen /home/mysql/jgrill #
I get: 000000000007aad8 T strnlen (The important thing is the 'T' above).
You can verify which libraries your version is using by doing:
ldd mysqld
/home/mysql/jgrill # ldd /product01/mysql/mariadb-5.1.42-solaris11-i386/bin/mysqld libnsl.so.1 => /lib/64/libnsl.so.1 libsocket.so.1 => /lib/64/libsocket.so.1 libpthread.so.1 => /lib/64/libpthread.so.1 libthread.so.1 => /lib/64/libthread.so.1 libz.so.1 => /usr/lib/64/libz.so.1 libdl.so.1 => /lib/64/libdl.so.1 libmtmalloc.so.1 => /usr/lib/64/libmtmalloc.so.1 librt.so.1 => /lib/64/librt.so.1 libresolv.so.2 => /lib/64/libresolv.so.2 libm.so.2 => /lib/64/libm.so.2 libc.so.1 => /lib/64/libc.so.1 libmp.so.2 => /lib/64/libmp.so.2 libmd.so.1 => /lib/64/libmd.so.1 libscf.so.1 => /lib/64/libscf.so.1 libaio.so.1 => /lib/64/libaio.so.1 libdoor.so.1 => /lib/64/libdoor.so.1 libuutil.so.1 => /lib/64/libuutil.so.1 libgen.so.1 => /lib/64/libgen.so.1
Jim> I’m using SunStudio 12.1 to build from source. Here’s my configure and Jim> make:
Jim> export PATH=/product01/sunstudio12.1/bin:${PATH} Jim> export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
Jim> make distclean
Jim> ASFLAGS="-m64" \ Jim> CC="cc-5.0" \ Jim> CFLAGS="-Xa -xstrconst -g -mt -D_FORTEC_ -m64" \ Jim> CXX="CC" \ Jim> CXXFLAGS="-noex -g -mt -D_FORTEC_ -m64" \ Jim> LIBS=-lmtmalloc \ Jim> ./configure \ Jim> --prefix=/product01/mysql/mariadb-5.1.42 \ Jim> --localstatedir=/product01/mysql/mariadb-5.1.42/data \ Jim> --libexecdir=/product01/mysql/mariadb-5.1.42/bin \ Jim> --with-extra-charsets=all \ Jim> --enable-thread-safe-client \ Jim> --enable-local-infile \ Jim> --with-zlib-dir=bundled \ Jim> --with-big-tables \ Jim> --with-readline \ Jim> --with-named-curses-libs=-lcurses \ Jim> --enable-assembler \ Jim> --enable-static \ Jim> --enable-shared
Jim> /usr/sfw/bin/gmake
Jim> [SNIP] Jim> gmake[1]: Entering directory `/home/mysql/jgrill/mariadb-5.1.42/dbug' Jim> source='dbug.c' object='dbug.o' libtool=no \ Jim> DEPDIR=.deps depmode=none /bin/bash ../depcomp \ Jim> cc-5.0 -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include Jim> -Xa -xstrconst -g -mt -D_FORTEC_ -m64 -DHAVE_RWLOCK_T -DUNIV_SOLARIS -c Jim> dbug.c Jim> source='sanity.c' object='sanity.o' libtool=no \ Jim> DEPDIR=.deps depmode=none /bin/bash ../depcomp \ Jim> cc-5.0 -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include Jim> -Xa -xstrconst -g -mt -D_FORTEC_ -m64 -DHAVE_RWLOCK_T -DUNIV_SOLARIS -c Jim> sanity.c Jim> rm -f libdbug.a Jim> ar cru libdbug.a dbug.o sanity.o Jim> ranlib libdbug.a Jim> source='my_main.c' object='my_main.o' libtool=no \ Jim> DEPDIR=.deps depmode=none /bin/bash ../depcomp \ Jim> cc-5.0 -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include Jim> -Xa -xstrconst -g -mt -D_FORTEC_ -m64 -DHAVE_RWLOCK_T -DUNIV_SOLARIS -c Jim> my_main.c Jim> source='factorial.c' object='factorial.o' libtool=no \ Jim> DEPDIR=.deps depmode=none /bin/bash ../depcomp \ Jim> cc-5.0 -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include Jim> -Xa -xstrconst -g -mt -D_FORTEC_ -m64 -DHAVE_RWLOCK_T -DUNIV_SOLARIS -c Jim> factorial.c Jim> /bin/bash ../libtool --preserve-dup-deps --tag=CC --mode=link cc-5.0 -Xa Jim> -xstrconst -g -mt -D_FORTEC_ -m64 -DHAVE_RWLOCK_T -DUNIV_SOLARIS -o Jim> factorial my_main.o factorial.o libdbug.a ../mysys/libmysys.a Jim> ../strings/libmystrings.a -lpthread -lthread -lposix4 -lsocket -lnsl -lm Jim> -lmtmalloc -lpthread -lthread Jim> libtool: link: cc-5.0 -Xa -xstrconst -g -mt -D_FORTEC_ -m64 Jim> -DHAVE_RWLOCK_T -DUNIV_SOLARIS -o factorial my_main.o factorial.o Jim> libdbug.a ../mysys/libmysys.a ../strings/libmystrings.a -lpthread Jim> -lthread -lposix4 -lsocket -lnsl -lm -lmtmalloc -lpthread -lthread -mt Jim> ld: warning: file libdbug.a ignored: unable to locate archive symbol table Jim> ld: warning: file ../mysys/libmysys.a ignored: unable to locate archive Jim> symbol table Jim> ld: warning: file ../strings/libmystrings.a ignored: unable to locate Jim> archive symbol table Jim> Undefined first referenced Jim> symbol in file Jim> my_thread_global_init my_main.o Jim> ld: fatal: Symbol referencing errors. No output written to factorial Jim> gmake[1]: *** [factorial] Error 1 Jim> gmake[1]: Leaving directory `/home/mysql/jgrill/mariadb-5.1.42/dbug' Jim> gmake: *** [all-recursive] Error 1
The problem here is that, because of some unknown reason, your system is compiling dbug before it's compiling strings and mysys.
Can you check if you have the file strings/libmystrings.a exits for you ?
It did exist
If not, try to do:
cd strings make
Does this work ?
Jim> Here's my OS release information: Jim> # cat /etc/release Jim> Solaris 10 10/09 s10x_u8wos_08a X86 Jim> Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. Jim> Use is subject to license terms. Jim> Assembled 16 September 2009
Our version says:
OpenSolaris 2008.11 snv_101b_rc2 X86 Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 19 November 2008
So it looks we have an incompatiblity between OpenSolaris and Solaris, which could explain the binary problem.
However the compilations should 'just work'. If you can help us figure out what's wrong, then we can try to fix the configure/make script to solve it.
I'd be happy to help out if I can.
Jim> Thanks for taking the time to read this far. :-) Any help would be Jim> greatly appreciated. I've tried everything I can think of and have spent Jim> many hours doing so. I'm pretty excited to try out XtraDB, PBXT, and, of Jim> course, MariaDB.
In the worst case, if you can give me access to your computer I may be able to figure out what's wrong....
The only way in is VPN. We might be able to work something out with webex or something like that where I can give you control.
Regards, Monty