diff --git a/configure.ac b/configure.ac index e08860a36..cca7da7e4 100644 --- a/configure.ac +++ b/configure.ac @@ -1168,14 +1168,6 @@ AS_IF([test "x$enable_ruby" != "xno"],[ AC_MSG_RESULT([-l$libruby]) AC_CHECK_LIB([$libruby],[ruby_init], [have_libruby=1],[have_libruby=]) - - dnl Symbols that we substitute when missing. - AS_IF([test -n "$have_libruby"],[ - old_LIBS="$LIBS" - LIBS="$LIBS -l$libruby" - AC_CHECK_FUNCS([rb_hash_lookup]) - LIBS="$old_LIBS" - ]) ],[ AC_MSG_RESULT([not found]) ]) diff --git a/generator/ruby.ml b/generator/ruby.ml index 27f689b34..adf1d11d7 100644 --- a/generator/ruby.ml +++ b/generator/ruby.ml @@ -700,6 +700,9 @@ Init__guestfs (void) e_Error = rb_define_class_under (m_guestfs, \"Error\", rb_eStandardError); #ifdef HAVE_RB_DEFINE_ALLOC_FUNC +#ifndef HAVE_TYPE_RB_ALLOC_FUNC_T +#define rb_alloc_func_t void* +#endif rb_define_alloc_func (c_guestfs, (rb_alloc_func_t) ruby_guestfs_create); #endif diff --git a/ruby/ext/guestfs/extconf.rb.in b/ruby/ext/guestfs/extconf.rb.in index b8bd74a33..bf33af8c3 100644 --- a/ruby/ext/guestfs/extconf.rb.in +++ b/ruby/ext/guestfs/extconf.rb.in @@ -29,6 +29,10 @@ unless have_library("guestfs", "guestfs_create", "guestfs.h") raise "libguestfs not found" end +have_func("rb_hash_lookup") +have_func("rb_define_alloc_func") +have_type("rb_alloc_func_t") + $CFLAGS = "#{$CFLAGS} @CFLAGS@ -DGUESTFS_PRIVATE=1 " << "@WARN_CFLAGS@ @WERROR_CFLAGS@"