コンパイル中の問題が発生し DEC CC and gcc をインストールしている場合、configure を以下のように実行してみます。
CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql
c_asm.h
ファイルに問題がある場合、 ダミーの
c_asm.h
ファイルを作成してそれを使用します。
touch include/c_asm.h CC=gcc CFLAGS=-I./include \ CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql
以下の ld プログラムの問題は最新の DEC (Compaq) パッチ キットを次からダウンロードすることで修正できます。 http://ftp.support.compaq.com/public/unix/.
OSF/1 V4.0D およびコンパイラ 「DEC C V5.6-071 on
Digital Unix V4.0 (Rev. 878)」
ではそのコンパイラはいくつかの予想外の振る舞い(未定義の
asm
記号)
をしました。/bin/ld
も破損すると思われます (mysqld
のリンク中の _exit undefined
エラーの問題)。このシステムでは、MySQL
を以下の configure 行で
/bin/ld
を OSF 4.0C
バージョン置き換えた後に何とかコンパイルできました。
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
With the Digital compiler "C++ V6.1-029," the following should work:
CC=cc -pthread CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed \ -speculate all -arch host CXX=cxx -pthread CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed \ -speculate all -arch host -noexceptions -nortti export CC CFLAGS CXX CXXFLAGS ./configure --prefix=/usr/mysql/mysql \ --with-mysqld-ldflags=-all-static --disable-shared \ --with-named-thread-libs="-lmach -lexc -lc"
OSF/1
のバージョンのいくつかでは、alloca()
関数が壊れます。この問題は
'HAVE_ALLOCA'
を定義する
config.h
の行を削除して修正します。
alloca()
関数も不正確なプロトタイプを
/usr/include/alloca.h
に持つ場合があります。これに由来するこの警告は無視できます。
configure は以下のスレッド
ライブラリを自動的に使用します。--with-named-thread-libs="-lpthread
-lmach -lexc -lc"
.
gcc を使用する際、configure を以下のように実行してみます。
CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ...
信号の問題 (MySQL が高負荷で突然停止する)がある場合、スレッドおよび信号の OS バグがある場合があります。この場合、以下のように設定して MySQL が信号を使用しないようにします。
CFLAGS=-DDONT_USE_THR_ALARM \ CXXFLAGS=-DDONT_USE_THR_ALARM \ ./configure ...
これによって MySQL の性能には影響ありませんが、mysqladmin kill あるいは mysqladmin shutdown と接続して 「sleeping」 しているクライアントを切断できなくなる副作用が出ます。その代わり、クライアントはそれが次のコマンドを発行した時に切断します。
gcc 2.95.2 では、以下のコンパイラ エラーが発生する場合があります。
sql_acl.cc:1456: Internal compiler error in `scan_region', at except.c:2566 Please submit a full bug report.
この問題を修正するには、sql
ディレクトリに変更して gcc
の最後の行を切り取り/貼り付けし、-O3
を -O0
(あるいは-O
オプションがコンパイル行にない場合は
-O0
を gcc
の直ぐ後に追加する)
に変更します。この変更を行った後、ディレクトリの上段に戻り
make を再度実行します。