今更ながら、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