--- extconf.rb.orig Tue Feb 26 12:03:53 2008 +++ extconf.rb Tue Feb 26 11:52:16 2008 @@ -1,5 +1,7 @@ require "mkmf" +$LIBS += " -lstdc++ -laspell" + have_header("ruby.h") have_header("aspell.h") have_library("aspell") |
I recently installed the raspell gem on my development box as part of an evaluation of ultrasphinx.
Unfortunately, the native extension to raspell doesn’t link in the dynamic libraries it uses. A fix is provided below.
Note, using the raspell with ultrasphinx also caused a ruby core dump, this time in an assertion from the configuration for aspell. OpenBSD uses aspell-0.50.5 and after upgrading aspell to 0.60.5, raspell started working fine.
Here is the output from the dynamic library problem:
** Starting Rails with development environment...
ruby:/usr/local/lib/ruby/gems/1.8/gems/raspell-1.1/lib/raspell.so: undefined symbol 'new_aspell_config'
lazy binding failed!
/home/face/urevz/vendor/plugins/ultrasphinx/lib/ultrasphinx/spell.rb:33: [BUG] Segmentation fault
ruby 1.8.6 (2007-09-24) [i386-openbsd4.2]
A little poking around and I noticed the native library, raspell.so, doesn’t link in libaspell!
A quick fix is to add the libs to extconf.rb and rebuild the library:
- cd /usr/local/lib/ruby/gems/1.8/gems/raspell-1.1/ext
- edit extconf.rb and add the line $LIBS = ” -lstdc+ -laspell”
- sudo make clean
- sudo make
- sudo cp raspell.so ../lib/.
![Digg!](http://digg.com/img/badges/16x16-digg-guy.gif)
![Delicious!](http://del.icio.us/img/delicious.gif)
![Technorati](../../../images/technorati.gif)
![Blinklist](../../../images/blink.gif)
![Furl](http://www.furl.net/sites/furl/i/lil_furl_butt.gif)
![Reddit](http://static.reddit.com/blog_head.png)