Forum: Ruby Compilation and installation of Ruby 1.9

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Chirag M. (Guest)
on 2007-07-11 18:07
(Received via mailing list)

This message is regarding the errors and warnings I got while
compiling Ruby 1.9. I have downloaded the Ruby 1.9 source code from
the link and I try to
compile the code but I was getting many compile time errors. I have
done some changes in configuration file and source code to solve those
errors and warnings but still I am getting few errors. Please give
your feedback so I can successfully compile and install Ruby 1.9.
Below is the detail description about errors and warnings.

Machine/OS information for my machine:
OS: GNU/Linux
Kernel: 2.4.21-40.ELsmp
Kernel Version: #1 SMP Thu Feb 2 22:22:39 EST 2006
Processor: i686
Hardware-platform - i386

Below are details about errors and warnings.

First I got this error:
rm -f ruby
/opt/ruby/ruby-1.8.6/ruby ./tool/insns2vm.rb --srcdir="."
./tool/insns2vm.rb:3:in `require': no such file to load -- optparse
        from ./tool/insns2vm.rb:3
make: *** [] Error 1
I export RUBYLIB="./lib" to solve this error.

The next error I got was:
rm -f ruby
ruby ./tool/insns2vm.rb --srcdir="."
./tool/insns2vm.rb:7:in `require': ./tool/../lib/vm/instruction.rb:
105: syntax error (SyntaxError)
      load_insns_def opts[:"insns.def"] || 'insns.def'
./tool/../lib/vm/instruction.rb:107: syntax error
      load_opt_operand_def opts[:"opope.def"] || 'opt_operand.def'
./tool/../lib/vm/instruction.rb:108: syntax error
      load_insn_unification_def opts[:"unif.def"] ||
./tool/../lib/vm/instruction.rb:114: syntax error
    %w[use_const verbose].each do |attr|
./tool/../lib/vm/instruction.rb:115: syntax error
./tool/../lib/vm/instruction.rb:144: syntax error do |f|
./tool/../lib/vm/instruction.rb:145: syntax error
./tool/../lib/vm/instruction.rb:150: syntax error
        from ./tool/insns2vm.rb:7
make: *** [] Error 1
The reason for this error was the version of ruby. The ruby binary "/
usr/bin/ruby" having version ruby 1.6.8 (2002-12-24) [i386-linux-gnu].
To solve it: The ruby 1.8.6 is already installed on my machine. I have
changed the "BASERUBY = /opt/ruby/ruby-1.8.6/ruby" (Earlier It was
"BASERUBY = ruby") at line no 1661 in file and follow all
steps of compilation from the beginning (Means regenerate configure
and then Makefile).

The next error I got was:
In file included from thread.c:150: directives may not be used inside a macro
argument unterminated argument list invoking macro
In file included from thread.c:150: syntax error before ')' token
thread.c:280: warning: `thread_start_func_2' was declared implicitly
`extern' and later `static' warning: previous declaration of
make: *** [thread.o] Error 1
To solve this error, I have commented line no 90, 91 and 92 in file
Below is a snapshot of changed file.
NOINLINE(static int thread_start_func_2(rb_thread_t *th, VALUE
//#ifdef __ia64
//  , VALUE *register_stack_start

I was getting a below warning for many of the files:
yarvcore.h:614: warning: `fastcall' attribute directive ignored
To solve this warning, I have done below changes at line no 614 in
yarvcore.h file.
Snapshot before change for the line 614 in yarvcore.h file:
typedef rb_control_frame_t *
     (FUNC_FASTCALL(*rb_insn_func_t))(rb_thread_t *,
rb_control_frame_t *);

Snapshot after change for the line 614 in yarvcore.h file:
typedef rb_control_frame_t * (*rb_insn_func_t)(rb_thread_t *,
rb_control_frame_t *);

Now I am getting this error and I can not able to solve it:
rbconfig.rb unchanged
`method_missing': private method `open' called for false:FalseClass
        from /users/chiragm/UnoRuby/ruby_1.9_sourcecode/lib/
fileutils.rb:1026:in `rescue in block in touch'
        from /users/chiragm/UnoRuby/ruby_1.9_sourcecode/lib/
fileutils.rb:1022:in `block in touch'
        from /users/chiragm/UnoRuby/ruby_1.9_sourcecode/lib/
fileutils.rb:1020:in `each'
        from /users/chiragm/UnoRuby/ruby_1.9_sourcecode/lib/
fileutils.rb:1020:in `touch'
        from ./mkconfig.rb:188:in `<main>'
make: *** [.rbconfig.time] Error 1
This topic is locked and can not be replied to.