FreeBSD環境にMySQLインストールしてたらこんなエラーが発生。
$ gmake
~略~
gmake[3]: Entering directory `/usr/home/hoge/src/mysql/mysql-5.0.90/cmd-line-utils/libedit'
source='search.c' object='search.o' libtool=no \
DEPDIR=.deps depmode=gcc /usr/local/bin/bash ../../depcomp \
gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -O3 -DDBUG_OFF -DHAVE_BROKEN_REALPATH -c search.c
In file included from search.c:48:
/usr/include/regex.h:46: syntax error before `regoff_t'
/usr/include/regex.h:46: warning: data definition has no type or storage class
/usr/include/regex.h:56: syntax error before `regoff_t'
gmake[3]: *** [search.o] Error 1
gmake[3]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.90/cmd-line-utils/libedit'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.90/cmd-line-utils'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/home/hoge/src/mysql/mysql-5.0.90'
gmake: *** [all] Error 21
regoff_t でエラーになってる。これはこんな感じでソース修正。
・修正対象ファイル:/cmd-line-utils/libedit/search.c
#if defined(REGEX)
#include <regex.h>
#elif defined(REGEXP)
↓includeを1つ追加。
#if defined(REGEX)
#include <fcntl.h>
#include <regex.h>
#elif defined(REGEXP)
これで無事にコンパイル通過。
あと、phpもついでに5.3.1にしようとしたけど、コンパイルエラーが次から次へと発生して修正するのが億劫になったのと、なんか5.3.1のバグに当たってしまったので断念。結局5.2.12をインストールしました。
作成日:2010/01/31 18:46:21