factory_class.c: In function ‘Factory_register_type’: factory_class.c:164:16: warning: implicit declaration of function ‘rb_num2int’ [-Wimplicit-function-declaration] ext_type = rb_num2int(argv[0]); ^ i686-pc-linux-gnu-gcc -I. -I/usr/include/ruby-2.1.0/i686-linux -I/usr/include/ruby-2.1.0/ruby/backward -I/usr/include/ruby-2.1.0 -I. -DHAVE_RUBY_ST_H -DHAVE_ST_H -DHAVE_RB_STR_REPLACE -DHAVE_RB_INTERN_STR -DHAVE_RB_STR_INTERN -DHAVE_RB_BLOCK_LAMBDA -DHAVE_RB_HASH_DUP -DHAVE_RB_HASH_CLEAR -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=core2 -mfpmath=sse -mmmx -msse -msse2 -mssse3 -pipe -fno-strict-aliasing -fPIC -I.. -Wall -O3 -g -std=gnu99 -o unpacker_ext_registry.o -c unpacker_ext_registry.c i686-pc-linux-gnu-gcc -I. -I/usr/include/ruby-2.1.0/i686-linux -I/usr/include/ruby-2.1.0/ruby/backward -I/usr/include/ruby-2.1.0 -I. -DHAVE_RUBY_ST_H -DHAVE_ST_H -DHAVE_RB_STR_REPLACE -DHAVE_RB_INTERN_STR -DHAVE_RB_STR_INTERN -DHAVE_RB_BLOCK_LAMBDA -DHAVE_RB_HASH_DUP -DHAVE_RB_HASH_CLEAR -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=core2 -mfpmath=sse -mmmx -msse -msse2 -mssse3 -pipe -fno-strict-aliasing -fPIC -I.. -Wall -O3 -g -std=gnu99 -o packer_class.o -c packer_class.c i686-pc-linux-gnu-gcc -I. -I/usr/include/ruby-2.1.0/i686-linux -I/usr/include/ruby-2.1.0/ruby/backward -I/usr/include/ruby-2.1.0 -I. -DHAVE_RUBY_ST_H -DHAVE_ST_H -DHAVE_RB_STR_REPLACE -DHAVE_RB_INTERN_STR -DHAVE_RB_STR_INTERN -DHAVE_RB_BLOCK_LAMBDA -DHAVE_RB_HASH_DUP -DHAVE_RB_HASH_CLEAR -D_FILE_OFFSET_BITS=64 -fPIC -O2 -march=core2 -mfpmath=sse -mmmx -msse -msse2 -mssse3 -pipe -fno-strict-aliasing -fPIC -I.. -Wall -O3 -g -std=gnu99 -o buffer.o -c buffer.c packer_class.c: In function ‘Packer_write_ext’: packer_class.c:166:20: warning: implicit declaration of function ‘rb_num2int’ [-Wimplicit-function-declaration] int ext_type = rb_num2int(type); ^ rm -f msgpack.so i686-pc-linux-gnu-gcc -shared -o msgpack.so unpacker_class.o extension_value_class.o core_ext.o rbinit.o unpacker.o packer.o rmem.o packer_ext_registry.o buffer_class.o factory_class.o unpacker_ext_registry.o packer_class.o buffer.o -L. -L/usr/lib -L. -Wl,-O1 -Wl,--as-needed -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,--no-undefined -lruby21 -lpthread -lgmp -ldl -lcrypt -lm -lc unpacker_class.o: In function `Unpacker_register_type': /var/tmp/portage/dev-ruby/msgpack-0.7.4/work/ruby21/msgpack-0.7.4/ext/msgpack/unpacker_class.c:376: undefined reference to `rb_num2int' factory_class.o: In function `Factory_register_type': /var/tmp/portage/dev-ruby/msgpack-0.7.4/work/ruby21/msgpack-0.7.4/ext/msgpack/factory_class.c:164: undefined reference to `rb_num2int' packer_class.o: In function `Packer_register_type': /var/tmp/portage/dev-ruby/msgpack-0.7.4/work/ruby21/msgpack-0.7.4/ext/msgpack/packer_class.c:277: undefined reference to `rb_num2int' packer_class.o: In function `Packer_write_ext': /var/tmp/portage/dev-ruby/msgpack-0.7.4/work/ruby21/msgpack-0.7.4/ext/msgpack/packer_class.c:166: undefined reference to `rb_num2int' collect2: error: ld returned 1 exit status Makefile:232: recipe for target 'msgpack.so' failed make: *** [msgpack.so] Error 1 make: Leaving directory '/var/tmp/portage/dev-ruby/msgpack-0.7.4/work/ruby21/msgpack-0.7.4/ext/msgpack'
Created attachment 434242 [details] full build log
Please post the output of emerge --info =msgpack-0.7.4. Have you tried versions >0.7.4?
Created attachment 434954 [details] emerge --info =msgpack-0.7.4 output No, error still the same.
(In reply to Anton Kochkov from comment #3) > No, error still the same. Ah, this is an x86-specific bug (or perhaps any 32-bit architecture) that triggers our handling of -Wl,--no-undefined on there due to a difference in inlining or not. This should now be fixed for msgpack-0.7.6 (and msgpack-0.7.4 since that is the last version with an x86 keyword).