Mantis - rubydev
Viewing Issue Advanced Details
3770 regular use major always 2009-07-18 19:08 2009-11-04 00:52
chrismay  
bwalton  
normal  
closed  
fixed  
none    
none  
0003770: Unable to compile native gems on virtualised X86 platform
Trying to compile native gems results in the following error:

make
/opt/csw/gcc4/bin/gcc -I. -I/opt/csw/lib/ruby/1.8/i386-solaris2.8
-I/opt/csw/lib/ruby/1.8/i386-solaris2.8 -I. -I/opt/csw/include
-D_FILE_OFFSET_BITS=64 -fPIC -mtune=i68
6 -O2 -pipe -m32 -march=i386 -I/opt/csw/include -fPIC -c fastthread.c
In file included from
/opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.3.3/include-fixed/stdlib.h:27,
                 from /opt/csw/lib/ruby/1.8/i386-solaris2.8/ruby.h:40,
                 from fastthread.c:12:
/usr/include/iso/stdlib_iso.h: In function 'abort':
/usr/include/iso/stdlib_iso.h:107: error: expected declaration
specifiers before '__NORETURN'
/usr/include/iso/stdlib_iso.h:108: error: storage class specified for
parameter 'abs'
/usr/include/iso/stdlib_iso.h:109: error: storage class specified for
parameter 'atexit'
/usr/include/iso/stdlib_iso.h:110: error: storage class specified for
parameter 'atof'
/usr/include/iso/stdlib_iso.h:111: error: storage class specified for
parameter 'atoi'
/usr/include/iso/stdlib_iso.h:112: error: storage class specified for
parameter 'atol'
/usr/include/iso/stdlib_iso.h:114: error: storage class specified for
parameter 'bsearch'
/usr/include/iso/stdlib_iso.h:121: error: storage class specified for
parameter 'calloc'
/usr/include/iso/stdlib_iso.h:122: error: storage class specified for
parameter 'div'
/usr/include/iso/stdlib_iso.h:124: error: expected '=', ',', ';',
'asm' or '__attribute__' before '__NORETURN'

{many many more similar errors omitted}
Platform: 32-bit Solaris 10 u7, on VirtualBox VM (32-bit Ubuntu host)

package versions:
gcc4core 4.3.3,REV=2009.05.07
ruby 1.8.7,REV=2009.04.06_p72
rubydev 1.8.7,REV=2009.04.06_p72
rubygems 1.3.1,REV=2009.02.16

Issue History
2009-07-18 19:08 chrismay New Issue
2009-07-18 19:31 chrismay Note Added: 0006444
2009-08-14 17:35 bwalton Note Added: 0006574
2009-09-20 04:53 bwalton Status new => assigned
2009-09-20 04:53 bwalton Assigned To => bwalton
2009-09-20 14:40 bwalton Note Added: 0006733
2009-10-05 22:48 jheiss Issue Monitored: jheiss
2009-10-28 02:34 bwalton Note Added: 0006894
2009-10-28 16:38 chrismay Note Added: 0006905
2009-10-28 16:46 bwalton Note Added: 0006906
2009-10-29 01:18 bwalton Note Added: 0006908
2009-11-04 00:52 bwalton Note Added: 0006949
2009-11-04 00:52 bwalton Status assigned => closed
2009-11-04 00:52 bwalton Resolution open => fixed

Notes
(0006444)
chrismay   
2009-07-18 19:31   
n.b. the command run here was "gem install mongrel", though other native gems seem to fail in thes same way. The same command appears to work fine on an equivalent non-virtualised solaris 10u7/x64 platform
(0006574)
bwalton   
2009-08-14 17:35   
I am still working on this issue, but slowly as I haven't had time to dig into it yet. Just and FYI so you know it's not forgotten.
(0006733)
bwalton   
2009-09-20 14:40   
I'm most likely going to be rebuilding ruby for solaris 9+ with sun cc. Hopefully this will resolve the problem. No timeline on this yet, but fairly soon, I hope.
(0006894)
bwalton   
2009-10-28 02:34   
I have placed updated ruby packages in testing. These are built with sun studio 11. Can you test these packages and (in conjunction with studio 11) see if the gem build problem persists in your 32-bit solaris 10 environment?

Thanks.
(0006905)
chrismay   
2009-10-28 16:38   
This works _almost_ perfectly for me. Two changes I had to make:

1: Gem looks for the sun compiler in /opt/studio/SOS11/SUNWspro, but on my system it's in /opt/SUNWspro - I _think_ that's the default - at least, I don't remember changing it. I made a symlink and it worked fine.

2: When I ran mongrel, /opt/csw/lib/ruby/gems/mongrel-1.1.5/lib/http11.so could not find libucb.so to link against. I had to set LD_LIBRARY_PATH=/usr/ucblib, then everything was fine

I guess both of these could be fixed, if appropriate, by setting overrides on CC and LD_FLAGS in rbconfig.rb
(0006906)
bwalton   
2009-10-28 16:46   
Option 1 could be worked around by providing /opt/csw/lib/ruby/1.8/$arch-solaris2.8/rbconfig.rb.LOCAL with the required alterate path to CC and then using the cswrbconfig tool to make that the default rbconfig.rb used. (I don't want sos11 on all of my systems and prefer gcc4 for most things, so I provided an ability to easily flip flop.)

Option 2 can be corrected at build time on my side, I think. I'll look at that tonight.

Thanks for the quick feedback and sorry for the long delay on this.
(0006908)
bwalton   
2009-10-29 01:18   
I haven't tested myself on sol10x86/32bit yet, but the mongrel gems I've built with sos11 don't link to libucb.so. Can you determine how/why that library is being used.

I'll try to fire up my VM tomorrow and test this too.
(0006949)
bwalton   
2009-11-04 00:52   
Updated packages with sun studio 11 as default compiler pushed for release.