--- /dev/null
+From: =?utf-8?q?St=C3=A9phane_Glondu?= <glondu@debian.org>
+Date: Thu, 20 Jun 2024 03:00:07 +0200
+Subject: Make runtime_events optional
+
+Bug: https://github.com/ocaml/ocaml/issues/13234
+---
+ configure.ac | 15 ++++++++++++---
+ ocamltest/builtin_actions.ml | 8 ++++++++
+ ocamltest/ocamltest_config.ml.in | 2 ++
+ ocamltest/ocamltest_config.mli | 3 +++
+ testsuite/tests/lib-runtime-events/test.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml_counters.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml_exception.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml_parallel.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml_reentry.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml_runparams.ml | 1 +
+ .../tests/lib-runtime-events/test_caml_slot_reuse.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_compact.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_dropped_events.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_env_start.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_external.ml | 1 +
+ .../tests/lib-runtime-events/test_external_preserve.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_fork.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_instrumented.ml | 1 +
+ testsuite/tests/lib-runtime-events/test_user_event.ml | 1 +
+ .../tests/lib-runtime-events/test_user_event_signal.ml | 1 +
+ .../tests/lib-runtime-events/test_user_event_unknown.ml | 1 +
+ 23 files changed, 44 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a8e4222..f29d25e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -74,6 +74,7 @@ bootstrapping_flexdll=false
+ flexdll_dir=
+ lib_dynlink=false
+ lib_str=false
++lib_runtime_events=false
+ lib_systhreads=false
+ lib_unix=false
+ optional_libraries=''
+@@ -266,7 +267,6 @@ AC_CONFIG_HEADERS([runtime/caml/s.h])
+ AC_CONFIG_HEADERS([runtime/caml/version.h])
+ AC_CONFIG_FILES([compilerlibs/META])
+ AC_CONFIG_FILES([otherlibs/dynlink/META])
+-AC_CONFIG_FILES([otherlibs/runtime_events/META])
+ AC_CONFIG_FILES([stdlib/META])
+
+ # Definitions related to the version of OCaml
+@@ -412,6 +412,10 @@ AC_ARG_ENABLE([unix-lib],
+ [AS_HELP_STRING([--disable-unix-lib],
+ [do not build the unix library])])
+
++AC_ARG_ENABLE([runtime-events-lib],
++ [AS_HELP_STRING([--disable-runtime-events-lib],
++ [do not build the runtime_events library])])
++
+ AC_ARG_ENABLE([bigarray-lib], [],
+ [AS_IF([test "x$enableval" != 'xno'],
+ [AC_MSG_ERROR(m4_normalize([The bigarray-lib option was deleted in OCaml
+@@ -716,9 +720,9 @@ AS_CASE([$host],
+ [exeext=".exe"],
+ [exeext=''])
+
+-otherlibraries="dynlink runtime_events"
++otherlibraries="dynlink"
+ lib_dynlink=true
+-lib_runtime_events=true
++
+ AS_IF([test x"$enable_unix_lib" != "xno"],
+ [enable_unix_lib=yes
+ AC_CONFIG_FILES([otherlibs/unix/META])
+@@ -737,6 +741,11 @@ AS_IF([test x"$enable_str_lib" != "xno"],
+ lib_str=true
+ AC_CONFIG_FILES([otherlibs/str/META])])
+
++AS_IF([test x"$enable_runtime_events_lib" != "xno"],
++ [otherlibraries="$otherlibraries runtime_events"
++ lib_runtime_events=true
++ AC_CONFIG_FILES([otherlibs/runtime_events/META])])
++
+ # Checks for system services
+
+ ## Test whether #! scripts are supported
+diff --git a/ocamltest/builtin_actions.ml b/ocamltest/builtin_actions.ml
+index 1af3b08..6667f36 100644
+--- a/ocamltest/builtin_actions.ml
++++ b/ocamltest/builtin_actions.ml
+@@ -102,6 +102,13 @@ let hasstr = make
+ "str library available"
+ "str library not available")
+
++let hasruntime_events = make
++ ~name:"hasruntime_events"
++ ~description:"Pass if the runtime_events library is available"
++ (Actions_helpers.pass_or_skip Ocamltest_config.runtime_events
++ "runtime_events library available"
++ "runtime_events library not available")
++
+ let windows_OS = "Windows_NT"
+
+ let get_OS () = Sys.safe_getenv "OS"
+@@ -336,6 +343,7 @@ let _ =
+ hasunix;
+ hassysthreads;
+ hasstr;
++ hasruntime_events;
+ libunix;
+ libwin32unix;
+ windows;
+diff --git a/ocamltest/ocamltest_config.ml.in b/ocamltest/ocamltest_config.ml.in
+index 7bffd55..d8529ce 100644
+--- a/ocamltest/ocamltest_config.ml.in
++++ b/ocamltest/ocamltest_config.ml.in
+@@ -44,6 +44,8 @@ let systhreads = @lib_systhreads@
+
+ let str = @lib_str@
+
++let runtime_events = @lib_runtime_events@
++
+ let objext = {@QS@|@OBJEXT@|@QS@}
+
+ let libext = {@QS@|@libext@|@QS@}
+diff --git a/ocamltest/ocamltest_config.mli b/ocamltest/ocamltest_config.mli
+index d75ae87..2d7014e 100644
+--- a/ocamltest/ocamltest_config.mli
++++ b/ocamltest/ocamltest_config.mli
+@@ -58,6 +58,9 @@ val systhreads : bool
+ val str : bool
+ (** Indicates whether str is available. *)
+
++val runtime_events : bool
++(** Indicates whether runtime_events is available. *)
++
+ val objext : string
+ (** Extension of object files *)
+
+diff --git a/testsuite/tests/lib-runtime-events/test.ml b/testsuite/tests/lib-runtime-events/test.ml
+index 4eb61ae..7fe5ae2 100644
+--- a/testsuite/tests/lib-runtime-events/test.ml
++++ b/testsuite/tests/lib-runtime-events/test.ml
+@@ -1,6 +1,7 @@
+ (* TEST
+ modules = "stubs.c";
+ include runtime_events;
++ hasruntime_events;
+ *)
+
+ external start_runtime_events : unit -> unit = "start_runtime_events"
+diff --git a/testsuite/tests/lib-runtime-events/test_caml.ml b/testsuite/tests/lib-runtime-events/test_caml.ml
+index f25013b..f2359e0 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+
+ (* Tests that:
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_counters.ml b/testsuite/tests/lib-runtime-events/test_caml_counters.ml
+index 75fa993..40743b7 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_counters.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_counters.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_exception.ml b/testsuite/tests/lib-runtime-events/test_caml_exception.ml
+index 59adfe3..1d29dd2 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_exception.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_exception.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_parallel.ml b/testsuite/tests/lib-runtime-events/test_caml_parallel.ml
+index 4394355..7947922 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_parallel.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_parallel.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_reentry.ml b/testsuite/tests/lib-runtime-events/test_caml_reentry.ml
+index 81e38e2..5bf8201 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_reentry.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_reentry.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_runparams.ml b/testsuite/tests/lib-runtime-events/test_caml_runparams.ml
+index 19612a5..0353a84 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_runparams.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_runparams.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ ocamlrunparam += ",e=4";
+ *)
+
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml b/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml
+index cbbfa9a..7317de9 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_slot_reuse.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml b/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml
+index 6ea181f..9e6e403 100644
+--- a/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml
++++ b/testsuite/tests/lib-runtime-events/test_caml_stubs_gc.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_compact.ml b/testsuite/tests/lib-runtime-events/test_compact.ml
+index 890a289..1de9df3 100644
+--- a/testsuite/tests/lib-runtime-events/test_compact.ml
++++ b/testsuite/tests/lib-runtime-events/test_compact.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_dropped_events.ml b/testsuite/tests/lib-runtime-events/test_dropped_events.ml
+index 3dcf6fc..2c70205 100644
+--- a/testsuite/tests/lib-runtime-events/test_dropped_events.ml
++++ b/testsuite/tests/lib-runtime-events/test_dropped_events.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ include unix;
+ set OCAMLRUNPARAM = "e=6";
+ hasunix;
+diff --git a/testsuite/tests/lib-runtime-events/test_env_start.ml b/testsuite/tests/lib-runtime-events/test_env_start.ml
+index 5562d26..1e60053 100644
+--- a/testsuite/tests/lib-runtime-events/test_env_start.ml
++++ b/testsuite/tests/lib-runtime-events/test_env_start.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ set OCAML_RUNTIME_EVENTS_START = "1";
+ *)
+
+diff --git a/testsuite/tests/lib-runtime-events/test_external.ml b/testsuite/tests/lib-runtime-events/test_external.ml
+index df285e7..125752c 100644
+--- a/testsuite/tests/lib-runtime-events/test_external.ml
++++ b/testsuite/tests/lib-runtime-events/test_external.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ include unix;
+ libunix;
+ {
+diff --git a/testsuite/tests/lib-runtime-events/test_external_preserve.ml b/testsuite/tests/lib-runtime-events/test_external_preserve.ml
+index d5dd87c..b736e5e 100644
+--- a/testsuite/tests/lib-runtime-events/test_external_preserve.ml
++++ b/testsuite/tests/lib-runtime-events/test_external_preserve.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ include unix;
+ set OCAML_RUNTIME_EVENTS_PRESERVE = "1";
+ libunix;
+diff --git a/testsuite/tests/lib-runtime-events/test_fork.ml b/testsuite/tests/lib-runtime-events/test_fork.ml
+index 6d6ca1e..792854e 100644
+--- a/testsuite/tests/lib-runtime-events/test_fork.ml
++++ b/testsuite/tests/lib-runtime-events/test_fork.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ include unix;
+ libunix;
+ {
+diff --git a/testsuite/tests/lib-runtime-events/test_instrumented.ml b/testsuite/tests/lib-runtime-events/test_instrumented.ml
+index b82217d..11562fc 100644
+--- a/testsuite/tests/lib-runtime-events/test_instrumented.ml
++++ b/testsuite/tests/lib-runtime-events/test_instrumented.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ flags = "-runtime-variant=i";
+ instrumented-runtime;
+ native;
+diff --git a/testsuite/tests/lib-runtime-events/test_user_event.ml b/testsuite/tests/lib-runtime-events/test_user_event.ml
+index 4c9e90c..e25b7cc 100644
+--- a/testsuite/tests/lib-runtime-events/test_user_event.ml
++++ b/testsuite/tests/lib-runtime-events/test_user_event.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ *)
+ open Runtime_events
+
+diff --git a/testsuite/tests/lib-runtime-events/test_user_event_signal.ml b/testsuite/tests/lib-runtime-events/test_user_event_signal.ml
+index 6837a88..26beb9e 100644
+--- a/testsuite/tests/lib-runtime-events/test_user_event_signal.ml
++++ b/testsuite/tests/lib-runtime-events/test_user_event_signal.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ include unix;
+ hasunix;
+ not-windows;
+diff --git a/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml b/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml
+index 447b7b5..84a304f 100644
+--- a/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml
++++ b/testsuite/tests/lib-runtime-events/test_user_event_unknown.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+ include runtime_events;
++ hasruntime_events;
+ include unix;
+ set OCAML_RUNTIME_EVENTS_PRESERVE = "1";
+ libunix;