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
を呼び出します。mysqld_safe
を参照してください。
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
