ruby-1.9.3-p385以降のインストールでバグあり

LINEで送る
Pocket

ruby-1.9.3-p385以降のバージョンでビルドする時にエラーが発生する。

エラーの内容はこんな感じ


-> http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz
Installing ruby-1.9.3-p392...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/34/19g8zvyd0nb4dvdfb923vl3c0000gn/T/ruby-build.20130226111345.39520
Results logged to /var/folders/34/19g8zvyd0nb4dvdfb923vl3c0000gn/T/ruby-build.20130226111345.39520.log

Last 10 log lines:
compiling safe.c
compiling signal.c
compiling sprintf.c
compiling st.c
st.c:520:35: error: implicit conversion loses integer precision: 'st_index_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
i = table->num_entries++;
~ ~~~~~~~~~~~~~~~~~~^~
1 error generated.

このエラーは

-Wshorten-64-to-32

の警告と警告レベルをエラーとして扱う

-Werror

により発生する。

対応策は単純にビルド時に警告を無視するように指定するのみ。

具体的に言うと以下のコマンドを実行してからビルドする。


$ export CFLAGS=-Wno-error=shorten-64-to-32

例えば以下のような感じ


$ export CFLAGS=-Wno-error=shorten-64-to-32

$ export CONFIGURE_OPTS="--with-readline-dir=/usr/local --with-openssl-dir=/usr/local"

$ rbenv install 1.9.3-p392

ちなみに2行目はOSXでのデフォルトopensslやreadlineを使うと失敗するので、brew installした物を使うための指定。

以上

LINEで送る
Pocket