let execute_plugin_if_needed () =
      if we_need_a_plugin then
        begin
          rebuild_plugin_if_needed ();
          Shell.chdir Pathname.pwd;
          if not !Options.just_plugin then
            let runner = if !Options.native_plugin then N else !Options.ocamlrun in
            let spec = S[runner; P(!Options.build_dir/plugin^(!Options.exe));
                         A"-no-plugin"; atomize (List.tl (Array.to_list Sys.argv))] in
            let () = Log.finish () in
            raise (Exit_silently_with_code (sys_command (Command.string_of_command_spec spec)))
        end
      else
        ()