Normally, you can use a Solaris 2.6 binary on Solaris 2.7 and 2.8. Most of the Solaris 2.6 issues also apply for Solaris 2.7 and 2.8.
MySQL should be able to detect new versions of Solaris automatically and enable workarounds for the following problems.
Solaris 2.7 / 2.8 has some bugs in the include files. You may see the following error when you use gcc:
/usr/include/widec.h:42: warning: `getwc' redefined /usr/include/wchar.h:326: warning: this is the location of the previous definition
If this occurs, you can fix the problem by copying
/usr/include/widec.h
to
.../lib/gcc-lib/os/gcc-version/include
and
changing line 41 from this:
#if !defined(lint) && !defined(__lint)
To this:
#if !defined(lint) && !defined(__lint) && !defined(getwc)
Alternatively, you can edit
/usr/include/widec.h
directly. Either
way, after you make the fix, you should remove
config.cache
and run
configure again.
If you get the following errors when you run
make, it is because
configure didn't detect the
curses.h
file (probably because of the
error in /usr/include/widec.h
):
In file included from mysql.cc:50: /usr/include/term.h:1060: syntax error before `,' /usr/include/term.h:1081: syntax error before `;'
The solution to this problem is to do one of the following:
Configure with CFLAGS=-DHAVE_CURSES_H
CXXFLAGS=-DHAVE_CURSES_H ./configure
.
Edit /usr/include/widec.h
as
indicated in the preceding discussion and re-run
configure.
Remove the #define HAVE_TERM
line from
the config.h
file and run
make again.
If your linker cannot find -lz
when linking
client programs, the problem is probably that your
libz.so
file is installed in
/usr/local/lib
. You can fix this problem
by one of the following methods:
Add /usr/local/lib
to
LD_LIBRARY_PATH
.
Add a link to libz.so
from
/lib
.
If you are using Solaris 8, you can install the optional
zlib
from your Solaris 8 CD
distribution.
Run configure with the
--with-named-z-libs=no
option when
building MySQL.