I have a small program:

  #include <ruby.h>

  int main(int argc, char * argv[])
  {
    ruby_init();
    ruby_init_loadpath();
    rb_set_safe_level(0);
    ruby_options(argc, argv);
    rb_eval_string("puts 'foo!'");
    return 0;
  }

I compile it with:

  gcc test.c -o test -I [include_dir] -L [lib_dir] -lruby -lm -lcrypt -ldl

If I have ruby compiled without --enable-shared (the default on 1.6.5),
then I get:

  [pbrannan@zaphod ruby-1.6.5]$ ./test -rsocket -e ""
  [BUG] Segmentation fault
  ruby 1.6.5 (2001-09-19) [i686-linux]
  Aborted (core dumped)

If I use --enable-shared, then I get:

  [pbrannan@zaphod ruby-1.6.5]$ ./test -rsocket -e ""
  foo!

Is there any compelling reason not to make --enable-shared the default?

Paul