通常、Solaris 2.6 バイナリは、Solaris 2.7 および 2.8 で使用できます。Solaris 2.6 での問題のほとんどは、Solaris 2.7 および 2.8 にも当てはまります。
MySQL は自動的に Solaris の新バージョンを検知して以下の問題に対して回避策を取ります。
Solaris 2.7 / 2.8 の include ファイルにはいくつかバグがあります。gcc を使用すると以下のエラーが表示される場合があります。
/usr/include/widec.h:42: warning: `getwc' redefined /usr/include/wchar.h:326: warning: this is the location of the previous definition
この問題が発生したら
/usr/include/widec.h
を
.../lib/gcc-lib/os/gcc-version/include
にコピーして行 41 を以下から:
#if !defined(lint) && !defined(__lint)
以下のように変更します。
#if !defined(lint) && !defined(__lint) && !defined(getwc)
また、/usr/include/widec.h
を直接編集することもできます。いずれの場合も、修正を加えたあとに
config.cache
を削除し
configure
を再度実行します。
make
を実行したときに次のエラーが表示された場合、configure
が curses.h
ファイルを検知できなかったことを意味します
(多分
/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 `;'
この問題を解決するには以下のいずれかを実行します。
CFLAGS=-DHAVE_CURSES_H
CXXFLAGS=-DHAVE_CURSES_H ./configure
で設定する。
/usr/include/widec.h
を前述の説明に従って編集し
configure
を再度実行する。
#define HAVE_TERM
行を config.h
ファイルから削除し
make
を再度実行する。
クライアントプログラムをリンク中にリンカが
-lz
を見つけられない場合、その問題は多分
libz.so
ファイルが
/usr/local/lib
にインストールされているからです。この問題を解決するには以下のメソッドのいずれかを実行します。
/usr/local/lib
を
LD_LIBRARY_PATH
に追加する。
リンクを libz.so
に /lib
から追加する。
Solaris 8 を使用している場合、オプションの
zlib
を Solaris 8 CD
配布からインストールできます。
MySQL をビルドするには
configure を
--with-named-z-libs=no
オプションで実行します。