Digital Unix で egcs 1.1.2 を使用する際、DEC 上の egcs に幾つかの重大なバグがあるので gcc 2.95.2 にアップグレードする必要があります。
Digital Unix
でスレッド化したプログラムをコンパイルするには、説明資料では
-pthread
オプションを
cc および cxx
および -lmach -lexc
ライブラリ
(-lpthread
に加えて)
使用することを勧めています。configure
を以下のように実行します。
CC="cc -pthread" CXX="cxx -pthread -O" \ ./configure --with-named-thread-libs="-lpthread -lmach -lexc -lc"
mysqld をコンパイルする際、以下のような警告が表示される場合があります。
mysqld.cc: In function void handle_connections()': mysqld.cc:626: passing long unsigned int *' as argument 3 of accept(int,sockadddr *, int *)'
これらの警告は無視しても問題ありません。これは configure が警告ではなくエラーだけを検知するために起こります。
コマンドラインからサーバを直接起動すると、ログアウトしたときにサーバが停止する場合があります。(ログアウトすると、未処理のプロセスが
SIGHUP
信号を受信します。.)その場合、サーバを以下のように起動してみます。
nohup mysqld [options
] &
nohup
はそれに続くコマンドに端末から送信された
SIGHUP
信号を無視させます。その代わりに、mysqld_safe
を実行してサーバを起動し、それが
nohup を使用して
mysql
を呼び出します。項4.3.1. 「mysqld_safe — MySQL サーバ スタートアップ スクリプト」
参照。
mysys/get_opt.c
をコンパイル中に問題が発生したら、#define
_NO_PROTO
行をそのファイルに起動から削除します。
Compaq の CC コンパイラを使用している場合、以下の configure 行が作用します。
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/local/mysql \ --with-low-memory \ --enable-large-files \ --enable-shared=yes \ --with-named-thread-libs="-lpthread -lmach -lexc -lc" gnumake
以下に示すように共有ライブラリでコンパイル中に libtool で問題があった場合、mysql のリンク中に、以下のコマンドを発行してこの問題を回避します。
cd mysql /bin/sh ../libtool --mode=link cxx -pthread -O3 -DDBUG_OFF \ -O4 -ansi_alias -ansi_args -fast -inline speed \ -speculate all \ -arch host -DUNDEF_HAVE_GETHOSTBYNAME_R \ -o mysql mysql.o readline.o sql_string.o completion_hash.o \ ../readline/libreadline.a -lcurses \ ../libmysql/.libs/libmysqlclient.so -lm cd .. gnumake gnumake install scripts/mysql_install_db