diff options
Diffstat (limited to 'ext/-test-/load')
-rw-r--r-- | ext/-test-/load/dot.dot/depend | 159 | ||||
-rw-r--r-- | ext/-test-/load/dot.dot/dot.dot.c | 2 | ||||
-rw-r--r-- | ext/-test-/load/protect/depend | 5 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_resolver/extconf.rb | 1 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_resolver/resolve_symbol_resolver.c | 55 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_target/extconf.rb | 1 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_target/resolve_symbol_target.c | 15 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def | 4 | ||||
-rw-r--r-- | ext/-test-/load/resolve_symbol_target/resolve_symbol_target.h | 4 | ||||
-rw-r--r-- | ext/-test-/load/stringify_symbols/extconf.rb | 1 | ||||
-rw-r--r-- | ext/-test-/load/stringify_symbols/stringify_symbols.c | 29 | ||||
-rw-r--r-- | ext/-test-/load/stringify_target/extconf.rb | 1 | ||||
-rw-r--r-- | ext/-test-/load/stringify_target/stringify_target.c | 15 | ||||
-rw-r--r-- | ext/-test-/load/stringify_target/stringify_target.def | 4 | ||||
-rw-r--r-- | ext/-test-/load/stringify_target/stringify_target.h | 4 |
15 files changed, 298 insertions, 2 deletions
diff --git a/ext/-test-/load/dot.dot/depend b/ext/-test-/load/dot.dot/depend index a0445e288b..f9be79e957 100644 --- a/ext/-test-/load/dot.dot/depend +++ b/ext/-test-/load/dot.dot/depend @@ -1,3 +1,162 @@ # AUTOGENERATED DEPENDENCIES START +dot.dot.o: $(RUBY_EXTCONF_H) +dot.dot.o: $(arch_hdrdir)/ruby/config.h +dot.dot.o: $(hdrdir)/ruby.h +dot.dot.o: $(hdrdir)/ruby/assert.h +dot.dot.o: $(hdrdir)/ruby/backward.h +dot.dot.o: $(hdrdir)/ruby/backward/2/assume.h +dot.dot.o: $(hdrdir)/ruby/backward/2/attributes.h +dot.dot.o: $(hdrdir)/ruby/backward/2/bool.h +dot.dot.o: $(hdrdir)/ruby/backward/2/inttypes.h +dot.dot.o: $(hdrdir)/ruby/backward/2/limits.h +dot.dot.o: $(hdrdir)/ruby/backward/2/long_long.h +dot.dot.o: $(hdrdir)/ruby/backward/2/stdalign.h +dot.dot.o: $(hdrdir)/ruby/backward/2/stdarg.h +dot.dot.o: $(hdrdir)/ruby/defines.h +dot.dot.o: $(hdrdir)/ruby/intern.h +dot.dot.o: $(hdrdir)/ruby/internal/abi.h +dot.dot.o: $(hdrdir)/ruby/internal/anyargs.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/char.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/double.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/int.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/long.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/short.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h +dot.dot.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h +dot.dot.o: $(hdrdir)/ruby/internal/assume.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/alloc_size.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/artificial.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/cold.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/const.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/constexpr.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/deprecated.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/error.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/flag_enum.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/forceinline.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/format.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/noalias.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/nodiscard.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/noexcept.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/noinline.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/nonnull.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/noreturn.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/packed_struct.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/pure.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/restrict.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/warning.h +dot.dot.o: $(hdrdir)/ruby/internal/attr/weakref.h +dot.dot.o: $(hdrdir)/ruby/internal/cast.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/apple.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/clang.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/intel.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h +dot.dot.o: $(hdrdir)/ruby/internal/compiler_since.h +dot.dot.o: $(hdrdir)/ruby/internal/config.h +dot.dot.o: $(hdrdir)/ruby/internal/constant_p.h +dot.dot.o: $(hdrdir)/ruby/internal/core.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rarray.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rbasic.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rbignum.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rclass.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rdata.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rfile.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rhash.h +dot.dot.o: $(hdrdir)/ruby/internal/core/robject.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rregexp.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rstring.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rstruct.h +dot.dot.o: $(hdrdir)/ruby/internal/core/rtypeddata.h +dot.dot.o: $(hdrdir)/ruby/internal/ctype.h +dot.dot.o: $(hdrdir)/ruby/internal/dllexport.h +dot.dot.o: $(hdrdir)/ruby/internal/dosish.h +dot.dot.o: $(hdrdir)/ruby/internal/error.h +dot.dot.o: $(hdrdir)/ruby/internal/eval.h +dot.dot.o: $(hdrdir)/ruby/internal/event.h +dot.dot.o: $(hdrdir)/ruby/internal/fl_type.h +dot.dot.o: $(hdrdir)/ruby/internal/gc.h +dot.dot.o: $(hdrdir)/ruby/internal/glob.h +dot.dot.o: $(hdrdir)/ruby/internal/globals.h +dot.dot.o: $(hdrdir)/ruby/internal/has/attribute.h +dot.dot.o: $(hdrdir)/ruby/internal/has/builtin.h +dot.dot.o: $(hdrdir)/ruby/internal/has/c_attribute.h +dot.dot.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h +dot.dot.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h +dot.dot.o: $(hdrdir)/ruby/internal/has/extension.h +dot.dot.o: $(hdrdir)/ruby/internal/has/feature.h +dot.dot.o: $(hdrdir)/ruby/internal/has/warning.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/array.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/bignum.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/class.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/compar.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/complex.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/cont.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/dir.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/enum.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/enumerator.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/error.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/eval.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/file.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/hash.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/io.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/load.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/marshal.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/numeric.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/object.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/parse.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/proc.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/process.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/random.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/range.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/rational.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/re.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/ruby.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/select.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/select/largesize.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/signal.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/sprintf.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/string.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/struct.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/thread.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/time.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/variable.h +dot.dot.o: $(hdrdir)/ruby/internal/intern/vm.h +dot.dot.o: $(hdrdir)/ruby/internal/interpreter.h +dot.dot.o: $(hdrdir)/ruby/internal/iterator.h +dot.dot.o: $(hdrdir)/ruby/internal/memory.h +dot.dot.o: $(hdrdir)/ruby/internal/method.h +dot.dot.o: $(hdrdir)/ruby/internal/module.h +dot.dot.o: $(hdrdir)/ruby/internal/newobj.h +dot.dot.o: $(hdrdir)/ruby/internal/scan_args.h +dot.dot.o: $(hdrdir)/ruby/internal/special_consts.h +dot.dot.o: $(hdrdir)/ruby/internal/static_assert.h +dot.dot.o: $(hdrdir)/ruby/internal/stdalign.h +dot.dot.o: $(hdrdir)/ruby/internal/stdbool.h +dot.dot.o: $(hdrdir)/ruby/internal/stdckdint.h +dot.dot.o: $(hdrdir)/ruby/internal/symbol.h +dot.dot.o: $(hdrdir)/ruby/internal/value.h +dot.dot.o: $(hdrdir)/ruby/internal/value_type.h +dot.dot.o: $(hdrdir)/ruby/internal/variable.h +dot.dot.o: $(hdrdir)/ruby/internal/warning_push.h +dot.dot.o: $(hdrdir)/ruby/internal/xmalloc.h +dot.dot.o: $(hdrdir)/ruby/missing.h +dot.dot.o: $(hdrdir)/ruby/ruby.h +dot.dot.o: $(hdrdir)/ruby/st.h +dot.dot.o: $(hdrdir)/ruby/subst.h dot.dot.o: dot.dot.c # AUTOGENERATED DEPENDENCIES END diff --git a/ext/-test-/load/dot.dot/dot.dot.c b/ext/-test-/load/dot.dot/dot.dot.c index 936d28931a..ce7563bf8d 100644 --- a/ext/-test-/load/dot.dot/dot.dot.c +++ b/ext/-test-/load/dot.dot/dot.dot.c @@ -1 +1,3 @@ +#include "ruby.h" + void Init_dot(void) {} diff --git a/ext/-test-/load/protect/depend b/ext/-test-/load/protect/depend index 43413b4e95..324c17237a 100644 --- a/ext/-test-/load/protect/depend +++ b/ext/-test-/load/protect/depend @@ -14,6 +14,7 @@ protect.o: $(hdrdir)/ruby/backward/2/stdalign.h protect.o: $(hdrdir)/ruby/backward/2/stdarg.h protect.o: $(hdrdir)/ruby/defines.h protect.o: $(hdrdir)/ruby/intern.h +protect.o: $(hdrdir)/ruby/internal/abi.h protect.o: $(hdrdir)/ruby/internal/anyargs.h protect.o: $(hdrdir)/ruby/internal/arithmetic.h protect.o: $(hdrdir)/ruby/internal/arithmetic/char.h @@ -51,6 +52,7 @@ protect.o: $(hdrdir)/ruby/internal/attr/noexcept.h protect.o: $(hdrdir)/ruby/internal/attr/noinline.h protect.o: $(hdrdir)/ruby/internal/attr/nonnull.h protect.o: $(hdrdir)/ruby/internal/attr/noreturn.h +protect.o: $(hdrdir)/ruby/internal/attr/packed_struct.h protect.o: $(hdrdir)/ruby/internal/attr/pure.h protect.o: $(hdrdir)/ruby/internal/attr/restrict.h protect.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h @@ -110,7 +112,6 @@ protect.o: $(hdrdir)/ruby/internal/intern/enumerator.h protect.o: $(hdrdir)/ruby/internal/intern/error.h protect.o: $(hdrdir)/ruby/internal/intern/eval.h protect.o: $(hdrdir)/ruby/internal/intern/file.h -protect.o: $(hdrdir)/ruby/internal/intern/gc.h protect.o: $(hdrdir)/ruby/internal/intern/hash.h protect.o: $(hdrdir)/ruby/internal/intern/io.h protect.o: $(hdrdir)/ruby/internal/intern/load.h @@ -141,12 +142,12 @@ protect.o: $(hdrdir)/ruby/internal/memory.h protect.o: $(hdrdir)/ruby/internal/method.h protect.o: $(hdrdir)/ruby/internal/module.h protect.o: $(hdrdir)/ruby/internal/newobj.h -protect.o: $(hdrdir)/ruby/internal/rgengc.h protect.o: $(hdrdir)/ruby/internal/scan_args.h protect.o: $(hdrdir)/ruby/internal/special_consts.h protect.o: $(hdrdir)/ruby/internal/static_assert.h protect.o: $(hdrdir)/ruby/internal/stdalign.h protect.o: $(hdrdir)/ruby/internal/stdbool.h +protect.o: $(hdrdir)/ruby/internal/stdckdint.h protect.o: $(hdrdir)/ruby/internal/symbol.h protect.o: $(hdrdir)/ruby/internal/value.h protect.o: $(hdrdir)/ruby/internal/value_type.h diff --git a/ext/-test-/load/resolve_symbol_resolver/extconf.rb b/ext/-test-/load/resolve_symbol_resolver/extconf.rb new file mode 100644 index 0000000000..2299efcfd3 --- /dev/null +++ b/ext/-test-/load/resolve_symbol_resolver/extconf.rb @@ -0,0 +1 @@ +create_makefile('-test-/load/resolve_symbol_resolver') diff --git a/ext/-test-/load/resolve_symbol_resolver/resolve_symbol_resolver.c b/ext/-test-/load/resolve_symbol_resolver/resolve_symbol_resolver.c new file mode 100644 index 0000000000..a856319cfb --- /dev/null +++ b/ext/-test-/load/resolve_symbol_resolver/resolve_symbol_resolver.c @@ -0,0 +1,55 @@ +#include <ruby.h> +#include "ruby/internal/intern/load.h" + +typedef VALUE(*target_func)(VALUE); + +static target_func rst_any_method; + +VALUE +rsr_any_method(VALUE klass) +{ + return rst_any_method((VALUE)NULL); +} + +VALUE +rsr_try_resolve_fname(VALUE klass) +{ + target_func rst_something_missing = + (target_func) rb_ext_resolve_symbol("-test-/load/resolve_symbol_missing", "rst_any_method"); + if (rst_something_missing == NULL) { + // This should be done in Init_*, so the error is LoadError + rb_raise(rb_eLoadError, "symbol not found: missing fname"); + } + return Qtrue; +} + +VALUE +rsr_try_resolve_sname(VALUE klass) +{ + target_func rst_something_missing = + (target_func)rb_ext_resolve_symbol("-test-/load/resolve_symbol_target", "rst_something_missing"); + if (rst_something_missing == NULL) { + // This should be done in Init_*, so the error is LoadError + rb_raise(rb_eLoadError, "symbol not found: missing sname"); + } + return Qtrue; +} + +void +Init_resolve_symbol_resolver(void) +{ + /* + * Resolving symbols at the head of Init_ because it raises LoadError (in cases). + * If the module and methods are defined before raising LoadError, retrying `require "this.so"` will + * cause re-defining those methods (and will be warned). + */ + rst_any_method = (target_func)rb_ext_resolve_symbol("-test-/load/resolve_symbol_target", "rst_any_method"); + if (rst_any_method == NULL) { + rb_raise(rb_eLoadError, "resolve_symbol_target is not loaded"); + } + + VALUE mod = rb_define_module("ResolveSymbolResolver"); + rb_define_singleton_method(mod, "any_method", rsr_any_method, 0); + rb_define_singleton_method(mod, "try_resolve_fname", rsr_try_resolve_fname, 0); + rb_define_singleton_method(mod, "try_resolve_sname", rsr_try_resolve_sname, 0); +} diff --git a/ext/-test-/load/resolve_symbol_target/extconf.rb b/ext/-test-/load/resolve_symbol_target/extconf.rb new file mode 100644 index 0000000000..b5a99ca7f1 --- /dev/null +++ b/ext/-test-/load/resolve_symbol_target/extconf.rb @@ -0,0 +1 @@ +create_makefile('-test-/load/resolve_symbol_target') diff --git a/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.c b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.c new file mode 100644 index 0000000000..b5bc9e8ee0 --- /dev/null +++ b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.c @@ -0,0 +1,15 @@ +#include <ruby.h> +#include "resolve_symbol_target.h" + +VALUE +rst_any_method(VALUE klass) +{ + return rb_str_new_cstr("from target"); +} + +void +Init_resolve_symbol_target(void) +{ + VALUE mod = rb_define_module("ResolveSymbolTarget"); + rb_define_singleton_method(mod, "any_method", rst_any_method, 0); +} diff --git a/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def new file mode 100644 index 0000000000..c2ed3610fe --- /dev/null +++ b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.def @@ -0,0 +1,4 @@ +LIBRARY resolve_symbol_target +EXPORTS + Init_resolve_symbol_target + rst_any_method diff --git a/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.h b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.h new file mode 100644 index 0000000000..847dcb7dd3 --- /dev/null +++ b/ext/-test-/load/resolve_symbol_target/resolve_symbol_target.h @@ -0,0 +1,4 @@ +#include <ruby.h> +#include "ruby/internal/dllexport.h" + +RUBY_FUNC_EXPORTED VALUE rst_any_method(VALUE); diff --git a/ext/-test-/load/stringify_symbols/extconf.rb b/ext/-test-/load/stringify_symbols/extconf.rb new file mode 100644 index 0000000000..ac39c15f09 --- /dev/null +++ b/ext/-test-/load/stringify_symbols/extconf.rb @@ -0,0 +1 @@ +create_makefile('-test-/load/stringify_symbols') diff --git a/ext/-test-/load/stringify_symbols/stringify_symbols.c b/ext/-test-/load/stringify_symbols/stringify_symbols.c new file mode 100644 index 0000000000..11a5ee3bc5 --- /dev/null +++ b/ext/-test-/load/stringify_symbols/stringify_symbols.c @@ -0,0 +1,29 @@ +#include <ruby.h> +#include "ruby/internal/intern/load.h" +#include "ruby/util.h" + +#if SIZEOF_INTPTR_T == SIZEOF_LONG_LONG +# define UINTPTR2NUM ULL2NUM +#elif SIZEOF_INTPTR_T == SIZEOF_LONG +# define UINTPTR2NUM ULONG2NUM +#else +# define UINTPTR2NUM UINT2NUM +#endif + +static VALUE +stringify_symbol(VALUE klass, VALUE fname, VALUE sname) +{ + void *ptr = rb_ext_resolve_symbol(StringValueCStr(fname), StringValueCStr(sname)); + if (ptr == NULL) { + return Qnil; + } + uintptr_t uintptr = (uintptr_t)ptr; + return UINTPTR2NUM(uintptr); +} + +void +Init_stringify_symbols(void) +{ + VALUE mod = rb_define_module("StringifySymbols"); + rb_define_singleton_method(mod, "stringify_symbol", stringify_symbol, 2); +} diff --git a/ext/-test-/load/stringify_target/extconf.rb b/ext/-test-/load/stringify_target/extconf.rb new file mode 100644 index 0000000000..4aa201cb09 --- /dev/null +++ b/ext/-test-/load/stringify_target/extconf.rb @@ -0,0 +1 @@ +create_makefile('-test-/load/stringify_target') diff --git a/ext/-test-/load/stringify_target/stringify_target.c b/ext/-test-/load/stringify_target/stringify_target.c new file mode 100644 index 0000000000..ce09b8fd77 --- /dev/null +++ b/ext/-test-/load/stringify_target/stringify_target.c @@ -0,0 +1,15 @@ +#include <ruby.h> +#include "stringify_target.h" + +VALUE +stt_any_method(VALUE klass) +{ + return rb_str_new_cstr("from target"); +} + +void +Init_stringify_target(void) +{ + VALUE mod = rb_define_module("StringifyTarget"); + rb_define_singleton_method(mod, "any_method", stt_any_method, 0); +} diff --git a/ext/-test-/load/stringify_target/stringify_target.def b/ext/-test-/load/stringify_target/stringify_target.def new file mode 100644 index 0000000000..89c2b762de --- /dev/null +++ b/ext/-test-/load/stringify_target/stringify_target.def @@ -0,0 +1,4 @@ +LIBRARY stringify_target +EXPORTS + Init_stringify_target + stt_any_method diff --git a/ext/-test-/load/stringify_target/stringify_target.h b/ext/-test-/load/stringify_target/stringify_target.h new file mode 100644 index 0000000000..d95fb65d7c --- /dev/null +++ b/ext/-test-/load/stringify_target/stringify_target.h @@ -0,0 +1,4 @@ +#include <ruby.h> +#include "ruby/internal/dllexport.h" + +RUBY_FUNC_EXPORTED VALUE stt_any_method(VALUE); |