RyanScottLewis
RyanScottLewis

Reputation: 14026

Error while installing ruby-1.8.7 on Fedora 15

Using RVM, I tried to install ree-1.8.7-2011.03 after installing Fedora 15 and I get the following error. Using rvm install ree-1.8.7-2011.03 on Ubuntu 11.04 works fine..

Same error (and solution) with MRI ruby-1.8.7-p334 on Fedora 15.

Any ideas as to how to fix this?

make[1]: Entering directory `/home/ryguy/.rvm/src/ree-1.8.7-2011.03/source/ext/dl'
gcc -I/opt/local/include -I. -I/opt/local/include -I../.. -I../../. -I../.././ext/dl -DHAVE_DLFCN_H -DHAVE_DLOPEN -DHAVE_DLCLOSE -DHAVE_DLSYM -DHAVE_DLERROR    -I. -fPIC -g -O2   -fno-defer-pop -fno-omit-frame-pointer  -c ptr.c
gcc -I/opt/local/include -I. -I/opt/local/include -I../.. -I../../. -I../.././ext/dl -DHAVE_DLFCN_H -DHAVE_DLOPEN -DHAVE_DLCLOSE -DHAVE_DLSYM -DHAVE_DLERROR    -I. -fPIC -g -O2   -fno-defer-pop -fno-omit-frame-pointer  -c handle.c
Generating callback.func
Generating cbtable.func
gcc -I/opt/local/include -I. -I/opt/local/include -I../.. -I../../. -I../.././ext/dl -DHAVE_DLFCN_H -DHAVE_DLOPEN -DHAVE_DLCLOSE -DHAVE_DLSYM -DHAVE_DLERROR    -I. -fPIC -g -O2   -fno-defer-pop -fno-omit-frame-pointer  -c dl.c
In file included from dl.c:104:0:
callback.func:1:1: warning: data definition has no type or storage class [enabled by default]
callback.func:1:7: error: expected identifier or ‘(’ before ‘long’
In file included from dl.c:104:0:
callback.func:78:33: error: expected ‘)’ before ‘(’ token
callback.func:79:3: warning: data definition has no type or storage class [enabled by default]
callback.func:79:24: error: ‘proc’ undeclared here (not in a function)
callback.func:79:39: error: ‘argc’ undeclared here (not in a function)
callback.func:79:45: error: ‘argv’ undeclared here (not in a function)
callback.func:82:1: error: expected identifier or ‘(’ before ‘}’ token
dl.c:106:1: error: expected ‘;’, ‘,’ or ‘)’ before ‘static’
make[1]: *** [dl.o] Error 1
make[1]: Leaving directory `/home/ryguy/.rvm/src/ree-1.8.7-2011.03/source/ext/dl'
make: *** [all] Error 1

Upvotes: 26

Views: 7839

Answers (5)

csabahenk
csabahenk

Reputation: 141

https://bugs.ruby-lang.org/issues/5108

[[tl;dr: see patch at bottom]]

Upvotes: 14

mpapis
mpapis

Reputation: 53178

patch from user865548 is now available in RVM (will be 1.9.1 or just rvm get head)

Upvotes: 0

Pedro Carriço
Pedro Carriço

Reputation: 4158

This also happens when installing ruby-1.8.7 with rvm in Fedora 15.

Reinier Balt's answer also works, in my case I had to install system wide ruby using yum.

Here's what I did:

cd ~/.rvm/src/ruby-1.8.7-p334/ext/dl
ruby mkcallback.rb > callback.func
ruby mkcbtable.rb > cbtable.func

Upvotes: 28

BeepDog
BeepDog

Reputation: 5075

I don't know why this happens, but it appears that the redirection to the file doesn't completely redirect the output. As a temporary hack/fix, that does get it working, you can pipe it through tee. It gets the job done, but is certainly not the proper solution.

Patch: https://gist.github.com/1083163

This patch when applied like so: rvm install --patch /path/to/Fedora-15-ruby-1.8.7-p352.patch%0 ruby-1.8.7 will work. I will test it with ree as well and update.

EDIT: This same patch also works with ree.

rvm install --patch /path/to/Fedora-15-ruby-1.8.76-p352.patch%0 ree successfully installed a working ree for me.

Upvotes: 3

Reinier Balt
Reinier Balt

Reputation: 141

I saw this too

I went into the src/ext/dl directory and manually generated callback.func and cbtable.func which are both incomplete. I had to do

rm callback.func
touch callback.func
ruby mkcallback.rb >> callback.func

(repeat for cbtable)

Somehow the simple ruby mkcallback.rb > callback.func did not work

then rerun rvm install 1.8.7 which will not overwrite your changes.

Upvotes: 14

Related Questions