Forum: Ferret Gem 0.9.2: undefined symbol: mtde_create

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E74a88a96ce8caecbc7d265e4763e26c?d=identicon&s=25 Stuart Rackham (Guest)
on 2006-05-11 01:50
Upon opening an existing index after upgrading to the 0.9.2 ferret gem
I get the following error: undefined symbol: mtde_create. Here's an
irb transcript which recreates the error:

irb(main):011:0> index = Index::Index.new({:path =>
'/home/srackham/bin/ff_index'})
=> #<Ferret::Index::Index:0xb7be7590>
irb(main):012:0> index.search_each('rails')
irb: relocation error:
/usr/local/lib/ruby/gems/1.8/gems/ferret-0.9.2/lib/ferret_ext.so:
undefined symbol: mtde_create

The gem install went smoothly:

# gem update
 :
 :
make install
/usr/bin/install -c -m 0755 ferret_ext.so
/usr/local/lib/ruby/gems/1.8/gems/ferret-0.9.2/lib
Successfully installed ferret-0.9.2
Installing RDoc documentation for ferret-0.9.2...
Gems: [ferret] updated

I double checked ./ext/gem_make.out to verify the ferret_ext.so
compile -- there were no errors or warnings.

A bit of poking around in the 0.9.1 gem realease indicates that the
mtde_create() function is in termdocs.c, but there is no termdocs.c
(or any other source file defining mtde_create) in the gem
ferret-0.9.2/ext directory.

Any ideas as to what I'm missing?


Cheers, Stuart
7a2a28d2e0d89eeec39252852f307ed9?d=identicon&s=25 patrick (Guest)
on 2006-05-11 03:02
i'm getting a similar error...0.9.2 is the first version i've ever
tried, though, so it's not just a problem with existing indices.

Stuart Rackham wrote:
> Upon opening an existing index after upgrading to the 0.9.2 ferret gem
> I get the following error: undefined symbol: mtde_create. Here's an
> irb transcript which recreates the error:
>
> irb(main):011:0> index = Index::Index.new({:path =>
> '/home/srackham/bin/ff_index'})
> => #<Ferret::Index::Index:0xb7be7590>
> irb(main):012:0> index.search_each('rails')
> irb: relocation error:
> /usr/local/lib/ruby/gems/1.8/gems/ferret-0.9.2/lib/ferret_ext.so:
> undefined symbol: mtde_create
B5e329ffa0cc78efbfc7ae2d084c149f?d=identicon&s=25 David Balmain (Guest)
on 2006-05-11 03:09
(Received via mailing list)
Hi Stuart,

Apologies and thanks for pointing this out. I've just 0.9.2. In case
you are interested, here is how the file got left out. I have an
exclusion rule on my package FileList that looks like this;

     PKG_FILES.exclude('**/*.o')

Unfortunately Rakes FileList translates this to a regular expression
by using a Dir[pat] like so;

    Dir[pat].each do |p| ignores << p end
    re_str = ignores.collect { |p| "(" + p.to_s + ")" }.join("|")

Which turns into a regular expression which inludes this;

    / ... |(ext/term.o)| ... /

Which of course unfortunately matches ext/termdocs.c.

Cheers,
Dave
This topic is locked and can not be replied to.