maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #00092
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