Issue #14651 has been updated by nobu (Nobuyoshi Nakada).

Status changed from Open to Feedback

Seems the check for `rb_sym2str` failed.
Please show ext/bigdecimal/mkmf.log file.


----------------------------------------
Bug #14651: Building 2.5.1p57 with -flto fails on gcc 5.4.0
https://bugs.ruby-lang.org/issues/14651#change-71313

* Author: glebm (Gleb Mazovetskiy)
* Status: Feedback
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
~~~ bash
cflags='-march=native -flto -pipe' rvm reinstall 2.5.1 --disable-binary
~~~


~~~ bash
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.9' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 
~~~

make.log attached, relevant error message:

~~~ bash
In file included from bigdecimal.c:13:0:
bigdecimal.h:139:1: error: static declaration of °∆rb_sym2str°« follows non-static declaration
 rb_sym2str(VALUE sym)
 ^
In file included from bigdecimal.h:14:0,
                 from bigdecimal.c:13:
../.././include/ruby/ruby.h:1735:7: note: previous declaration of °∆rb_sym2str°« was here
 VALUE rb_sym2str(VALUE);
       ^
bigdecimal.c:108:1: error: static declaration of °∆rb_rational_num°« follows non-static declaration
 rb_rational_num(VALUE rat)
 ^
In file included from ../.././include/ruby/ruby.h:2040:0,
                 from bigdecimal.h:14,
                 from bigdecimal.c:13:
../.././include/ruby/intern.h:171:7: note: previous declaration of °∆rb_rational_num°« was here
 VALUE rb_rational_num(VALUE rat);
       ^
bigdecimal.c: In function °∆rb_rational_num°«:
bigdecimal.c:113:50: error: macro "rb_funcall" requires 4 arguments, but only 2 given
     return rb_funcall(rat, rb_intern("numerator"));
                                                  ^
bigdecimal.c:113:12: warning: return makes integer from pointer without a cast [-Wint-conversion]
     return rb_funcall(rat, rb_intern("numerator"));
            ^
bigdecimal.c: At top level:
bigdecimal.c:120:1: error: static declaration of °∆rb_rational_den°« follows non-static declaration
 rb_rational_den(VALUE rat)
 ^
In file included from ../.././include/ruby/ruby.h:2040:0,
                 from bigdecimal.h:14,
                 from bigdecimal.c:13:
../.././include/ruby/intern.h:172:7: note: previous declaration of °∆rb_rational_den°« was here
 VALUE rb_rational_den(VALUE rat);
       ^
bigdecimal.c: In function °∆rb_rational_den°«:
bigdecimal.c:125:52: error: macro "rb_funcall" requires 4 arguments, but only 2 given
     return rb_funcall(rat, rb_intern("denominator"));
                                                    ^
bigdecimal.c:125:12: warning: return makes integer from pointer without a cast [-Wint-conversion]
     return rb_funcall(rat, rb_intern("denominator"));
~~~

---Files--------------------------------
make.log (36.7 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>