On Mon, 02 Jun 2003 08:43:50 -0400, Tim Hunter wrote:

> On Sun, 1 Jun 2003 01:34:19 +0900, Jim Freeze <jim / freeze.org> wrote:
> 
>>On Wednesday, 28 May 2003 at  0:52:35 +0900, Jim Freeze wrote:
>>
>>BTW, I got the latest from cvs yesterday and ruby built right out of the
>>box without any special tweeks on solaris.
>> 
>> 
> To clarify, the problem I reported was not that Ruby itself wouldn't
> build on Solaris, it was that I couldn't build a C extension on Solaris
> using Ruby 1.8.0preview2 built with --enable-shared.
> 
> I am able to build this extension using Ruby 1.6.8 both with and without
> --enable-shared. I will try building it using CVS HEAD this evening,
> along with Matz's suggestion of:
> 
>    LDFLAGS="-Wl,-E,-dy"
> 
> in configure.in.

I am both relieved and sorry to say that I cannot reproduce this problem
with either 1.6.8 or CVS HEAD. On Solaris 2.9, I have successfully built
my extension with both versions of Ruby. Both versions were built using
the --enable-shared option. I did not try 1.8.0preview2 again, although
I'll be glad to if somebody thinks it's worth doing. In both cases I used
Ruby "out-of-the-box". I did not change configure.in.

I encountered two minor problems building Ruby from CVS HEAD. Here are a
couple of snippets from make's output. From the make step I get:

compiling bigdecimal
gcc -V 3.3 -fPIC -O2 -fPIC -I. -I/home/thunter/ruby -I/home/thunter/ruby
-I/home/thunter/ruby/ext/bigdecimal -c bigdecimal.c In file included from
/home/thunter/ruby/ruby.h:21,
                 from bigdecimal.c:45:
/home/thunter/ruby/config.h:16:1: warning: "_FILE_OFFSET_BITS" redefined
In file included from /usr/include/iso/ctype_iso.h:30,
                 from /usr/include/ctype.h:18,
                 from bigdecimal.c:33:
/usr/include/sys/feature_tests.h:96:1: warning: this is the location of
the previous definition

compiling iconv
gcc -V 3.3 -fPIC -O2 -fPIC -I. -I/home/thunter/ruby -I/home/thunter/ruby
-I/home/thunter/ruby/ext/iconv -DHAVE_ICONV_H -c iconv.c iconv.c: In
function `iconv_try':
iconv.c:154: warning: passing arg 2 of `libiconv' from incompatible
pointer type

compiling readline
gcc -V 3.3 -fPIC -O2 -fPIC -DREADLINE_21_OR_LATER -I. -I/home/thunter/ruby
-I/home/thunter/ruby -I/home/thunter/ruby/ext/readline
-DHAVE_READLINE_READLINE_H -DHAVE_READLINE_HISTORY_H -c readline.c In file
included from /home/thunter/ruby/ruby.h:21,
                 from readline.c:12:
/home/thunter/ruby/config.h:16:1: warning: "_FILE_OFFSET_BITS" redefined
In file included from /usr/include/iso/stdio_iso.h:35,
                 from
                 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/include/stdio.h:36,
                 from readline.c:5:
/usr/include/sys/feature_tests.h:96:1: warning: this is the location of
the previous definition



I configured Ruby specifying a non-default prefix. Some of the extensions
still tried to install in the default location. In the interests of
conserving bandwith I'll only list one:

installing curses
curses.so -> /usr/local/lib/ruby/1.8/sparc-solaris2.9/curses.so
/home/thunter/ruby/lib/ftools.rb:23:in `initialize': Permission denied -
/usr/local/lib/ruby/1.8/sparc-solaris2.9/curses.so (Errno::EACCES)
        from /home/thunter/ruby/lib/ftools.rb:23:in `open' from
        /home/thunter/ruby/lib/ftools.rb:23:in `syscopy' from
        /home/thunter/ruby/lib/ftools.rb:43:in `cp' from
        /home/thunter/ruby/lib/ftools.rb:160:in `install' from -e:1
*** Error code 1
make: Fatal error: Command failed for target
`/usr/local/lib/ruby/1.8/sparc-solaris2.9/curses.so' Current working
directory /home/thunter/ruby/ext/curses

If anybody is interested I can provide the full list.