These are typical error messages / scenarios that you may encounter at various stages of building Rubinius, along with the typical causes and solutions.

Before anything else

  1. Make certain that you do not have an old version of Rubinius installed somewhere. Executing new code using the old libraries will end in tears. The name should be librubinius-* and the typical location is /usr/local/lib/ or /usr/lib but you can use find to make sure you get everything in case your install location is strange.
  2. Old .rbc files may be getting in the way. 'rake clean build' should eliminate these problems.

C Compilation Errors

"undefined reference to '[some symbol]"

Try `rake distclean build` to make sure the entire C codebase is rebuilt.

"error: IN_DONT_FOLLOW not declared"

On Linux at least, the inotify library may be used but for some reason, some distributions' sys/inotify.h does not have the necessary constants. You can either disable it in the configuration or try to use updated header files at least from here .

"Unable to compile [extension].so/dylib/etc."

First, even if an extension fails to build, you should still be OK. Try shotgun/rubinius -v to verify that Rubinius itself works.

"glibtool: link: cannot build libtool library `librubinius.la' from non-libtool objects: ..." (Mac OS X)

Make sure your glibtool is at least version 1.5. You may also have multiple versions installed, use `which glibtool` to locate the one that is currently being picked up. Typically this problem occurs if you have an outdated version in /sw/bin/glibtool and a newer one in /usr/bin/glibtool.

"MACOSX_DEPLOYMENT_TARGET ..."

The error message is probably complaining that it is supposedly set to 10.1 or something; you can override this by giving the env explicitly on the command line. The Rubinius code seems to be correct though so it is likely you have that invalid #define in your system headers somewhere.

Ruby Build Errors

"... in `initialize': uninitialized constant Mutex::Channel"

Unset $RUBYOPT (usually set for Gems.)

"Unable to find [ClassName]"

These are caused by some load order dependency not being properly constructed. Determine which file needs which other file and insert a "depends on [file].rb", then rake build : load_order.

"Unable to find 'kernel/bootstrap/archive.rbc'" -- "Unable to run runtime/stable/bootstrap.rba"

Either:

  • You have accidentally deleted/moved/etc. something in runtime/ and you can probably restore it with a quick git checkout runtime/ ; or
  • Something is breaking in the loader, break out the GDB.

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

0.1069% complete

 

Completed 9 of 13 tickets