(* TEST include dynlink; readonly_files = "test9_plugin.ml test9_second_plugin.ml test9_second_plugin.mli"; libraries = ""; shared-libraries; { setup-ocamlc.byte-build-env; module = "test9_second_plugin.mli"; ocamlc.byte; module = "test9_main.ml"; ocamlc.byte; module = "test9_plugin.ml"; ocamlc.byte; module = "test9_second_plugin.ml"; ocamlc.byte; unset module; program = "${test_build_directory}/test9.byte"; libraries = "dynlink"; all_modules = "test9_main.cmo"; ocamlc.byte; run; }{ native-dynlink; setup-ocamlopt.byte-build-env; module = "test9_second_plugin.mli"; ocamlopt.byte; module = "test9_main.ml"; ocamlopt.byte; unset module; program = "test9_plugin.cmxs"; flags = "-shared"; all_modules = "test9_plugin.ml"; ocamlopt.byte; program = "test9_second_plugin.cmxs"; flags = "-shared"; all_modules = "test9_second_plugin.ml"; ocamlopt.byte; program = "${test_build_directory}/test9.exe"; unset flags; libraries = "dynlink"; all_modules = "test9_main.cmx"; ocamlopt.byte; run; } *) (* Check that a shared library can depend on an interface-only module that is implemented by another shared library that is loaded later. *) let () = if Dynlink.is_native then begin Dynlink.loadfile "test9_plugin.cmxs"; Dynlink.loadfile "test9_second_plugin.cmxs" end else begin Dynlink.loadfile "test9_plugin.cmo"; Dynlink.loadfile "test9_second_plugin.cmo" end