I've basically taken the embedding example from pickaxeII and the only 
thing I've added is for the Ruby program to do a 'require' of a file known 
to exist in the library.

Here is the relevant part of the C-side code:
//summer.c
int main(void) {
  int value;
  int* next = Values;

  ruby_init();
  ruby_init_loadpath();
  ruby_script("embedded");
  rb_require("sum.rb"); //ruby script is sum.rb

  ruby_finalize();
  exit(0);
}
//end of summer.c

So the   ruby_init_loadpath() should be setting up the loadpath correctly, 
and I can confirm this by making the ruby script to be required (sum.rb) 
like so:

  #sum.rb
  puts $:

Now if I run summer, I get:
  $ ./summer 
  /usr/local/lib/ruby/site_ruby/1.8
  /usr/local/lib/ruby/site_ruby/1.8/i686-linux
  /usr/local/lib/ruby/site_ruby
  /usr/local/lib/ruby/1.8
  /usr/local/lib/ruby/1.8/i686-linux
  .

....Which looks fine.

Now, if I change sum.rb to:
  #sum.rb
  require 'openssl'


I get:
  $ ./summer 
  ./sum.rb:2: [BUG] Segmentation fault
  ruby 1.8.2 (2004-07-29) [i686-linux]

  Aborted

Apparently, because require can't find the openssl library.

However, the openssl lib is there:
  $ irb
  irb(main):001:0> require 'openssl'
  => true


What gives?  $: looks fine.

Another datapoint: if I change the require in sum.rb to:
  #sum.rb
  require 'ftools'

It seems to work.  Is there a problem with require'ing extensions (like 
openssl.so) this way? (seems to not work)  If so, is there any way of 
doing this?

Phil