From: "ngoto (Naohisa Goto)" Date: 2013-07-18T18:25:29+09:00 Subject: [ruby-dev:47526] [ruby-trunk - Bug #8655][Open] シンボル名 Init_pack が複数ファイルで定義されている Issue #8655 has been reported by ngoto (Naohisa Goto). ---------------------------------------- Bug #8655: シンボル名 Init_pack が複数ファイルで定義されている https://bugs.ruby-lang.org/issues/8655 Author: ngoto (Naohisa Goto) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.1.0dev (2013-07-17) [sparc64-solaris2.10] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN Solarisにて、make test-all すると、以下のエラーが出てテストが実行できません。 % make test-all ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems" -v /XXXXXXXXXXXXXXXXXXXXXXX/lib/rake/ext/module.rb:36:in `const_missing': uninitialized constant Integer::INTEGER_PACK_MSWORD_FIRST (NameError) Init_pack という名前の関数が pack.c と ext/-test-/bignum/pack.c の2か所に存在し、 後からrequireした "-test/bignum.so" の Init_pack() が呼ばれないのが原因と思います。 % git grep -n Init_pack ext/-test-/bignum/pack.c:49:Init_pack(VALUE klass) pack.c:2003:Init_pack(void) ext/-test-/bignum/pack.c のファイル名とInit_の関数名を変更すれば解決すると思います。 (もちろん pack.c 側を変えても構いませんが、テスト側を変更するほうが自然と思います) -- http://bugs.ruby-lang.org/