dev-lang/ruby-1.8.6_p230 fails to compile due to undefined reference in parse.c: # USE="berkdb cjk doc emacs gdbm ipv6 socks5 ssl threads tk" emerge ruby [...] i686-pc-linux-gnu-ar rcu libruby18-static.a array.o bignum.o class.o compar.o dir.o dln.o enum.o error.o eval.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o prec.o random.o range.o re.o regex.o ruby.o signal.o sprintf.o st.o string.o struct.o time.o util.o variable.o version.o dmyext.o i686-pc-linux-gnu-gcc -march=pentium-m -O2 -pipe -frename-registers -fno-strict-aliasing -fPIC -DRUBY_EXPORT -D_GNU_SOURCE=1 -L. -Wl,-O1 -rdynamic -Wl,-export-dynamic -Wl,-O1 main.o libruby18-static.a -lpthread -ldl -lcrypt -lm -o miniruby libruby18-static.a(parse.o): In function `ruby_yyerror': parse.c:(.text+0x32d1): undefined reference to `re_mbc_startpos' parse.c:(.text+0x3303): undefined reference to `re_mbc_startpos' collect2: ld returned 1 exit status make: *** [miniruby] Error 1 # emerge --info Portage 2.2_rc1 (default-linux/x86/2007.0/desktop, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.25-gentoo-r4.6 i686) ================================================================= System uname: Linux-2.6.25-gentoo-r4.6-i686-Intel-R-_Pentium-R-_M_processor_1.60GHz-with-glibc2.0 Timestamp of tree: Sun, 29 Jun 2008 22:31:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r13, 2.5.2-r5 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 dev-util/confcache: 0.4.2-r1 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.5 sys-apps/sandbox: 1.2.18.1-r3 sys-devel/autoconf: 2.13, 2.62 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.16.1-r3, 2.17-r2, 2.18-r2 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 2.2.4 virtual/os-headers: 2.6.25-r4 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium-m -O2 -pipe -frename-registers" CHOST="i686-pc-linux-gnu"
Created attachment 158901 [details] complete build log
The same is here on ~amd64. Disabling USE flag "cjk" will compile fine. With this flag enabled, accompanied package oniguruma-2.5.9 preconfigures Ruby, making possibly wrong codes from the original ones.
Indeed cjk seems to be broken due to incompatibilities between the new ruby 1.8.6 code and oniguruma 2.5.9. Since p230 is an in-between release anyway my suggestion is to wait until a newer release of ruby 1.8.6 is made (which should be soon). At that point oniguruma might work again since some changes also got rolled back, or we may need a newer version of oniguruma at that point.
*** Bug 231054 has been marked as a duplicate of this bug. ***
I have just 'fixed' this by removing support for the cjk USE flag for ruby-1.8.6_p230. We'll need a newer version of oniguruma to appear that is compatible with the new 1.8.6 release, or perhaps patch the current oniguruma to work with the new 1.8.6 release. At least removing the USE flag will avoid problems for people who have the cjk USE flag set but don't actually need the support in ruby. Given that p230 is an intermediate release with a number of problems (most notably a huge memory leak) it would be best to wait for the next 1.8.6 release (hopefully soon) and then try to fix oniguruma against that.