Bug #8268


ruby 2.0.0 incorrectly detects debugflags on SmartOS / gcc 4.7

Added by mattconnolly (Matt Connolly) over 8 years ago. Updated over 8 years ago.

Target version:
ruby -v:


When compiling ruby from source on Smart OS, which uses gcc-4.7, the configure script fails to correctly detect a compatible debug flag. It chooses "-ggdb3" which doesn't work, and this causes all of the conftest.c compilations to fail at build without executing.

Running configure like "./configure ac_cv_func_dl_iterate_phdr=no" fails to complete the configure script.

Running configure like this: ./configure ac_cv_func_dl_iterate_phdr=no debugflags="-ggdb" works. Configure completes and ruby compiles and runs fine.

I'm not sure if this is a SmartOS specific problem, or gcc 4.7, so I'm writing it here to see if others have seen the same thing.

Related issues

Related to Ruby master - Bug #5384: Ruby 1.9.3-RC1 Fails to Compile on Illumos (OpenSolaris)Third Party's Issue10/01/2011Actions

Updated by naruse (Yui NARUSE) over 8 years ago

What is $target_os in configure on SmartOS?

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

Could you show your config.log?

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

At least, gcc 4.7 on Debian 7 and MacPorts work fine with -ggdb3, so it's not gcc 4.7 specific.

Updated by mattconnolly (Matt Connolly) over 8 years ago

Hello naruse and nobu, thank you for looking into this issue.

I have recorded a log of attempting to build ruby-2.0.0-p0 in a clean SmartOS instance at this gist:

This includes config.log. At the end I've tried a very simple .c program to check gcc.

The target os is 'solaris2.11'

I'm really not an expert at configure scripts and using autoconf, etc. I will help as much as I can.

Updated by mattconnolly (Matt Connolly) over 8 years ago

Actually, I just found this page:

It appears that using CFLAGS="-R -fPIC" might help...

That makes configure succeed, but make fails with missing symbol "signbit". Possibly a separate issue.

Are there any other systems that use "-R" or "-fPIC" compiler flags?

Updated by mattconnolly (Matt Connolly) over 8 years ago

I can add "rb_cv_have_signbit=no" to workaround the make error for now.

Actions #7

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r40364.
Matt, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you. -g and -fstack-protector flags can't work

together on SmartOS

  • (stack_protector): control use of -fstack-protector.
  • (debugflags): let -fstack-protector precede and disable debugflags, because they can't work together on SmartOS. [Bug #8268]

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

Seems failing with -ggdb3 and -fstack-protector.
Setting CFLAGS excludes $debugflags from it.
Try r40364.


Also available in: Atom PDF