Segfault in Timeout module when compiled with GCC 4.7
|Target version:||Ruby 1.8.7|
|ruby -v:||ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-linux]|
As described in a post (https://bbs.archlinux.org/viewtopic.php?id=139547) on the ArchLinux forum, there's an issue with Ruby 1.8.7 when compiled with GCC 4.7 on a modern Linux system. Ruby segfault as soon as we try to install a gem, although it seems to work fine for trivial things. Here's an output of the error message:
/opt/ruby1.8/lib/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-linux]
It can be circumvented by installing older versions of GCC but this is a very time consuming operation and it's not possible one every systems.
#1 Updated by Heesob Park almost 2 years ago
I can reproduce this issue on Arch Linux 3.3.4.
I guess the over-optimization of GCC 4.7 caused the segfault.
Try to build Ruby 1.8.7 with the following config options:
./configure CFLAGS="-O2 -fno-tree-dce -fno-optimize-sibling-calls"
Don't ask me why. I just found it by trial and error.