← Back to team overview

maria-discuss team mailing list archive

Re: Maria on Solaris X86

 

Hi!

Sorry, I had missed this email earlier...

>>>>> "Jim" == Jim Grill <jimgrill@xxxxxxxxxxxx> 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

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

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 ?

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.

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....

Regards,
Monty



Follow ups

References