ruby 2.0.0 incorrectly detects debugflags on SmartOS / gcc 4.7
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 accvfuncdliterate_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.
#4 Updated by Matt Connolly 12 months 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: https://gist.github.com/mattconnolly/5411998
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.
#5 Updated by Matt Connolly 12 months ago
Actually, I just found this page: http://docs.oracle.com/cd/E19082-01/819-0690/chapter4-29405/index.html
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?
#7 Updated by Nobuyoshi Nakada 12 months 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.
configure.in: -g and -fstack-protector flags can't work
together on SmartOS
* configure.in (stack_protector): control use of -fstack-protector.
* configure.in (debugflags): let -fstack-protector precede and disable
debugflags, because they can't work together on SmartOS. [Bug #8268]