Hi
This mail 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
http://svn.ruby-lang.org/repos/ruby/trunk/ 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 look in detail description
about errors and warnings below and give reply about removing those
errors and warnings so I can successfully compile and install Ruby 1.9.
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
(LoadError)
from ./tool/insns2vm.rb:3
make: *** [optinsn.inc] 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"] || 'opt_insn_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
vpath.open(file) do |f|
^
./tool/../lib/vm/instruction.rb:145: syntax error
./tool/../lib/vm/instruction.rb:150: syntax error
from ./tool/insns2vm.rb:7
make: *** [optinsn.inc] 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 configure.in 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:
thread_pthread.ci:90:1: directives may not be used inside a macro
argument
thread_pthread.ci:89:65: unterminated argument list invoking macro
"NOINLINE"
In file included from thread.c:150:
thread_pthread.ci:93: syntax error before ')' token
thread.c:280: warning: `thread_start_func_2' was declared implicitly
`extern' and later `static'
thread_pthread.ci:114: warning: previous declaration of
`thread_start_func_2'
make: *** [thread.o] Error 1
---
To solve this error, I have commented line no 90, 91 and 92 in file
thread_pthread.ci.
Below is a snapshot of changed thread_pthread.ci file.
__________
NOINLINE(static int thread_start_func_2(rb_thread_t *th, VALUE
*stack_start
//#ifdef __ia64
// , VALUE *register_stack_start
//#endif
));
__________
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
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1026:in
`method_missing': private method `open' called for false:FalseClass
(NoMethodError)
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1026:in
`rescue in block in touch'
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1022:in
`block in touch'
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1020:in
`each'
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1020:in
`touch'
from ./mkconfig.rb:188:in `<main>'
make: *** [.rbconfig.time] Error 1
---
--
Posted via http://www.ruby-forum.com/.
Hi,
At Wed, 11 Jul 2007 18:15:13 +0900,
Chirag Mistry wrote in [ruby-talk:258763]:
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
What's the version of gcc?
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
(LoadError)
from ./tool/insns2vm.rb:3
How did you install that ruby without optparse.rb?
The next error I got was:
---
In file included from thread.c:150:
thread_pthread.ci:90:1: directives may not be used inside a macro
argument
thread_pthread.ci:89:65: unterminated argument list invoking macro
"NOINLINE"
I haven't seen this error, it may be a gcc version issue.
Anyway, I hope this has been fixed now.
I was getting a below warning for many of the files:
---
yarvcore.h:614: warning: `fastcall' attribute directive ignored
---
What's the version of autoconf? The warning should be checked
in configure.in.
···
--
Nobu Nakada
Yukihiro Matsumoto wrote:
Hi,
>./tool/insns2vm.rb:7:in `require': ./tool/../lib/vm/instruction.rb:105:
>syntax error (SyntaxError)
> load_insns_def opts[:"insns.def"] || 'insns.def'
Upgrade your ruby before compiling trunk.
matz.
Hi
Thanks for the reply. I have installed ruby 1.8.6 which is
installed under "/usr/local". The older version ruby 1.6.8 is still in
"/usr". the "ruby" command now upgraded with /usr/local/bin/ruby which
latest ruby 1.8.6. But still I am getting below error. Please give your
feedback.
···
In message "Re: Problem in compilation and installation of Ruby 1.9" > on Wed, 11 Jul 2007 18:15:13 +0900, Chirag Mistry > <chirag80bece@gmail.com> writes:
---
rbconfig.rb unchanged
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1026:in
`method_missing': private method `open' called for false:FalseClass
(NoMethodError)
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1026:in
`rescue in block in touch'
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1022:in
`block in touch'
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1020:in
`each'
from
/users/username1/UnoRuby/ruby_1.9_sourcecode/lib/fileutils.rb:1020:in
`touch'
from ./mkconfig.rb:188:in `<main>'
make: *** [.rbconfig.time] Error 1
---
--
Posted via http://www.ruby-forum.com/\.
Nobuyoshi Nakada wrote:
Hi,
At Wed, 11 Jul 2007 18:15:13 +0900,
Chirag Mistry wrote in [ruby-talk:258763]:
Machine/OS information for my machine:
OS: GNU/Linux
What's the version of gcc?
It is gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-54)
How did you install that ruby without optparse.rb?
I have installed ruby 1.8.6.
I haven't seen this error, it may be a gcc version issue.
Anyway, I hope this has been fixed now.
What's the version of autoconf? The warning should be checked
in configure.in.
the version of autoconf is autoconf (GNU Autoconf) 2.57
for this I have change line no 4 with "AC_PREREQ(2.57)" in configure.in
file. Earlier this line was AC_PREREQ(2.13).
···
--
Posted via http://www.ruby-forum.com/\.
Hi,
At Fri, 13 Jul 2007 00:00:30 +0900,
Chirag Mistry wrote in [ruby-talk:259093]:
> What's the version of autoconf? The warning should be checked
> in configure.in.
the version of autoconf is autoconf (GNU Autoconf) 2.57
for this I have change line no 4 with "AC_PREREQ(2.57)" in configure.in
file. Earlier this line was AC_PREREQ(2.13).
2.13? From where did you salvaged such old configure.in?
It is AC_PREREQ(2.58) in the SVN repository.
···
--
Nobu Nakada
Nobuyoshi Nakada wrote:
Hi,
At Fri, 13 Jul 2007 00:00:30 +0900,
Chirag Mistry wrote in [ruby-talk:259093]:
> What's the version of autoconf? The warning should be checked
> in configure.in.
the version of autoconf is autoconf (GNU Autoconf) 2.57
for this I have change line no 4 with "AC_PREREQ(2.57)" in configure.in
file. Earlier this line was AC_PREREQ(2.13).
2.13? From where did you salvaged such old configure.in?
It is AC_PREREQ(2.58) in the SVN repository.
Hi
I have confirmed it. I might made mistake. Earlier it was
AC_PREREQ(2.58). Then we have changed it to AC_PREREQ(2.57).
···
--
Posted via http://www.ruby-forum.com/\.
Yukihiro Matsumoto wrote:
Hi,
>> Upgrade your ruby before compiling trunk.
> Thanks for the reply. I have installed ruby 1.8.6 which is
>installed under "/usr/local". The older version ruby 1.6.8 is still in
>"/usr". the "ruby" command now upgraded with /usr/local/bin/ruby which
>latest ruby 1.8.6. But still I am getting below error. Please give your
>feedback.
So your build process must be kicking old ruby (1.6.8?). Try checking
your PATH priority or specify BASERUBY for your make, e.g.
make BASERUBY=/usr/local/bin/ruby
matz.
Hi Matz
I tried it also but it is still not wroking. I am getting same
error.
···
In message "Re: Problem in compilation and installation of Ruby 1.9" > on Thu, 12 Jul 2007 23:52:14 +0900, Chirag Mistry > <chirag80bece@gmail.com> writes:
--
Posted via http://www.ruby-forum.com/\.
Hi,
At Fri, 13 Jul 2007 14:12:13 +0900,
Chirag Mistry wrote in [ruby-talk:259246]:
> 2.13? From where did you salvaged such old configure.in?
> It is AC_PREREQ(2.58) in the SVN repository.
Hi
I have confirmed it. I might made mistake. Earlier it was
AC_PREREQ(2.58). Then we have changed it to AC_PREREQ(2.57).
The purpose of it is exactly to get rid of those warnings.
You can change anything, but it's at your own risk.
···
--
Nobu Nakada
Chirag Mistry wrote:
Yukihiro Matsumoto wrote:
Hi,
>> Upgrade your ruby before compiling trunk.
> Thanks for the reply. I have installed ruby 1.8.6 which is
>installed under "/usr/local". The older version ruby 1.6.8 is still in
>"/usr". the "ruby" command now upgraded with /usr/local/bin/ruby which
>latest ruby 1.8.6. But still I am getting below error. Please give your
>feedback.
So your build process must be kicking old ruby (1.6.8?). Try checking
your PATH priority or specify BASERUBY for your make, e.g.
make BASERUBY=/usr/local/bin/ruby
matz.
Hi Matz
I tried it also but it is still not wroking. I am getting same
error.
Hi
I checked the things whatever you had mentioned in your reply and
then I tried but it displayed same error. Then I have completely
uninstalled older version of ruby-1.6.8 and then install 1.8.6. Then I
tried to compile ruby1.9 package. But it is still giving same error and
“make” fails at the execution of following command:
./miniruby ./mkconfig.rb -timestamp=.rbconfig.time -install_name=ruby
-so_name=ruby rbconfig.rb
Are there any special settings to compile ruby1.9 package?
Are there any prerequisites for successful compilation of ruby1.9
package?
···
In message "Re: Problem in compilation and installation of Ruby 1.9" >> on Thu, 12 Jul 2007 23:52:14 +0900, Chirag Mistry >> <chirag80bece@gmail.com> writes:
--
Posted via http://www.ruby-forum.com/\.
Hi,
Please stop posting same article many times.
At Tue, 17 Jul 2007 23:26:41 +0900,
Chirag Mistry wrote in [ruby-talk:260264]:
I checked the things whatever you had mentioned in your reply and
then I tried but it displayed same error. Then I have completely
uninstalled older version of ruby-1.6.8 and then install 1.8.6. Then I
tried to compile ruby1.9 package. But it is still giving same error and
"make" fails at the execution of following command:
What does this show?
./miniruby -s -e 'p $timestamp' -- -timestamp=.rbconfig.time
···
--
Nobu Nakada