rbenvのruby-buildでreeをインストールしようとしたところコンパイルエラー

今更ながら、RubyEnterpriseの環境を構築することがありました。

Ubuntu 10.04で、rbenv+ruby-buildをインストールして、ree-1.8.7をビルドしようとしたところ、以下のエラーが出ました。

baba@ubuntu:~$ rbenv install ree-1.8.7-2012.02
Downloading http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2012.02.tar.gz...
Installing ruby-enterprise-1.8.7-2012.02...

BUILD FAILED

Inspect or clean up the working tree at /tmp/ruby-build.20120907124126.11684
Results logged to /tmp/ruby-build.20120907124126.11684.log

Last 10 log lines:
/bin/bash ./libtool --tag=CXX --mode=compile /usr/bin/g++ -DHAVE_CONFIG_H -I. -I. -I./src  -I./src  -I'/home/baba/.rbenv/versions/ree-1.8.7-2012.02/include'  -DNO_TCMALLOC_SAMPLES -pthread -DNDEBUG -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc -fno-builtin-calloc -fno-builtin-cfree -fno-builtin-memalign -fno-builtin-posix_memalign -fno-builtin-valloc -fno-builtin-pvalloc  -DNO_FRAME_POINTER -g -O2 -c -o libtcmalloc_minimal_la-tcmalloc.lo `test -f 'src/tcmalloc.cc' || echo './'`src/tcmalloc.cc
libtool: compile:  /usr/bin/g++ -DHAVE_CONFIG_H -I. -I. -I./src -I./src -I/home/baba/.rbenv/versions/ree-1.8.7-2012.02/include -DNO_TCMALLOC_SAMPLES -pthread -DNDEBUG -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc -fno-builtin-calloc -fno-builtin-cfree -fno-builtin-memalign -fno-builtin-posix_memalign -fno-builtin-valloc -fno-builtin-pvalloc -DNO_FRAME_POINTER -g -O2 -c src/tcmalloc.cc  -fPIC -DPIC -o .libs/libtcmalloc_minimal_la-tcmalloc.o
src/tcmalloc.cc:1672:54: エラー: conflicting declaration ‘void* (* __memalign_hook)(size_t, size_t, const void*)’
/usr/include/malloc.h:183:39: エラー: ‘__memalign_hook’ has a previous declaration as ‘void* (* volatile __memalign_hook)(size_t, size_t, const void*)’
src/tcmalloc.cc: 関数 ‘void PrintStats(int)’ 内:
src/tcmalloc.cc:523:47: 警告: warn_unused_result 属性付きで宣言されている ‘ssize_t write(int, const void*, size_t)’ の戻り値を無視しています [-Wunused-result]
src/tcmalloc.cc: 関数 ‘void {anonymous}::ReportLargeAlloc(Length, void*)’ 内:
src/tcmalloc.cc:1010:47: 警告: warn_unused_result 属性付きで宣言されている ‘ssize_t write(int, const void*, size_t)’ の戻り値を無視しています [-Wunused-result]
make: *** [libtcmalloc_minimal_la-tcmalloc.lo] エラー 1

以下のビルドオプションで回避できました。

CONFIGURE_OPTS="--no-tcmalloc" rbenv install ree-1.8.7-2012.02
Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。

高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(15区分 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、CITP、Ruby Programmer Goldなどを保有。

babaの書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ