Skip to content
Success

Console Output

Skipping 417 KB.. Full Log
  "C:/ocamlmgw64-44068/bin/../lib/ocaml/ocamldoc"
/usr/bin/install -c -p -m 644 \
  ocamldoc/ocamldoc.hva ocamldoc/*.cmx ocamldoc/odoc_info.a \
  ocamldoc/odoc_info.cmxa \
  "C:/ocamlmgw64-44068/bin/../lib/ocaml/ocamldoc"
/usr/bin/install -c -p -m 644 \
  otherlibs/dynlink/dynlink_config.cmx otherlibs/dynlink/dynlink_types.cmx otherlibs/dynlink/dynlink_platform_intf.cmx otherlibs/dynlink/dynlink_common.cmx otherlibs/dynlink/native/dynlink.cmx otherlibs/dynlink/dynlink.cmxa \
  otherlibs/dynlink/dynlink.a \
  "C:/ocamlmgw64-44068/bin/../lib/ocaml/dynlink"
for i in runtime_events unix str systhreads; do \
  make -C otherlibs/$i installopt || exit $?; \
done
make[2]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/runtime_events'
/usr/bin/install -c -p -m 644 \
   runtime_events.cmx runtime_events.cmxa runtime_events.a \
   "C:/ocamlmgw64-44068/bin/../lib/ocaml/runtime_events/"
if test -f runtime_events.cmxs; then \
  /usr/bin/install -c -p runtime_events.cmxs "C:/ocamlmgw64-44068/bin/../lib/ocaml/runtime_events"; \
fi
if true \
     && test -f dllcamlruntime_eventsnat.dll; then \
  /usr/bin/install -c -p \
    dllcamlruntime_eventsnat.dll "C:/ocamlmgw64-44068/bin/../lib/ocaml/stublibs"; \
fi
/usr/bin/install -c -p -m 644 libcamlruntime_eventsnat.a "C:/ocamlmgw64-44068/bin/../lib/ocaml/"
make[2]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/runtime_events'
make[2]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/unix'
/usr/bin/install -c -p -m 644 \
   unix.cmx unixLabels.cmx unix.cmxa unix.a \
   "C:/ocamlmgw64-44068/bin/../lib/ocaml/unix/"
if test -f unix.cmxs; then \
  /usr/bin/install -c -p unix.cmxs "C:/ocamlmgw64-44068/bin/../lib/ocaml/unix"; \
fi
if true \
     && test -f dllunixnat.dll; then \
  /usr/bin/install -c -p \
    dllunixnat.dll "C:/ocamlmgw64-44068/bin/../lib/ocaml/stublibs"; \
fi
/usr/bin/install -c -p -m 644 libunixnat.a "C:/ocamlmgw64-44068/bin/../lib/ocaml/"
make[2]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/unix'
make[2]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/str'
/usr/bin/install -c -p -m 644 \
   str.cmx str.cmxa str.a \
   "C:/ocamlmgw64-44068/bin/../lib/ocaml/str/"
if test -f str.cmxs; then \
  /usr/bin/install -c -p str.cmxs "C:/ocamlmgw64-44068/bin/../lib/ocaml/str"; \
fi
if true \
     && test -f dllcamlstrnat.dll; then \
  /usr/bin/install -c -p \
    dllcamlstrnat.dll "C:/ocamlmgw64-44068/bin/../lib/ocaml/stublibs"; \
fi
/usr/bin/install -c -p -m 644 libcamlstrnat.a "C:/ocamlmgw64-44068/bin/../lib/ocaml/"
make[2]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/str'
make[2]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/systhreads'
/usr/bin/install -c -p -m 644 libthreadsnat.a "C:/ocamlmgw64-44068/bin/../lib/ocaml"
/usr/bin/install -c -p -m 644 \
  thread.cmx event.cmx threads.cmxa threads.a \
  "C:/ocamlmgw64-44068/bin/../lib/ocaml/threads"
/usr/bin/install -c -p threads.cmxs "C:/ocamlmgw64-44068/bin/../lib/ocaml/threads"
make[2]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/systhreads'
if test -f ocamlopt.opt.exe; then make installoptopt; else \
   cd "C:/ocamlmgw64-44068/bin"; \
   ln -sf ocamlc.byte.exe ocamlc.exe; \
   ln -sf ocamlopt.byte.exe ocamlopt.exe; \
   ln -sf ocamllex.byte.exe ocamllex.exe; \
   (test -f flexlink.byte.exe && \
     ln -sf flexlink.byte.exe flexlink.exe) || true; \
fi
make[2]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
/usr/bin/install -c -p ocamlc.opt.exe "C:/ocamlmgw64-44068/bin"
/usr/bin/install -c -p ocamlopt.opt.exe "C:/ocamlmgw64-44068/bin"
/usr/bin/install -c -p lex/ocamllex.opt.exe "C:/ocamlmgw64-44068/bin"
cd "C:/ocamlmgw64-44068/bin"; \
   ln -sf ocamlc.opt.exe ocamlc.exe; \
   ln -sf ocamlopt.opt.exe ocamlopt.exe; \
   ln -sf ocamllex.opt.exe ocamllex.exe
/usr/bin/install -c -p flexlink.opt.exe "C:/ocamlmgw64-44068/bin"
cd "C:/ocamlmgw64-44068/bin"; \
  ln -sf flexlink.opt.exe flexlink.exe
/usr/bin/install -c -p -m 644 \
   utils/*.cmx parsing/*.cmx typing/*.cmx bytecomp/*.cmx \
   toplevel/*.cmx toplevel/native/*.cmx \
   toplevel/native/tophooks.cmi \
   file_formats/*.cmx \
   lambda/*.cmx \
   driver/*.cmx asmcomp/*.cmx middle_end/*.cmx \
           middle_end/closure/*.cmx \
           middle_end/flambda/*.cmx \
           middle_end/flambda/base_types/*.cmx \
          "C:/ocamlmgw64-44068/bin/../lib/ocaml/compiler-libs"
/usr/bin/install -c -p -m 644 \
   compilerlibs/*.cmxa compilerlibs/*.a \
   "C:/ocamlmgw64-44068/bin/../lib/ocaml/compiler-libs"
/usr/bin/install -c -p -m 644 \
   driver/main.cmx driver/main.o \
   driver/optmain.cmx driver/optmain.o \
   toplevel/topstart.o \
   "C:/ocamlmgw64-44068/bin/../lib/ocaml/compiler-libs"
/usr/bin/install -c -p ocamlnat.exe "C:/ocamlmgw64-44068/bin"
make[2]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
/usr/bin/install -c -p -m 644 \
          tools/profiling.cmx tools/profiling.o \
  "C:/ocamlmgw64-44068/bin/../lib/ocaml/profiling"
make[1]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
+ make -f Makefile.test -C testsuite/in_prefix test-in-prefix
make: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/testsuite/in_prefix'
make -C ../.. testsuite/tools/test_in_prefix.opt.exe
make[1]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
make -C otherlibs allopt
make[2]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs'
for lib in runtime_events unix str systhreads; do (make -C $lib allopt) || exit $?; done
make[3]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/runtime_events'
make[3]: Nothing to be done for 'allopt'.
make[3]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/runtime_events'
make[3]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/unix'
make[3]: Nothing to be done for 'allopt'.
make[3]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/unix'
make[3]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/str'
make[3]: Nothing to be done for 'allopt'.
make[3]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/str'
make[3]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/systhreads'
make[3]: Nothing to be done for 'allopt'.
make[3]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs/systhreads'
make[2]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/otherlibs'
  OCAMLC testsuite/tools/test_in_prefix.cmi
  OCAMLOPT testsuite/tools/test_in_prefix.cmx
  LINKOPT testsuite/tools/test_in_prefix.opt.exe
make[1]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
make -C ../.. testsuite/tools/main_in_c.o
make[1]: Entering directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
  CC testsuite/tools/main_in_c.o
make[1]: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64'
Test Environment
    prefix = C:\ocamlmgw64-44068
    bindir = [$prefix/]bin
    libdir = [$prefix/]lib\ocaml
  - C compiler is x86_64-w64-mingw32-gcc [mingw-12-0-gcc-11-4] for x86_64-w64-mingw32
  - OCaml is relocatable and reproducible; target binaries by default are relocatable
  - Executable header size is 6.50KiB (6656 bytes)
  - Testing native and bytecode for shared and static linking with ocamlnat

Checking installed files for
  Installation Prefix: /ocamlmgw64-44068
  Relative Suffix: /../lib/ocaml
  Build Root: /builds/workspace/precheck/flambda/false/label/ocaml-mingw-64

Relocatable files:
  **/META, *.a, *.cma, *.cmi, *.cmo, *.cmt, *.cmti, *.cmx, *.cmxa, *.cmxs,
    *.dll, *.exe, *.h, *.hva, *.ml, *.ml.in, *.mli, *.o, *.tbl, $bindir/*,
    $libdir\ld.conf, $libdir\runtime-launch-info

Files containing the installation prefix:
  $libdir\Makefile.config

Files containing the relative suffix:
  $libdir\Makefile.config

Testing loading of libraries with bytecode dynlink
$prefix/$bindir\ocamlc.exe -I +dynlink dynlink.cma -linkall -o $PWD\test_script.exe test_install_script.ml
> Environment
>   PATH=$prefix/$bindir:$PATH
$PWD\test_script.exe runtime_events
> Loaded runtime_events.cma
$PWD\test_script.exe str
> Loaded str.cma
$PWD\test_script.exe unix threads
> Loaded unix.cma
> Loaded threads.cma
$PWD\test_script.exe unix
> Loaded unix.cma

Testing loading of libraries with native dynlink
$prefix/$bindir\ocamlopt.exe -I +dynlink dynlink.cmxa -linkall -o $PWD\test_script.exe test_install_script.ml
$PWD\test_script.exe runtime_events
> Loaded runtime_events.cmxs
$PWD\test_script.exe str
> Loaded str.cmxs
$PWD\test_script.exe unix threads
> Loaded unix.cmxs
> Loaded threads.cmxs
$PWD\test_script.exe unix
> Loaded unix.cmxs
Testing loading of libraries in $prefix/$bindir\ocaml.exe
$prefix/$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded dynlink.cma
$prefix/$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded runtime_events.cma
$prefix/$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded str.cma
$prefix/$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cma
> Loaded threads.cma
$prefix/$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cma
Testing loading of libraries in $prefix/$bindir\ocamlnat.exe
$prefix/$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded dynlink.cmxa
$prefix/$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded runtime_events.cmxs
$prefix/$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded str.cmxs
$prefix/$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cmxs
> Loaded threads.cmxs
$prefix/$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cmxs

Testing processing of ld.conf
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma ocamlbytecomp.cma -o $PWD\test_ld_conf.byte.exe test_install_script.ml
$prefix/$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa ocamlbytecomp.cmxa -o $PWD\test_ld_conf.opt.exe test_install_script.ml
- Base ld.conf test
Backing up $prefix\$libdir\ld.conf to $prefix\$libdir\ld.conf.bak
$prefix/$bindir\ocamlrun.exe -config
$PWD\test_ld_conf.byte.exe
$PWD\test_ld_conf.opt.exe
- Base ld.conf + CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH=;/;//;.;..;.\;..\;.\stublibs;..\stublibs;stublibs;.stublibs;..stublibs;C:\ocamlmgw64-44068\lib\ocaml;/lib/ocaml $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=;/;//;.;..;.\;..\;.\stublibs;..\stublibs;stublibs;.stublibs;..stublibs;C:\ocamlmgw64-44068\lib\ocaml;/lib/ocaml $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=;/;//;.;..;.\;..\;.\stublibs;..\stublibs;stublibs;.stublibs;..stublibs;C:\ocamlmgw64-44068\lib\ocaml;/lib/ocaml $PWD\test_ld_conf.opt.exe
- Base ld.conf + quoted CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH="quoted";quote"in"entry;one";"entry;one";"two";three $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH="quoted";quote"in"entry;one";"entry;one";"two";three $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH="quoted";quote"in"entry;one";"entry;one";"two";three $PWD\test_ld_conf.opt.exe
- Base ld.conf with CRLF endings
$prefix/$bindir\ocamlrun.exe -config
$PWD\test_ld_conf.byte.exe
$PWD\test_ld_conf.opt.exe
- Empty CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH= $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH= $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH= $PWD\test_ld_conf.opt.exe
- Embedded empty entry in CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH=; $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=; $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=; $PWD\test_ld_conf.opt.exe
- Empty CAMLLIB
CAML_LD_LIBRARY_PATH=env CAMLLIB= $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env CAMLLIB= $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env CAMLLIB= $PWD\test_ld_conf.opt.exe
- Empty OCAMLLIB
CAML_LD_LIBRARY_PATH=env OCAMLLIB= CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env OCAMLLIB= CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env OCAMLLIB= CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.opt.exe
- $OCAMLLIB/ld.conf
CAML_LD_LIBRARY_PATH=env OCAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\ocamllib CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env OCAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\ocamllib CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env OCAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\ocamllib CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.opt.exe
- $CAMLLIB/ld.conf
CAML_LD_LIBRARY_PATH=env CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $prefix/$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.opt.exe
- EOF-at-EOF
$prefix/$bindir\ocamlrun.exe -config
$PWD\test_ld_conf.byte.exe
$PWD\test_ld_conf.opt.exe
Restoring $prefix\$libdir\ld.conf.bak to $prefix\$libdir\ld.conf

Testing bytecode binaries in $prefix/$bindir
$prefix/$bindir\flexlink.byte.exe -vnum
> 0.43
flexlink.byte (from $prefix/$bindir\flexlink.byte.exe) -M <exit 2>
> flexlink.byte: unknown option '-M'.
> FlexDLL version 0.43
> 
> Usage:
>   flexlink -o <result.dll/exe> file1.obj file2.obj ... -- <extra linker arguments>
> 
>   -o                  Choose the name of the output file
>   -exe                Link the main program as an exe file
>   -maindll            Link the main program as a dll file
>   -noflexdllobj       Do not add the Flexdll runtime object (for exe)
>   -noentry            Do not use the Flexdll entry point (for dll)
>   -noexport           Do not export any symbol
>   -norelrelocs        Ensure that no relative relocation is generated
>   -base               Specify base address (Win64 only)
>   -I <dir>            Add a directory where to search for files
>   -L <dir>            Add a directory where to search for files
>   -l <lib>            Library file
>   -chain {msvc|msvc64|cygwin64|mingw|mingw64|gnat|gnat64|ld}
>                       Choose which linker to use
>   -x64                (Deprecated)
>   -defaultlib <obj>   External object (no export, no import)
>   -save-temps         Do not delete intermediate files
>   -implib             Do not delete the generated import library
>   -outdef             Produce a def file with exported symbols
>   -v                  Increment verbosity (can be repeated)
>   -show-exports       Show exported symbols
>   -show-imports       Show imported symbols
>   -dry                Show the linker command line, do not actually run it
>   -dump               Only dump the content of object files
>   -patch              Only patch the target image (to be used with -stack)
>   -nocygpath          Do not use cygpath (default for msvc, mingw)
>   -cygpath            Use cygpath (default for cygwin)
>   -no-merge-manifest  Do not merge the manifest (takes precedence over -merge-manifest)
>   -merge-manifest     Merge manifest to the dll or exe (if generated)
>   -real-manifest      Use the generated manifest (default behavior)
>   -default-manifest   Use the default manifest (default.manifest/default_amd64.manifest)
>   -export <sym>       Explicitly export a symbol
>   -noreexport         Do not reexport symbols imported from import libraries
>   -where              Show the FlexDLL directory
>   -nounderscore       Normal symbols are not prefixed with an underscore
>   -nodefaultlibs      Do not assume any default library
>   -builtin            Use built-in linker to produce a dll
>   -explain            Explain why library objects are linked
>   -subsystem <id>     Set the subsystem (default: console)
>   -custom-crt         Use a custom CRT
>   -stack <int>        Set the stack reserve in the resulting image
>   -link <option>      Next argument is passed verbatim to the linker
>   -g                  (ignored)
>   -D <symbol>         (Ignored)
>   -U <symbol>         (Ignored)
>   --                  Following arguments are passed verbatim to the linker
>   -version            Print linker version and FlexDLL directory and exit
>   -vnum               Print linker version number and exit
>   -help               Display this list of options
>   --help              Display this list of options
> 
> Notes:
> * The -I, -l and -L options do not need to be separated from their argument.
> * An option like /linkXXX is an abbrevation for '-link XXX'.
> * An option like -Wl,-XXX is an abbreviation for '-link -XXX'.
> * FlexDLL's object files are searched by default in the same directory as
>   flexlink, or in the directory given by the environment variable FLEXDIR
>   if it is defined.
> * Extra argument can be passed in the environment variable FLEXLINKFLAGS.
> 
> Homepage: http://alain.frisch.fr/flexdll.html
$prefix/$bindir\ocaml.exe -vnum
> 5.4.0+dev0-2024-08-25
ocaml (from $prefix/$bindir\ocaml.exe) -M <exit 2>
> ocaml: unknown option '-M'.
> Usage: ocaml <options> <files>
> Try 'ocaml --help' for more information.
$prefix/$bindir\ocamlc.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlc.byte (from $prefix/$bindir\ocamlc.byte.exe) -M <exit 2>
> ocamlc.byte: unknown option '-M'.
> Usage: ocamlc <options> <files>
> Try 'ocamlc --help' for more information.
$prefix/$bindir\ocamlcmt.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlcmt (from $prefix/$bindir\ocamlcmt.exe) -M <exit 2>
> ocamlcmt: unknown option '-M'.
> Read FILE.cmt and print related information
> Usage: ocamlcmt [options] FILE.cmt
> Options are:
>   -o <file>       Dump to file <file> (or stdout if -)
>   -annot          Generate the corresponding .annot file
>   -save-cmt-info  Encapsulate additional cmt information in annotations
>   -src            Convert .cmt or .cmti back to source code (without comments)
>   -info           : print information on the file
>   -version        Print version and exit
>   -vnum           Print version number and exit
>   -args <file>    Read additional newline separated command line arguments 
>       from <file>
>   -args0 <file>   Read additional NUL separated command line arguments from 
>       <file>
>   -I <dir>        Add <dir> to the list of include directories
>   -help           Display this list of options
>   --help          Display this list of options
$prefix/$bindir\ocamlcp.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlcp (from $prefix/$bindir\ocamlcp.exe) -M <exit 2>
> ocamlcp: unknown option '-M'.
> Usage: ocamlcp <options> <files>
> Options are:
>   -P [afilmt]  Profile constructs specified by argument (default fm):
>       a  Everything
>       f  Function calls and method calls
>       i  if ... then ... else
>       l  while and for loops
>       m  match ... with
>       t  try ... with
>   -p [afilmt]  Same as option -P
>   -a  Build a library
>   -alert <list>  Enable or disable alerts according to <list>:
>         +<alertname>  enable alert <alertname>
>         -<alertname>  disable alert <alertname>
>         ++<alertname> treat <alertname> as fatal error
>         --<alertname> treat <alertname> as non-fatal
>         @<alertname>  enable <alertname> and treat it as fatal error
>     <alertname> can be 'all' to refer to all alert names
>   -absname  Show absolute filenames in error messages
>   -no-absname  Do not try to show absolute filenames in error messages (default)
>   -annot  (deprecated) Save information in <filename>.annot
>   -bin-annot  Save typedtree in <filename>.cmt
>   -bin-annot-occurrences  Store every occurrence of a bound name in the .cmt file.
> This information can be used by external tools to provide
> features such as project-wide occurrences. This flag has
> no effect in the absence of '-bin-annot'.
>   -c  Compile only (do not link)
>   -cc <command>  Use <command> as the C compiler and linker
>   -cclib <opt>  Pass option <opt> to the C linker
>   -ccopt <opt>  Pass option <opt> to the C compiler and linker
>   -cmi-file <file>  Use the <file> interface file to type-check
>   -color {auto|always|never}  Enable or disable colors in compiler messages
>     The following settings are supported:
>       auto    use heuristics to enable colors only if supported
>       always  enable colors
>       never   disable colors
>     The default setting is 'auto', and the current heuristic
>     checks that the TERM environment variable exists and is
>     not empty or "dumb", and that isatty(stderr) holds.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_COLOR environment variable.
>   -error-style {contextual|short}  Control the way error messages and warnings are printed
>     The following settings are supported:
>       short       only print the error and its location
>       contextual  like "short", but also display the source code
>                   snippet corresponding to the location of the error
>     The default setting is 'contextual'.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_ERROR_STYLE environment variable.
>   -compat-32  Check that generated bytecode can run on 32-bit platforms
>   -config  Print configuration values and exit
>   -config-var  Print the value of a configuration variable, without a newline, and exit
>     (print nothing and exit with error value if the variable does not exist)
>   -custom  Link in custom mode
>   -dllib <lib>  Use the dynamically-loaded library <lib>
>   -dllib-suffixed <lib>  Use the dynamically-loaded library <lib>, with runtime suffix appended to the name
>   -dllpath <dir>  Add <dir> to the run-time search path for shared libraries
>   -dtypes  (deprecated) same as -annot
>   -for-pack <ident>  Generate code that can later be `packed' with
>      ocamlc -pack -o <ident>.cmo
>   -g  Save debugging information
>   -no-g  Do not record debugging information (default)
>   -stop-after {parsing|typing|lambda} Stop after the given compilation pass.
>   -i  Print inferred interface
>   -i-variance  Print inferred variances
>   -I <dir>  Add <dir> to the list of include directories
>   -H <dir>  Add <dir> to the list of "hidden" include directories
>      (Like -I, but the program can not directly reference these dependencies)
>   -impl <file>  Compile <file> as a .ml file
>   -intf <file>  Compile <file> as a .mli file
>   -intf-suffix <string>  Suffix for interface files (default: .mli)
>   -intf_suffix <string>  (deprecated) same as -intf-suffix
>   -keep-docs  Keep documentation strings in .cmi files
>   -no-keep-docs  Do not keep documentation strings in .cmi files (default)
>   -keep-locs  Keep locations in .cmi files (default)
>   -no-keep-locs  Do not keep locations in .cmi files
>   -keywords <version+list>  set keywords following the <version+list> spec:
> 
>                   -<version> if present specifies the base set of keywords
> 
>                     (if absent the current set of keywords is used)
>                   -<list> is a "+"-separated list of keywords to add to
> 
>                     the base set of keywords.
>   
>   -labels  Use commuting label mode
>   -linkall  Link all modules, even unused ones
>   -make-runtime  Build a runtime system with given C objects and libraries
>   -make_runtime  (deprecated) same as -make-runtime
>   -modern  (deprecated) same as -labels
>   -alias-deps  Do record dependencies for module aliases
>   -no-alias-deps  Do not record dependencies for module aliases
>   -app-funct  Activate applicative functors
>   -no-app-funct  Deactivate applicative functors
>   -no-check-prims  Do not check runtime for primitives
>   -noassert  Do not compile assertion checks
>   -noautolink  Do not automatically link C libraries specified in .cma files
>   -nolabels  Ignore non-optional labels in types
>   -nostdlib  Do not add default directory to the list of include directories
>   -nocwd  Do not implicitly add the current directory to the load path
>   -nopervasives  (undocumented)
>   -o <file>  Set output file name to <file>
>   -opaque  Does not generate cross-module optimization information
>      (reduces necessary recompilation on module change)
>   -open <module>  Opens the module <module> before typing
>   -output-obj  Output an object file instead of an executable
>   -output-complete-obj  Output an object file, including runtime, instead of an executable
>   -output-complete-exe  Output a self-contained executable, including runtime and C stubs
>   -pack  Package the given .cmo files into one .cmo
>   -pp <command>  Pipe sources through preprocessor <command>
>   -ppx <command>  Pipe abstract syntax trees through preprocessor <command>
>   -plugin <plugin>  (no longer supported)
>   -principal  Check principality of type inference
>   -no-principal  Do not check principality of type inference (default)
>   -rectypes  Allow arbitrary recursive types
>   -no-rectypes  Do not allow arbitrary recursive types (default)
>   -runtime-variant <str>  Use the <str> variant of the run-time system
>   -with-runtime Include the runtime system in the generated program (default)
>   -without-runtime Do not include the runtime system in the generated program.
>   -safe-string  (default unconditionally since 5.0)
>   -safer-matching  Do not use type information to optimize pattern-matching
>   -set-runtime-default <param>=<value>  Set the default for runtime parameter <param> to <value>
>   -short-paths  Shorten paths in types
>   -strict-sequence  Left-hand part of a sequence must have type unit
>   -no-strict-sequence  Left-hand part of a sequence need not have type unit (default)
>   -strict-formats  Reject invalid formats accepted by legacy implementations (default)
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should always use this flag
>       to detect invalid formats so you can fix them.)
>   -no-strict-formats  Accept invalid formats accepted by legacy implementations
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should never use this flag
>       and instead fix invalid formats.)
>   -thread  (deprecated) same as -I +threads
>   -unboxed-types  unannotated unboxable types will be unboxed
>   -no-unboxed-types  unannotated unboxable types will not be unboxed (default)
>   -unsafe  Do not compile bounds checking on array and string access
>   -unsafe-string  (option not available)
>   -use-runtime <file>  Generate bytecode for the given runtime system
>   -use_runtime <file>  (deprecated) same as -use-runtime
>   -launch-method <method>  Use <method> for the bytecode launcher rather than the mechanism in runtime-launch-info
>   -runtime-search {disable|enable|always}  Control the way the bytecode header searches for the interpreter
>     The following settings are supported:
>       disable  use a fixed absolute path to the runtime
>       enable   search for runtime only if not found at the absolute path
>       always   always search for the runtime
>     The default setting is 'enable'.
>   -v  Print compiler version and location of standard library and exit
>   -verbose  Print calls to external commands
>   -version  Print version and exit
>   --version  Print version and exit
>   -vmthread   (no longer supported)
>   -vnum  Print version number and exit
>   -w <list>  Enable or disable warnings according to <list>:
>         +<spec>   enable warnings in <spec>
>         -<spec>   disable warnings in <spec>
>         @<spec>   enable warnings in <spec> and treat them as errors
>      <spec> can be:
>         <num>             a single warning number
>         <num1>..<num2>    a range of consecutive warning numbers
>         <letter>          a predefined set
>      default setting is "+a-4-7-9-27-29-30-32..42-44-45-48-50-60-66..70-74"
>   -warn-error <list>  Enable or disable error status for warnings according
>      to <list>.  See option -w for the syntax of <list>.
>      Default setting is "-a"
>   -warn-help  Show description of warning numbers
>   -where  Print location of standard library and exit
>   - <file>  Treat <file> as a file name (even if it starts with `-')
>   -match-context-rows <n>  (advanced, see manual section 13.2.)
>   -use-prims <file>  (undocumented)
>   -dno-unique-ids  (undocumented)
>   -dunique-ids  (undocumented)
>   -dno-canonical-ids  (undocumented)
>   -dcanonical-ids  (undocumented)
>   -dno-locations  (undocumented)
>   -dlocations  (undocumented)
>   -dsource  (undocumented)
>   -dparsetree  (undocumented)
>   -dtypedtree  (undocumented)
>   -dshape  (undocumented)
>   -dmatchcomp  (undocumented)
>   -drawlambda  (undocumented)
>   -dlambda  (undocumented)
>   -dinstr  (undocumented)
>   -dcamlprimc  (undocumented)
>   -dtimings  Print timings information for each pass
>   -dprofile  Print performance information for each pass
>     The columns are: time alloc top-heap absolute-top-heap.
>   -dump-into-file  dump output like -dlambda into <target>.dump
>   -dump-dir <dir> dump output like -dlambda into <dir>/<target>.dump
>   -args <file> Read additional newline-terminated command line arguments
>       from <file>
>   -args0 <file> Read additional null character terminated command line arguments
> from <file>
>   -help  Display this list of options
>   --help  Display this list of options
$prefix/$bindir\ocamldebug.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamldebug (from $prefix/$bindir\ocamldebug.exe) -M <exit 2>
> ocamldebug: unknown option '-M'.
> Usage: ocamldebug [options] <program> [arguments]
> Options are:
>   -c <count>  Set max number of checkpoints kept
>   -cd <dir>  Change working directory
>   -emacs For running the debugger under emacs; implies -machine-readable
>   -I <dir>  Add <dir> to the list of include directories
>   -machine-readable Print information in a format more suitable for machines
>   -s <filename>  Set the name of the communication socket
>   -version  Print version and exit
>   -vnum  Print version number and exit
>   -no-version  Do not print version at startup
>   -no-prompt  Suppress all prompts
>   -no-time  Do not print times
>   -no-breakpoint-message  Do not print message at breakpoint setup and removal
>   -help  Display this list of options
>   --help  Display this list of options
$prefix/$bindir\ocamldep.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamldep.byte (from $prefix/$bindir\ocamldep.byte.exe) -M <exit 2>
> ocamldep.byte: unknown option '-M'.
> Usage: ocamldep.byte <options> <files>
> Try 'ocamldep.byte --help' for more information.
$prefix/$bindir\ocamldoc.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamldoc (from $prefix/$bindir\ocamldoc.exe) -M <exit 2>
> ocamldoc: unknown option '-M'.
> Usage: ocamldoc [options] <files>
> Options are:
>   -absname      Show absolute filenames in error messages
>   -no-absname   Do not try to show absolute filenames in error messages (default)
>   -alert <list>  Enable or disable alerts according to <list>:
>         +<alertname>  enable alert <alertname>
>         -<alertname>  disable alert <alertname>
>         ++<alertname> treat <alertname> as fatal error
>         --<alertname> treat <alertname> as non-fatal
>         @<alertname>  enable <alertname> and treat it as fatal error
>     <alertname> can be 'all' to refer to all alert names
>   -i-variance   Print inferred variances
>   -I <dir>      Add <dir> to the list of include directories
>   -H <dir>      Add <dir> to the list of "hidden" include directories
>      (Like -I, but the program can not directly reference these dependencies)
>   -impl <file>  Compile <file> as a .ml file
>   -intf <file>  Compile <file> as a .mli file
>   -intf-suffix <string>  Suffix for interface files (default: .mli)
>   -intf_suffix <string>  (deprecated) same as -intf-suffix
>   -keywords <version+list>  set keywords following the <version+list> spec:
> 
>                   -<version> if present specifies the base set of keywords
> 
>                     (if absent the current set of keywords is used)
>                   -<list> is a "+"-separated list of keywords to add to
> 
>                     the base set of keywords.
>   
>   -labels       Use commuting label mode
>   -modern       (deprecated) same as -labels
>   -alias-deps   Do record dependencies for module aliases
>   -no-alias-deps  Do not record dependencies for module aliases
>   -app-funct    Activate applicative functors
>   -no-app-funct  Deactivate applicative functors
>   -noassert     Do not compile assertion checks
>   -nolabels     Ignore non-optional labels in types
>   -nostdlib     Do not add default directory to the list of include directories
>   -nocwd        Do not implicitly add the current directory to the load path
>   -open <module>  Opens the module <module> before typing
>   -pp <command>  Pipe sources through preprocessor <command>
>   -ppx <command>  Pipe abstract syntax trees through preprocessor <command>
>   -principal    Check principality of type inference
>   -no-principal  Do not check principality of type inference (default)
>   -rectypes     Allow arbitrary recursive types
>   -no-rectypes  Do not allow arbitrary recursive types (default)
>   -safe-string  (default unconditionally since 5.0)
>   -short-paths  Shorten paths in types
>   -strict-sequence  Left-hand part of a sequence must have type unit
>   -no-strict-sequence  Left-hand part of a sequence need not have type unit (default)
>   -strict-formats  Reject invalid formats accepted by legacy implementations (default)
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should always use this flag
>       to detect invalid formats so you can fix them.)
>   -no-strict-formats  Accept invalid formats accepted by legacy implementations
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should never use this flag
>       and instead fix invalid formats.)
>   -thread       (deprecated) same as -I +threads
>   -unboxed-types  unannotated unboxable types will be unboxed
>   -no-unboxed-types  unannotated unboxable types will not be unboxed (default)
>   -unsafe-string  (option not available)
>   -v            Print compiler version and location of standard library and exit
>   -verbose      Print calls to external commands
>   -version      Print version and exit
>   --version     Print version and exit
>   -vmthread     (no longer supported)
>   -vnum         Print version number and exit
>   -w <list>     Enable or disable warnings according to <list>:
>         +<spec>   enable warnings in <spec>
>         -<spec>   disable warnings in <spec>
>         @<spec>   enable warnings in <spec> and treat them as errors
>      <spec> can be:
>         <num>             a single warning number
>         <num1>..<num2>    a range of consecutive warning numbers
>         <letter>          a predefined set
>      default setting is "+a-4-7-9-27-29-30-32..42-44-45-48-50-60-66..70-74"
>   - <file>      Treat <file> as a file name (even if it starts with `-')
>   -initially-opened-module <module> Name of the module that is initially opened
>   -lib <module> Name of the library namespace for a prefixed library.Note: very experimental.
>   -text <file>  Consider <file> as a .txt file
>   -warn-error   Treat ocamldoc warnings as errors
>   -show-missed-crossref  Show missed cross-reference opportunities
>   -hide-warnings  do not print ocamldoc warnings
>   -o <file> Set the output file name, used by texi, latex and dot generators
>  	(default is ocamldoc.out)
> 		or the prefix of index files for the HTML generator
> 		(default is index)
>   -d <dir> Generate files in directory <dir>, rather than in current
>  	directory (for man and HTML generators)
>   -sort         Sort the list of top modules before generating the documentation
>   -no-stop      Do not stop at (**/**) comments
>   -no-custom-tags  Do not allow custom @-tags
>   -stars        Remove beginning blanks of comment lines, until the first '*'
>   -inv-merge-ml-mli  Inverse implementations and interfaces when merging
>   -no-module-constraint-filter Do not filter module elements using module type constraints
>   -keep-code    Always keep code when available
> 
>   -dump <file>  Dump collected information into <file>
>   -load <file>  Load information from <file> ; may be used several times
> 
>   -t <title>    Use <title> as title for the generated documentation
>   -intro <file> Use content of <file> as ocamldoc text to use as introduction
>  	(HTML, LaTeX and TeXinfo only)
>   -hide <M1,M2.M3,...> Hide the given complete module names in generated doc
>   -m <options> specify merge options between .mli and .ml
>  	<options> can be one or more of the following characters:
> 		d  merge description
> 		a  merge @author
> 		v  merge @version
> 		l  merge @see
> 		s  merge @since
> 		b  merge @before
> 		o  merge @deprecated
> 		p  merge @param
> 		e  merge @raise
> 		r  merge @return
> 		c  merge custom @-tags
> 		A  merge all
> 
>  *** choosing a generator ***
> 
>   -html         Generate HTML documentation
>   -latex        Generate LaTeX documentation
>   -texi         Generate TeXinfo documentation
>   -man          Generate man pages
>   -dot          Generate dot code of top modules dependencies
>   -customdir Display custom generators standard directory and exit
>   -i <dir> Add the given directory to the search path for custom
>  	generators
>   -g <file.cm[o|a|xs]> Load file defining a new documentation generator
> 
>  *** HTML options ***
> 
>   -all-params  Display the complete list of parameters for functions and
>  	methods (HTML only)
>   -css-style <file> Use content of <file> as CSS style definition (HTML only)
>   -index-only   Generate index files only (HTML only)
>   -colorize-code  Colorize code even in documentation pages (HTML only)
>   -short-functors  Use short form to display functor types (HTML only)
>   -charset <s> Add information about character encoding being s
>  	(default is UTF-8)
>   -nonavbar     Do not include the navigation bar (HTML only)
> 
>  *** LaTeX options ***
> 
>   -noheader  Suppress header in generated documentation
>  	(LaTeX and TeXinfo only)
>   -notrailer  Suppress trailer in generated documentation
>  	(LaTeX and TeXinfo only)
>   -sepfiles     Generate one file per toplevel module (LaTeX only)
>   -latextitle n,style Associate {n } to the given sectioning style
>  	(e.g. 'section') in the latex output (LaTeX only)
> 		Default sectioning is:
> 		 0 -> section
> 		 1 -> section
> 		 2 -> subsection
> 		 3 -> subsubsection
> 		 4 -> paragraph
> 		 5 -> subparagraph
>   -latex-value-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of values.
> 		(default is "val:")
>   -latex-type-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of types.
> 		(default is "type:")
>   -latex-exception-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of exceptions.
> 		(default is "exception:")
>   -latex-attribute-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of attributes.
> 		(default is "val:")
>   -latex-method-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of methods.
> 		(default is "method:")
>   -latex-module-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of modules.
> 		(default is "module:")
>   -latex-module-type-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of module types.
> 		(default is "moduletype:")
>   -latex-class-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of classes.
> 		(default is "class:")
>   -latex-class-type-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of class types.
> 		(default is "classtype:")
>   -latex-escape-underscore escape underscore in references
>   -notoc        Do not generate table of contents (LaTeX only)
> 
>  *** texinfo options ***
> 
>   -noindex      Do not build index for Info files (TeXinfo only)
>   -esc8         Escape accentuated characters in Info files (TeXinfo only)
>   -texinfotitle n,style Associate {n } to the given sectioning style
>  	(e.g. 'section') in the texInfo output (TeXinfo only)
> 		Default sectioning is:
> 		 0 -> @chapter , @majorheading  
> 		 1 -> @chapter , @majorheading  
> 		 2 -> @section , @heading  
> 		 3 -> @subsection , @subheading  
> 		 4 -> @subsubsection , @subsubheading  
>   -info-section  Specify section of Info directory (TeXinfo only)
>   -info-entry   Specify Info directory entry (TeXinfo only)
> 
>  *** dot options ***
> 
>   -dot-colors  <c1,c2,...,cn>
>  	Use colors c1,c1,...,cn in the dot output
> 		(default list is darkturquoise,darkgoldenrod2,cyan,green,
> 		magenta,yellow,burlywood1,aquamarine,floralwhite,lightpink,
> 		lightblue,mediumturquoise,salmon,slategray3)
>   -dot-include-all  Include all modules in the dot output, not only the
>  	modules given on the command line
>   -dot-types    Generate dependency graph for types instead of modules
>   -dot-reduce  Perform a transitive reduction on the selected dependency graph
>  	before the dot output
> 
>  *** man pages options ***
> 
>   -man-mini  Generate man pages only for modules, module types, classes
>  	and class types (man only)
>   -man-suffix <suffix> Use <suffix> for man page files (default is 3o) (man only)
> 
>   -man-section <section> Use <section> in man page files (default is 3) (man only)
> 
>   -help         Display this list of options
>   --help        Display this list of options
$prefix/$bindir\ocamllex.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamllex.byte (from $prefix/$bindir\ocamllex.byte.exe) -M <exit 2>
> ocamllex.byte: unknown option '-M'.
> Usage: ocamllex [options] sourcefile
> Options are:
>   -ml  Output code that does not use the Lexing module built-in automata interpreter
>   -o  <file>  Set output file name to <file>
>   -q  Do not display informational messages
>   -v  Print version and exit
>   -version  Print version and exit
>   -vnum  Print version number and exit
>   -help  Display this list of options
>   --help  Display this list of options
$prefix/$bindir\ocamlmklib.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlmklib (from $prefix/$bindir\ocamlmklib.exe) -M <exit 4>
> Unknown option -M
> Usage: ocamlmklib [options] <.cmo|.cma|.cmx|.ml|.mli|.o|.a|.obj|.lib|
>                              .dll|.dylib files>
> Options are:
>   -args <file>   Read additional newline-terminated command line arguments
>                  from <file>
>   -args0 <file>  Read additional null character terminated command line
>                  arguments from <file>
>   -cclib <lib>   C library passed to ocamlc -a or ocamlopt -a only
>   -ccopt <opt>   C option passed to ocamlc -a or ocamlopt -a only
>   -custom        Disable dynamic loading
>   -g             Build with debug information
>   -dllpath <dir> Add <dir> to the run-time search path for DLLs
>   -F<dir>        Specify a framework directory (MacOSX)
>   -framework <name>    Use framework <name> (MacOSX)
>   -help          Print this help message and exit
>   --help         Same as -help
>   -h             Same as -help
>   -I <dir>       Add <dir> to the path searched for OCaml object files
>   -failsafe      fall back to static linking if DLL construction failed
>   -ldopt <opt>   C option passed to the shared linker only
>   -linkall       Build OCaml archive with link-all behavior
>   -l<lib>        Specify a dependent C library
>   -L<dir>        Add <dir> to the path searched for C libraries
>   -ocamlc <cmd>  Use <cmd> in place of "ocamlc"
>   -ocamlcflags <opt>    Pass <opt> to ocamlc
>   -ocamlopt <cmd> Use <cmd> in place of "ocamlopt"
>   -ocamloptflags <opt>  Pass <opt> to ocamlopt
>   -o <name>      Generated OCaml library is named <name>.cma or <name>.cmxa
>   -oc <name>     Generated C library is named dll<name>.so or lib<name>.a
>   -rpath <dir>   Same as -dllpath <dir>
>   -R<dir>        Same as -rpath
>   -suffixed      Append runtime ID to any generated shared libraries
>   -verbose       Print commands before executing them
>   -v             same as -verbose
>   -version       Print version and exit
>   -vnum          Print version number and exit
>   -Wl,-rpath,<dir>     Same as -dllpath <dir>
>   -Wl,-rpath -Wl,<dir> Same as -dllpath <dir>
>   -Wl,-R<dir>          Same as -dllpath <dir>
$prefix/$bindir\ocamlmktop.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlmktop (from $prefix/$bindir\ocamlmktop.exe) -M <exit 2>
> C:\ocamlmgw64-44068\bin\ocamlc.exe: unknown option '-M'.
> Usage: ocamlc <options> <files>
> Try 'ocamlc --help' for more information.
$prefix/$bindir\ocamlobjinfo.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlobjinfo.byte (from $prefix/$bindir\ocamlobjinfo.byte.exe) -M <exit 2>
> ocamlobjinfo.byte: unknown option '-M'.
> ocamlobjinfo.byte [OPTIONS] FILES : give information on files
>   -quiet  Only print explicitly required information
>   -no-approx  Do not print module approximation information
>   -no-code  Do not print code from exported flambda functions
>   -shape  Print the shape of the module
>   -index  Print a list of all usages of values, types, etc. in the module
>   -decls  Print a list of all declarations in the module
>   -uid-deps  Print the declarations' uids dependencies of the module
>   -null-crc  Print a null CRC for imported interfaces
>   -version  Print version and exit
>   -vnum  Print version number and exit
>   -args <file> Read additional newline separated command line arguments 
>       from <file>
>   -args0 <file> Read additional NUL separated command line arguments from 
>       <file>
>   -help  Display this list of options
>   --help  Display this list of options
$prefix/$bindir\ocamlopt.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlopt.byte (from $prefix/$bindir\ocamlopt.byte.exe) -M <exit 2>
> ocamlopt.byte: unknown option '-M'.
> Usage: ocamlopt <options> <files>
> Try 'ocamlopt --help' for more information.
$prefix/$bindir\ocamloptp.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamloptp (from $prefix/$bindir\ocamloptp.exe) -M <exit 2>
> ocamloptp: unknown option '-M'.
> Usage: ocamloptp <options> <files>
> Options are:
>   -P [afilmt]  Profile constructs specified by argument (default fm):
>       a  Everything
>       f  Function calls and method calls
>       i  if ... then ... else
>       l  while and for loops
>       m  match ... with
>       t  try ... with
>   -a  Build a library
>   -alert <list>  Enable or disable alerts according to <list>:
>         +<alertname>  enable alert <alertname>
>         -<alertname>  disable alert <alertname>
>         ++<alertname> treat <alertname> as fatal error
>         --<alertname> treat <alertname> as non-fatal
>         @<alertname>  enable <alertname> and treat it as fatal error
>     <alertname> can be 'all' to refer to all alert names
>   -absname  Show absolute filenames in error messages
>   -no-absname  Do not try to show absolute filenames in error messages (default)
>   -afl-instrument Enable instrumentation for afl-fuzz
>   -afl-inst-ratio Configure percentage of branches instrumented
>      (advanced, see afl-fuzz docs for AFL_INST_RATIO)
>   -annot  (deprecated) Save information in <filename>.annot
>   -bin-annot  Save typedtree in <filename>.cmt
>   -bin-annot-occurrences  Store every occurrence of a bound name in the .cmt file.
> This information can be used by external tools to provide
> features such as project-wide occurrences. This flag has
> no effect in the absence of '-bin-annot'.
>   -inline-branch-factor <n>|<round>=<n>[,...]  Estimate the probability of a branch being cold as 1/(1+n) (used for inlining) (default 0.10)
>   -c  Compile only (do not link)
>   -cc <command>  Use <command> as the C compiler and linker
>   -cclib <opt>  Pass option <opt> to the C linker
>   -ccopt <opt>  Pass option <opt> to the C compiler and linker
>   -cmi-file <file>  Use the <file> interface file to type-check
>   -clambda-checks  Instrument clambda code with closure and field access checks (for debugging the compiler)
>   -Oclassic  Make inlining decisions at function definition time rather than at the call site (replicates previous behaviour of the compiler)
>   -color {auto|always|never}  Enable or disable colors in compiler messages
>     The following settings are supported:
>       auto    use heuristics to enable colors only if supported
>       always  enable colors
>       never   disable colors
>     The default setting is 'auto', and the current heuristic
>     checks that the TERM environment variable exists and is
>     not empty or "dumb", and that isatty(stderr) holds.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_COLOR environment variable.
>   -error-style {contextual|short}  Control the way error messages and warnings are printed
>     The following settings are supported:
>       short       only print the error and its location
>       contextual  like "short", but also display the source code
>                   snippet corresponding to the location of the error
>     The default setting is 'contextual'.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_ERROR_STYLE environment variable.
>   -compact  Optimize code size rather than speed
>   -config  Print configuration values and exit
>   -config-var  Print the value of a configuration variable, without a newline, and exit
>     (print nothing and exit with error value if the variable does not exist)
>   -dtypes  (deprecated) same as -annot
>   -for-pack <ident>  Generate code that can later be `packed' with
>      ocamlopt -pack -o <ident>.cmx
>   -g  Record debugging information for exception backtrace
>   -no-g  Do not record debugging information (default)
>   -function-sections  (option not available)
>   -stop-after {parsing|typing|lambda|scheduling|emit} Stop after the given compilation pass.
>   -save-ir-after {scheduling} Save intermediate representation after the given compilation pass(may be specified more than once).
>   -i  Print inferred interface
>   -i-variance  Print inferred variances
>   -I <dir>  Add <dir> to the list of include directories
>   -H <dir>  Add <dir> to the list of "hidden" include directories
>      (Like -I, but the program can not directly reference these dependencies)
>   -impl <file>  Compile <file> as a .ml file
>   -inline <n>|<round>=<n>[,...]  Aggressiveness of inlining (default 1.25, higher numbers mean more aggressive)
>   -inline-toplevel <n>|<round>=<n>[,...]  Aggressiveness of inlining at toplevel (higher numbers mean more aggressive)
>   -inline-alloc-cost <n>|<round>=<n>[,...]  The cost of not removing an allocation during inlining (default 7, higher numbers more costly)
>   -inline-branch-cost <n>|<round>=<n>[,...]  The cost of not removing a conditional during inlining (default 5, higher numbers more costly)
>   -inline-call-cost <n>|<round>=<n>[,...]  The cost of not removing a call during inlining (default 5, higher numbers more costly)
>   -inline-prim-cost <n>|<round>=<n>[,...]  The cost of not removing a primitive during inlining (default 3, higher numbers more costly)
>   -inline-indirect-cost <n>|<round>=<n>[,...]  The cost of not removing an indirect call during inlining (default 4, higher numbers more costly)
>   -inline-lifting-benefit <n>|<round>=<n>[,...]  The benefit of lifting definitions to toplevel during inlining (default 1300, higher numbers more beneficial)
>   -inlining-report  Emit `.<round>.inlining' file(s) (one per round) showing the inliner's decisions
>   -insn-sched  Run the instruction scheduling pass (default)
>   -intf <file>  Compile <file> as a .mli file
>   -intf-suffix <string>  Suffix for interface files (default: .mli)
>   -keep-docs  Keep documentation strings in .cmi files
>   -no-keep-docs  Do not keep documentation strings in .cmi files (default)
>   -keep-locs  Keep locations in .cmi files (default)
>   -no-keep-locs  Do not keep locations in .cmi files
>   -keywords <version+list>  set keywords following the <version+list> spec:
> 
>                   -<version> if present specifies the base set of keywords
> 
>                     (if absent the current set of keywords is used)
>                   -<list> is a "+"-separated list of keywords to add to
> 
>                     the base set of keywords.
>   
>   -labels  Use commuting label mode
>   -linkall  Link all modules, even unused ones
>   -inline-max-depth <n>|<round>=<n>[,...]  Maximum depth of search for inlining opportunities inside inlined functions (default 1)
>   -alias-deps  Do record dependencies for module aliases
>   -no-alias-deps  Do not record dependencies for module aliases
>   -linscan  Use the linear scan register allocator
>   -app-funct  Activate applicative functors
>   -no-app-funct  Deactivate applicative functors
>   -no-float-const-prop  Deactivate constant propagation for floating-point operations
>   -noassert  Do not compile assertion checks
>   -noautolink  Do not automatically link C libraries specified in .cmxa files
>   -nodynlink  Enable optimizations for code that will not be dynlinked
>   -no-insn-sched  Do not run the instruction scheduling pass
>   -nolabels  Ignore non-optional labels in types
>   -nostdlib  Do not add default directory to the list of include directories
>   -nocwd  Do not implicitly add the current directory to the load path
>   -nopervasives  (undocumented)
>   -no-unbox-free-vars-of-closures  Do not unbox variables that will appear inside function closures
>   -no-unbox-specialised-args  Do not unbox arguments to which functions have been specialised
>   -o <file>  Set output file name to <file>
>   -O2  Apply increased optimization for speed
>   -O3  Apply aggressive optimization for speed (may significantly increase code size and compilation time)
>   -opaque  Does not generate cross-module optimization information
>      (reduces necessary recompilation on module change)
>   -open <module>  Opens the module <module> before typing
>   -output-obj  Output an object file instead of an executable
>   -output-complete-obj  Output an object file, including runtime, instead of an executable
>   -p  (no longer supported)
>   -pack  Package the given .cmx files into one .cmx
>   -plugin <plugin>  (no longer supported)
>   -pp <command>  Pipe sources through preprocessor <command>
>   -ppx <command>  Pipe abstract syntax trees through preprocessor <command>
>   -principal  Check principality of type inference
>   -no-principal  Do not check principality of type inference (default)
>   -rectypes  Allow arbitrary recursive types
>   -no-rectypes  Do not allow arbitrary recursive types (default)
>   -remove-unused-arguments  Remove unused function arguments
>   -rounds <n>  Repeat tree optimization and inlining phases this many times (default 1).  Rounds are numbered starting from zero.
>   -runtime-variant <str>  Use the <str> variant of the run-time system
>   -with-runtime Include the runtime system in the generated program (default)
>   -without-runtime Do not include the runtime system in the generated program.
>   -S  Keep intermediate assembly file
>   -safe-string  (default unconditionally since 5.0)
>   -safer-matching  Do not use type information to optimize pattern-matching
>   -set-runtime-default <param>=<value>  Set the default for runtime parameter <param> to <value>
>   -shared  Produce a dynlinkable plugin
>   -short-paths  Shorten paths in types
>   -strict-sequence  Left-hand part of a sequence must have type unit
>   -no-strict-sequence  Left-hand part of a sequence need not have type unit (default)
>   -strict-formats  Reject invalid formats accepted by legacy implementations (default)
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should always use this flag
>       to detect invalid formats so you can fix them.)
>   -no-strict-formats  Accept invalid formats accepted by legacy implementations
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should never use this flag
>       and instead fix invalid formats.)
>   -thread  (deprecated) same as -I +threads
>   -unbox-closures  Pass free variables via specialised arguments rather than closures
>   -unbox-closures-factor <n > 0>  Scale the size threshold above which unbox-closures will slow down indirect calls rather than duplicating a function (default 10)
>   -inline-max-unroll <n>|<round>=<n>[,...]  Unroll recursive functions at most this many times (default 0)
>   -unboxed-types  unannotated unboxable types will be unboxed
>   -no-unboxed-types  unannotated unboxable types will not be unboxed (default)
>   -unsafe  Do not compile bounds checking on array and string access
>   -unsafe-string  (option not available)
>   -v  Print compiler version and location of standard library and exit
>   -verbose  Print calls to external commands
>   -version  Print version and exit
>   --version  Print version and exit
>   -vnum  Print version number and exit
>   -w <list>  Enable or disable warnings according to <list>:
>         +<spec>   enable warnings in <spec>
>         -<spec>   disable warnings in <spec>
>         @<spec>   enable warnings in <spec> and treat them as errors
>      <spec> can be:
>         <num>             a single warning number
>         <num1>..<num2>    a range of consecutive warning numbers
>         <letter>          a predefined set
>      default setting is "+a-4-7-9-27-29-30-32..42-44-45-48-50-60-66..70-74"
>   -warn-error <list>  Enable or disable error status for warnings according
>      to <list>.  See option -w for the syntax of <list>.
>      Default setting is "-a"
>   -warn-help  Show description of warning numbers
>   -where  Print location of standard library and exit
>   - <file>  Treat <file> as a file name (even if it starts with `-')
>   -match-context-rows <n>  (advanced, see manual section 13.2.)
>   -dno-unique-ids  (undocumented)
>   -dunique-ids  (undocumented)
>   -dno-canonical-ids  (undocumented)
>   -dcanonical-ids  (undocumented)
>   -dno-locations  (undocumented)
>   -dlocations  (undocumented)
>   -dsource  (undocumented)
>   -dparsetree  (undocumented)
>   -dtypedtree  (undocumented)
>   -dshape  (undocumented)
>   -dmatchcomp  (undocumented)
>   -drawlambda  (undocumented)
>   -dlambda  (undocumented)
>   -drawclambda  (undocumented)
>   -dclambda  (undocumented)
>   -dcmm-invariants  Extra sanity checks on Cmm
>   -dflambda  Print Flambda terms
>   -drawflambda  Print Flambda terms after closure conversion
>   -dflambda-invariants  Check Flambda invariants around each pass
>   -dflambda-no-invariants  Do not Check Flambda invariants around each pass
>   -dflambda-let <stamp>  Print when the given Flambda [Let] is created
>   -dflambda-verbose  Print Flambda terms including around each pass
>   -dcmm  (undocumented)
>   -dsel  (undocumented)
>   -dcombine  (undocumented)
>   -dcse  (undocumented)
>   -dlive  (undocumented)
>   -dspill  (undocumented)
>   -dsplit  (undocumented)
>   -dinterf  (undocumented)
>   -dprefer  (undocumented)
>   -dalloc  (undocumented)
>   -dreload  (undocumented)
>   -dscheduling  (undocumented)
>   -dlinear  (undocumented)
>   -dinterval  (undocumented)
>   -dstartup  (undocumented)
>   -dtimings  Print timings information for each pass
>   -dprofile  Print performance information for each pass
>     The columns are: time alloc top-heap absolute-top-heap.
>   -dump-into-file  dump output like -dlambda into <target>.dump
>   -dump-dir <dir> dump output like -dlambda into <dir>/<target>.dump
>   -dump-pass  Record transformations performed by these passes: 
>   -args <file> Read additional newline-terminated command line arguments
>       from <file>
>   -args0 <file> Read additional null character terminated command line arguments
> from <file>
>   -help  Display this list of options
>   --help  Display this list of options
$prefix/$bindir\ocamlprof.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlprof (from $prefix/$bindir\ocamlprof.exe) -M <exit 2>
> ocamlprof: unknown option '-M'.
> Usage: ocamlprof <options> <files>
> Options are:
>   -f <file>     Use <file> as dump file (default ocamlprof.dump)
>   -F <s>        Insert string <s> with the counts
>   -impl <file>  Process <file> as a .ml file
>   -instrument   (undocumented)
>   -intf <file>  Process <file> as a .mli file
>   -keywords <version+keywords> Specify keyword set.
>   -m <flags>    (undocumented)
>   -version      Print version and exit
>   -vnum         Print version number and exit
>   -args <file> Read additional newline separated command line arguments 
>       from <file>
>   -args0 <file> Read additional NUL separated command line arguments from 
>       <file>
>   -help  Display this list of options
>   --help  Display this list of options

Testing compilation mechanisms for $prefix/$bindir
$prefix/$bindir\ocamlc.exe -where
$prefix/$bindir\ocamlopt.exe -where
ocamlc -where: $prefix\$libdir
ocamlopt -where: $prefix\$libdir
$prefix/$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-complete-obj
$CC -o $PWD\nat_complete_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o  -lasmrun_shared  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lasmrun_shared"
$prefix/$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -output-complete-obj
$CC -o $PWD\nat_complete_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o  -lasmrun  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix/$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-obj
$CC -o $PWD\nat_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcomprmarsh -lunixnat  -lasmrun_shared  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lasmrun_shared"
$prefix/$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -output-obj
$CC -o $PWD\nat_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcomprmarsh -lunixnat  -lasmrun  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix/$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o $PWD\nat_default.exe test_install_script.ml
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_complete_exe_shared.exe test_install_script.ml -runtime-variant _shared -output-complete-exe <exit 2>
> ** Fatal error: Cannot find file "-lcamlrun-x86_64-w64-mingw32-0018"
> File "test_install_script.ml", line 1:
> Error: Error while building custom runtime system
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_complete_exe_static.exe test_install_script.ml -output-complete-exe
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-complete-obj
$CC -o $PWD\byt_complete_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcamlrun_shared   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lcamlrun_shared"
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -output-complete-obj
$CC -o $PWD\byt_complete_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcamlrun   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-obj
$CC -o $PWD\byt_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lunixbyt -lcamlrun_shared   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lcamlrun_shared"
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -output-obj
$CC -o $PWD\byt_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lunixbyt -lcamlrun   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\custom_shared.exe test_install_script.ml -runtime-variant _shared -custom <exit 2>
> ** Fatal error: Cannot find file "-lcamlrun-x86_64-w64-mingw32-0018"
> File "test_install_script.ml", line 1:
> Error: Error while building custom runtime system
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\custom_static.exe test_install_script.ml -custom
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_default_exe_always.exe test_install_script.ml -runtime-search always
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_default_exe_enable.exe test_install_script.ml
$prefix/$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_default_exe_disable.exe test_install_script.ml -runtime-search disable
Running programs
$PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe true $prefix $libdir
test-prog (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe test-prog true $prefix $libdir
sh (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe sh true $prefix $libdir
.\byt_default_exe_disable (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe .\byt_default_exe_disable true $prefix $libdir
byt_default_exe_disable (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe byt_default_exe_disable true $prefix $libdir
byt_default_exe_disable (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe byt_default_exe_disable true $prefix $libdir

$PWD\byt_default_exe_enable.exe skip $PWD\byt_default_exe_enable.exe $PWD\byt_default_exe_enable.exe true $prefix $libdir
test-prog (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe test-prog true $prefix $libdir
sh (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe sh true $prefix $libdir
.\byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe .\byt_default_exe_enable true $prefix $libdir
byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe byt_default_exe_enable true $prefix $libdir
byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe byt_default_exe_enable true $prefix $libdir

$PWD\byt_default_exe_always.exe skip $PWD\byt_default_exe_always.exe $PWD\byt_default_exe_always.exe true $prefix $libdir
test-prog (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe test-prog true $prefix $libdir
sh (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe sh true $prefix $libdir
.\byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe .\byt_default_exe_always true $prefix $libdir
byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe byt_default_exe_always true $prefix $libdir
byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe byt_default_exe_always true $prefix $libdir

$PWD\custom_static.exe skip $PWD\custom_static.exe $PWD\custom_static.exe true $prefix $libdir
test-prog (from $PWD\custom_static.exe) skip $PWD\custom_static.exe test-prog true $prefix $libdir
sh (from $PWD\custom_static.exe) skip $PWD\custom_static.exe sh true $prefix $libdir
.\custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe .\custom_static true $prefix $libdir
custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe custom_static true $prefix $libdir
custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe custom_static true $prefix $libdir

$PWD\byt_obj_static.exe skip $PWD\byt_obj_static.exe $PWD\byt_obj_static.exe true $prefix $libdir
test-prog (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe sh true $prefix $libdir
.\byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe .\byt_obj_static true $prefix $libdir
byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe byt_obj_static true $prefix $libdir
byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe byt_obj_static true $prefix $libdir

$PWD\byt_complete_obj_static.exe skip $PWD\byt_complete_obj_static.exe $PWD\byt_complete_obj_static.exe true $prefix $libdir
test-prog (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe sh true $prefix $libdir
.\byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe .\byt_complete_obj_static true $prefix $libdir
byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe byt_complete_obj_static true $prefix $libdir
byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe byt_complete_obj_static true $prefix $libdir

$PWD\byt_complete_exe_static.exe skip $PWD\byt_complete_exe_static.exe $PWD\byt_complete_exe_static.exe true $prefix $libdir
test-prog (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe test-prog true $prefix $libdir
sh (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe sh true $prefix $libdir
.\byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe .\byt_complete_exe_static true $prefix $libdir
byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe byt_complete_exe_static true $prefix $libdir
byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe byt_complete_exe_static true $prefix $libdir

$PWD\nat_default.exe skip $PWD\nat_default.exe $PWD\nat_default.exe true $prefix $libdir
test-prog (from $PWD\nat_default.exe) skip $PWD\nat_default.exe test-prog true $prefix $libdir
sh (from $PWD\nat_default.exe) skip $PWD\nat_default.exe sh true $prefix $libdir
.\nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe .\nat_default true $prefix $libdir
nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe nat_default true $prefix $libdir
nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe nat_default true $prefix $libdir

$PWD\nat_obj_static.exe skip $PWD\nat_obj_static.exe $PWD\nat_obj_static.exe true $prefix $libdir
test-prog (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe sh true $prefix $libdir
.\nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe .\nat_obj_static true $prefix $libdir
nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe nat_obj_static true $prefix $libdir
nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe nat_obj_static true $prefix $libdir

$PWD\nat_complete_obj_static.exe skip $PWD\nat_complete_obj_static.exe $PWD\nat_complete_obj_static.exe true $prefix $libdir
test-prog (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe sh true $prefix $libdir
.\nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe .\nat_complete_obj_static true $prefix $libdir
nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe nat_complete_obj_static true $prefix $libdir
nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe nat_complete_obj_static true $prefix $libdir

Renaming $prefix to $prefix.new

Re-running test programs
$prefix.new\$bindir\ocamlrun.exe $PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe false $prefix $libdir
> Environment
>   PATH=$prefix.new\$bindir:$PATH
$prefix.new\$bindir\ocamlrun.exe $PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe false $prefix $libdir
$prefix.new\$bindir\ocamlrun.exe $PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe false $prefix $libdir
$prefix.new\$bindir\ocamlrun.exe $PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe false $prefix $libdir
$prefix.new\$bindir\ocamlrun.exe $PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe false $prefix $libdir
$prefix.new\$bindir\ocamlrun.exe $PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe false $prefix $libdir

$PWD\byt_default_exe_enable.exe skip $PWD\byt_default_exe_enable.exe $PWD\byt_default_exe_enable.exe false $prefix $libdir
test-prog (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe test-prog false $prefix $libdir
sh (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe sh false $prefix $libdir
.\byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe .\byt_default_exe_enable false $prefix $libdir
byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe byt_default_exe_enable false $prefix $libdir
byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe byt_default_exe_enable false $prefix $libdir

$PWD\byt_default_exe_always.exe skip $PWD\byt_default_exe_always.exe $PWD\byt_default_exe_always.exe false $prefix $libdir
test-prog (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe test-prog false $prefix $libdir
sh (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe sh false $prefix $libdir
.\byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe .\byt_default_exe_always false $prefix $libdir
byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe byt_default_exe_always false $prefix $libdir
byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe byt_default_exe_always false $prefix $libdir

$PWD\custom_static.exe skip $PWD\custom_static.exe $PWD\custom_static.exe false $prefix $libdir
test-prog (from $PWD\custom_static.exe) skip $PWD\custom_static.exe test-prog false $prefix $libdir
sh (from $PWD\custom_static.exe) skip $PWD\custom_static.exe sh false $prefix $libdir
.\custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe .\custom_static false $prefix $libdir
custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe custom_static false $prefix $libdir
custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe custom_static false $prefix $libdir

$PWD\byt_obj_static.exe skip $PWD\byt_obj_static.exe $PWD\byt_obj_static.exe false $prefix $libdir
test-prog (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe test-prog false $prefix $libdir
sh (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe sh false $prefix $libdir
.\byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe .\byt_obj_static false $prefix $libdir
byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe byt_obj_static false $prefix $libdir
byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe byt_obj_static false $prefix $libdir

$PWD\byt_complete_obj_static.exe skip $PWD\byt_complete_obj_static.exe $PWD\byt_complete_obj_static.exe false $prefix $libdir
test-prog (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe test-prog false $prefix $libdir
sh (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe sh false $prefix $libdir
.\byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe .\byt_complete_obj_static false $prefix $libdir
byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe byt_complete_obj_static false $prefix $libdir
byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe byt_complete_obj_static false $prefix $libdir

$PWD\byt_complete_exe_static.exe skip $PWD\byt_complete_exe_static.exe $PWD\byt_complete_exe_static.exe false $prefix $libdir
test-prog (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe test-prog false $prefix $libdir
sh (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe sh false $prefix $libdir
.\byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe .\byt_complete_exe_static false $prefix $libdir
byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe byt_complete_exe_static false $prefix $libdir
byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe byt_complete_exe_static false $prefix $libdir

$PWD\nat_default.exe skip $PWD\nat_default.exe $PWD\nat_default.exe false $prefix $libdir
test-prog (from $PWD\nat_default.exe) skip $PWD\nat_default.exe test-prog false $prefix $libdir
sh (from $PWD\nat_default.exe) skip $PWD\nat_default.exe sh false $prefix $libdir
.\nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe .\nat_default false $prefix $libdir
nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe nat_default false $prefix $libdir
nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe nat_default false $prefix $libdir

$PWD\nat_obj_static.exe skip $PWD\nat_obj_static.exe $PWD\nat_obj_static.exe false $prefix $libdir
test-prog (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe test-prog false $prefix $libdir
sh (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe sh false $prefix $libdir
.\nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe .\nat_obj_static false $prefix $libdir
nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe nat_obj_static false $prefix $libdir
nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe nat_obj_static false $prefix $libdir

$PWD\nat_complete_obj_static.exe skip $PWD\nat_complete_obj_static.exe $PWD\nat_complete_obj_static.exe false $prefix $libdir
test-prog (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe test-prog false $prefix $libdir
sh (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe sh false $prefix $libdir
.\nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe .\nat_complete_obj_static false $prefix $libdir
nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe nat_complete_obj_static false $prefix $libdir
nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe nat_complete_obj_static false $prefix $libdir


Testing loading of libraries with bytecode dynlink
$prefix.new\$bindir\ocamlc.exe -I +dynlink dynlink.cma -linkall -o $PWD\test_script.exe test_install_script.ml
$PWD\test_script.exe runtime_events
> Loaded runtime_events.cma
$PWD\test_script.exe str
> Loaded str.cma
$PWD\test_script.exe unix threads
> Loaded unix.cma
> Loaded threads.cma
$PWD\test_script.exe unix
> Loaded unix.cma

Testing loading of libraries with native dynlink
$prefix.new\$bindir\ocamlopt.exe -I +dynlink dynlink.cmxa -linkall -o $PWD\test_script.exe test_install_script.ml
$PWD\test_script.exe runtime_events
> Loaded runtime_events.cmxs
$PWD\test_script.exe str
> Loaded str.cmxs
$PWD\test_script.exe unix threads
> Loaded unix.cmxs
> Loaded threads.cmxs
$PWD\test_script.exe unix
> Loaded unix.cmxs
Testing loading of libraries in $prefix.new\$bindir\ocaml.exe
$prefix.new\$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded dynlink.cma
$prefix.new\$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded runtime_events.cma
$prefix.new\$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded str.cma
$prefix.new\$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cma
> Loaded threads.cma
$prefix.new\$bindir\ocaml.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cma
Testing loading of libraries in $prefix.new\$bindir\ocamlnat.exe
$prefix.new\$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded dynlink.cmxa
$prefix.new\$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded runtime_events.cmxs
$prefix.new\$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded str.cmxs
$prefix.new\$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cmxs
> Loaded threads.cmxs
$prefix.new\$bindir\ocamlnat.exe -noinit -no-version -noprompt test_install_script.ml
> Loaded unix.cmxs

Testing processing of ld.conf
$prefix.new\$bindir\ocamlc.exe -I +compiler-libs ocamlcommon.cma ocamlbytecomp.cma -o $PWD\test_ld_conf.byte.exe test_install_script.ml
$prefix.new\$bindir\ocamlopt.exe -I +compiler-libs ocamlcommon.cmxa ocamlbytecomp.cmxa -o $PWD\test_ld_conf.opt.exe test_install_script.ml
- Base ld.conf test
Backing up $prefix.new\$libdir\ld.conf to $prefix.new\$libdir\ld.conf.bak
$prefix.new\$bindir\ocamlrun.exe -config
$PWD\test_ld_conf.byte.exe
$PWD\test_ld_conf.opt.exe
- Base ld.conf + CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH=;/;//;.;..;.\;..\;.\stublibs;..\stublibs;stublibs;.stublibs;..stublibs;C:\ocamlmgw64-44068.new\lib\ocaml;/lib/ocaml $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=;/;//;.;..;.\;..\;.\stublibs;..\stublibs;stublibs;.stublibs;..stublibs;C:\ocamlmgw64-44068.new\lib\ocaml;/lib/ocaml $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=;/;//;.;..;.\;..\;.\stublibs;..\stublibs;stublibs;.stublibs;..stublibs;C:\ocamlmgw64-44068.new\lib\ocaml;/lib/ocaml $PWD\test_ld_conf.opt.exe
- Base ld.conf + quoted CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH="quoted";quote"in"entry;one";"entry;one";"two";three $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH="quoted";quote"in"entry;one";"entry;one";"two";three $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH="quoted";quote"in"entry;one";"entry;one";"two";three $PWD\test_ld_conf.opt.exe
- Base ld.conf with CRLF endings
$prefix.new\$bindir\ocamlrun.exe -config
$PWD\test_ld_conf.byte.exe
$PWD\test_ld_conf.opt.exe
- Empty CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH= $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH= $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH= $PWD\test_ld_conf.opt.exe
- Embedded empty entry in CAML_LD_LIBRARY_PATH
CAML_LD_LIBRARY_PATH=; $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=; $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=; $PWD\test_ld_conf.opt.exe
- Empty CAMLLIB
CAML_LD_LIBRARY_PATH=env CAMLLIB= $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env CAMLLIB= $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env CAMLLIB= $PWD\test_ld_conf.opt.exe
- Empty OCAMLLIB
CAML_LD_LIBRARY_PATH=env OCAMLLIB= CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env OCAMLLIB= CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env OCAMLLIB= CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.opt.exe
- $OCAMLLIB/ld.conf
CAML_LD_LIBRARY_PATH=env OCAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\ocamllib CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env OCAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\ocamllib CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env OCAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\ocamllib CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.opt.exe
- $CAMLLIB/ld.conf
CAML_LD_LIBRARY_PATH=env CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $prefix.new\$bindir\ocamlrun.exe -config
CAML_LD_LIBRARY_PATH=env CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.byte.exe
CAML_LD_LIBRARY_PATH=env CAMLLIB=C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\in_prefix\camllib $PWD\test_ld_conf.opt.exe
- EOF-at-EOF
$prefix.new\$bindir\ocamlrun.exe -config
$PWD\test_ld_conf.byte.exe
$PWD\test_ld_conf.opt.exe
Restoring $prefix.new\$libdir\ld.conf.bak to $prefix.new\$libdir\ld.conf

Testing bytecode binaries in $prefix.new\$bindir
$prefix.new\$bindir\flexlink.byte.exe -vnum
> 0.43
flexlink.byte (from $prefix.new\$bindir\flexlink.byte.exe) -M <exit 2>
> flexlink.byte: unknown option '-M'.
> FlexDLL version 0.43
> 
> Usage:
>   flexlink -o <result.dll/exe> file1.obj file2.obj ... -- <extra linker arguments>
> 
>   -o                  Choose the name of the output file
>   -exe                Link the main program as an exe file
>   -maindll            Link the main program as a dll file
>   -noflexdllobj       Do not add the Flexdll runtime object (for exe)
>   -noentry            Do not use the Flexdll entry point (for dll)
>   -noexport           Do not export any symbol
>   -norelrelocs        Ensure that no relative relocation is generated
>   -base               Specify base address (Win64 only)
>   -I <dir>            Add a directory where to search for files
>   -L <dir>            Add a directory where to search for files
>   -l <lib>            Library file
>   -chain {msvc|msvc64|cygwin64|mingw|mingw64|gnat|gnat64|ld}
>                       Choose which linker to use
>   -x64                (Deprecated)
>   -defaultlib <obj>   External object (no export, no import)
>   -save-temps         Do not delete intermediate files
>   -implib             Do not delete the generated import library
>   -outdef             Produce a def file with exported symbols
>   -v                  Increment verbosity (can be repeated)
>   -show-exports       Show exported symbols
>   -show-imports       Show imported symbols
>   -dry                Show the linker command line, do not actually run it
>   -dump               Only dump the content of object files
>   -patch              Only patch the target image (to be used with -stack)
>   -nocygpath          Do not use cygpath (default for msvc, mingw)
>   -cygpath            Use cygpath (default for cygwin)
>   -no-merge-manifest  Do not merge the manifest (takes precedence over -merge-manifest)
>   -merge-manifest     Merge manifest to the dll or exe (if generated)
>   -real-manifest      Use the generated manifest (default behavior)
>   -default-manifest   Use the default manifest (default.manifest/default_amd64.manifest)
>   -export <sym>       Explicitly export a symbol
>   -noreexport         Do not reexport symbols imported from import libraries
>   -where              Show the FlexDLL directory
>   -nounderscore       Normal symbols are not prefixed with an underscore
>   -nodefaultlibs      Do not assume any default library
>   -builtin            Use built-in linker to produce a dll
>   -explain            Explain why library objects are linked
>   -subsystem <id>     Set the subsystem (default: console)
>   -custom-crt         Use a custom CRT
>   -stack <int>        Set the stack reserve in the resulting image
>   -link <option>      Next argument is passed verbatim to the linker
>   -g                  (ignored)
>   -D <symbol>         (Ignored)
>   -U <symbol>         (Ignored)
>   --                  Following arguments are passed verbatim to the linker
>   -version            Print linker version and FlexDLL directory and exit
>   -vnum               Print linker version number and exit
>   -help               Display this list of options
>   --help              Display this list of options
> 
> Notes:
> * The -I, -l and -L options do not need to be separated from their argument.
> * An option like /linkXXX is an abbrevation for '-link XXX'.
> * An option like -Wl,-XXX is an abbreviation for '-link -XXX'.
> * FlexDLL's object files are searched by default in the same directory as
>   flexlink, or in the directory given by the environment variable FLEXDIR
>   if it is defined.
> * Extra argument can be passed in the environment variable FLEXLINKFLAGS.
> 
> Homepage: http://alain.frisch.fr/flexdll.html
$prefix.new\$bindir\ocaml.exe -vnum
> 5.4.0+dev0-2024-08-25
ocaml (from $prefix.new\$bindir\ocaml.exe) -M <exit 2>
> ocaml: unknown option '-M'.
> Usage: ocaml <options> <files>
> Try 'ocaml --help' for more information.
$prefix.new\$bindir\ocamlc.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlc.byte (from $prefix.new\$bindir\ocamlc.byte.exe) -M <exit 2>
> ocamlc.byte: unknown option '-M'.
> Usage: ocamlc <options> <files>
> Try 'ocamlc --help' for more information.
$prefix.new\$bindir\ocamlcmt.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlcmt (from $prefix.new\$bindir\ocamlcmt.exe) -M <exit 2>
> ocamlcmt: unknown option '-M'.
> Read FILE.cmt and print related information
> Usage: ocamlcmt [options] FILE.cmt
> Options are:
>   -o <file>       Dump to file <file> (or stdout if -)
>   -annot          Generate the corresponding .annot file
>   -save-cmt-info  Encapsulate additional cmt information in annotations
>   -src            Convert .cmt or .cmti back to source code (without comments)
>   -info           : print information on the file
>   -version        Print version and exit
>   -vnum           Print version number and exit
>   -args <file>    Read additional newline separated command line arguments 
>       from <file>
>   -args0 <file>   Read additional NUL separated command line arguments from 
>       <file>
>   -I <dir>        Add <dir> to the list of include directories
>   -help           Display this list of options
>   --help          Display this list of options
$prefix.new\$bindir\ocamlcp.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlcp (from $prefix.new\$bindir\ocamlcp.exe) -M <exit 2>
> ocamlcp: unknown option '-M'.
> Usage: ocamlcp <options> <files>
> Options are:
>   -P [afilmt]  Profile constructs specified by argument (default fm):
>       a  Everything
>       f  Function calls and method calls
>       i  if ... then ... else
>       l  while and for loops
>       m  match ... with
>       t  try ... with
>   -p [afilmt]  Same as option -P
>   -a  Build a library
>   -alert <list>  Enable or disable alerts according to <list>:
>         +<alertname>  enable alert <alertname>
>         -<alertname>  disable alert <alertname>
>         ++<alertname> treat <alertname> as fatal error
>         --<alertname> treat <alertname> as non-fatal
>         @<alertname>  enable <alertname> and treat it as fatal error
>     <alertname> can be 'all' to refer to all alert names
>   -absname  Show absolute filenames in error messages
>   -no-absname  Do not try to show absolute filenames in error messages (default)
>   -annot  (deprecated) Save information in <filename>.annot
>   -bin-annot  Save typedtree in <filename>.cmt
>   -bin-annot-occurrences  Store every occurrence of a bound name in the .cmt file.
> This information can be used by external tools to provide
> features such as project-wide occurrences. This flag has
> no effect in the absence of '-bin-annot'.
>   -c  Compile only (do not link)
>   -cc <command>  Use <command> as the C compiler and linker
>   -cclib <opt>  Pass option <opt> to the C linker
>   -ccopt <opt>  Pass option <opt> to the C compiler and linker
>   -cmi-file <file>  Use the <file> interface file to type-check
>   -color {auto|always|never}  Enable or disable colors in compiler messages
>     The following settings are supported:
>       auto    use heuristics to enable colors only if supported
>       always  enable colors
>       never   disable colors
>     The default setting is 'auto', and the current heuristic
>     checks that the TERM environment variable exists and is
>     not empty or "dumb", and that isatty(stderr) holds.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_COLOR environment variable.
>   -error-style {contextual|short}  Control the way error messages and warnings are printed
>     The following settings are supported:
>       short       only print the error and its location
>       contextual  like "short", but also display the source code
>                   snippet corresponding to the location of the error
>     The default setting is 'contextual'.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_ERROR_STYLE environment variable.
>   -compat-32  Check that generated bytecode can run on 32-bit platforms
>   -config  Print configuration values and exit
>   -config-var  Print the value of a configuration variable, without a newline, and exit
>     (print nothing and exit with error value if the variable does not exist)
>   -custom  Link in custom mode
>   -dllib <lib>  Use the dynamically-loaded library <lib>
>   -dllib-suffixed <lib>  Use the dynamically-loaded library <lib>, with runtime suffix appended to the name
>   -dllpath <dir>  Add <dir> to the run-time search path for shared libraries
>   -dtypes  (deprecated) same as -annot
>   -for-pack <ident>  Generate code that can later be `packed' with
>      ocamlc -pack -o <ident>.cmo
>   -g  Save debugging information
>   -no-g  Do not record debugging information (default)
>   -stop-after {parsing|typing|lambda} Stop after the given compilation pass.
>   -i  Print inferred interface
>   -i-variance  Print inferred variances
>   -I <dir>  Add <dir> to the list of include directories
>   -H <dir>  Add <dir> to the list of "hidden" include directories
>      (Like -I, but the program can not directly reference these dependencies)
>   -impl <file>  Compile <file> as a .ml file
>   -intf <file>  Compile <file> as a .mli file
>   -intf-suffix <string>  Suffix for interface files (default: .mli)
>   -intf_suffix <string>  (deprecated) same as -intf-suffix
>   -keep-docs  Keep documentation strings in .cmi files
>   -no-keep-docs  Do not keep documentation strings in .cmi files (default)
>   -keep-locs  Keep locations in .cmi files (default)
>   -no-keep-locs  Do not keep locations in .cmi files
>   -keywords <version+list>  set keywords following the <version+list> spec:
> 
>                   -<version> if present specifies the base set of keywords
> 
>                     (if absent the current set of keywords is used)
>                   -<list> is a "+"-separated list of keywords to add to
> 
>                     the base set of keywords.
>   
>   -labels  Use commuting label mode
>   -linkall  Link all modules, even unused ones
>   -make-runtime  Build a runtime system with given C objects and libraries
>   -make_runtime  (deprecated) same as -make-runtime
>   -modern  (deprecated) same as -labels
>   -alias-deps  Do record dependencies for module aliases
>   -no-alias-deps  Do not record dependencies for module aliases
>   -app-funct  Activate applicative functors
>   -no-app-funct  Deactivate applicative functors
>   -no-check-prims  Do not check runtime for primitives
>   -noassert  Do not compile assertion checks
>   -noautolink  Do not automatically link C libraries specified in .cma files
>   -nolabels  Ignore non-optional labels in types
>   -nostdlib  Do not add default directory to the list of include directories
>   -nocwd  Do not implicitly add the current directory to the load path
>   -nopervasives  (undocumented)
>   -o <file>  Set output file name to <file>
>   -opaque  Does not generate cross-module optimization information
>      (reduces necessary recompilation on module change)
>   -open <module>  Opens the module <module> before typing
>   -output-obj  Output an object file instead of an executable
>   -output-complete-obj  Output an object file, including runtime, instead of an executable
>   -output-complete-exe  Output a self-contained executable, including runtime and C stubs
>   -pack  Package the given .cmo files into one .cmo
>   -pp <command>  Pipe sources through preprocessor <command>
>   -ppx <command>  Pipe abstract syntax trees through preprocessor <command>
>   -plugin <plugin>  (no longer supported)
>   -principal  Check principality of type inference
>   -no-principal  Do not check principality of type inference (default)
>   -rectypes  Allow arbitrary recursive types
>   -no-rectypes  Do not allow arbitrary recursive types (default)
>   -runtime-variant <str>  Use the <str> variant of the run-time system
>   -with-runtime Include the runtime system in the generated program (default)
>   -without-runtime Do not include the runtime system in the generated program.
>   -safe-string  (default unconditionally since 5.0)
>   -safer-matching  Do not use type information to optimize pattern-matching
>   -set-runtime-default <param>=<value>  Set the default for runtime parameter <param> to <value>
>   -short-paths  Shorten paths in types
>   -strict-sequence  Left-hand part of a sequence must have type unit
>   -no-strict-sequence  Left-hand part of a sequence need not have type unit (default)
>   -strict-formats  Reject invalid formats accepted by legacy implementations (default)
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should always use this flag
>       to detect invalid formats so you can fix them.)
>   -no-strict-formats  Accept invalid formats accepted by legacy implementations
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should never use this flag
>       and instead fix invalid formats.)
>   -thread  (deprecated) same as -I +threads
>   -unboxed-types  unannotated unboxable types will be unboxed
>   -no-unboxed-types  unannotated unboxable types will not be unboxed (default)
>   -unsafe  Do not compile bounds checking on array and string access
>   -unsafe-string  (option not available)
>   -use-runtime <file>  Generate bytecode for the given runtime system
>   -use_runtime <file>  (deprecated) same as -use-runtime
>   -launch-method <method>  Use <method> for the bytecode launcher rather than the mechanism in runtime-launch-info
>   -runtime-search {disable|enable|always}  Control the way the bytecode header searches for the interpreter
>     The following settings are supported:
>       disable  use a fixed absolute path to the runtime
>       enable   search for runtime only if not found at the absolute path
>       always   always search for the runtime
>     The default setting is 'enable'.
>   -v  Print compiler version and location of standard library and exit
>   -verbose  Print calls to external commands
>   -version  Print version and exit
>   --version  Print version and exit
>   -vmthread   (no longer supported)
>   -vnum  Print version number and exit
>   -w <list>  Enable or disable warnings according to <list>:
>         +<spec>   enable warnings in <spec>
>         -<spec>   disable warnings in <spec>
>         @<spec>   enable warnings in <spec> and treat them as errors
>      <spec> can be:
>         <num>             a single warning number
>         <num1>..<num2>    a range of consecutive warning numbers
>         <letter>          a predefined set
>      default setting is "+a-4-7-9-27-29-30-32..42-44-45-48-50-60-66..70-74"
>   -warn-error <list>  Enable or disable error status for warnings according
>      to <list>.  See option -w for the syntax of <list>.
>      Default setting is "-a"
>   -warn-help  Show description of warning numbers
>   -where  Print location of standard library and exit
>   - <file>  Treat <file> as a file name (even if it starts with `-')
>   -match-context-rows <n>  (advanced, see manual section 13.2.)
>   -use-prims <file>  (undocumented)
>   -dno-unique-ids  (undocumented)
>   -dunique-ids  (undocumented)
>   -dno-canonical-ids  (undocumented)
>   -dcanonical-ids  (undocumented)
>   -dno-locations  (undocumented)
>   -dlocations  (undocumented)
>   -dsource  (undocumented)
>   -dparsetree  (undocumented)
>   -dtypedtree  (undocumented)
>   -dshape  (undocumented)
>   -dmatchcomp  (undocumented)
>   -drawlambda  (undocumented)
>   -dlambda  (undocumented)
>   -dinstr  (undocumented)
>   -dcamlprimc  (undocumented)
>   -dtimings  Print timings information for each pass
>   -dprofile  Print performance information for each pass
>     The columns are: time alloc top-heap absolute-top-heap.
>   -dump-into-file  dump output like -dlambda into <target>.dump
>   -dump-dir <dir> dump output like -dlambda into <dir>/<target>.dump
>   -args <file> Read additional newline-terminated command line arguments
>       from <file>
>   -args0 <file> Read additional null character terminated command line arguments
> from <file>
>   -help  Display this list of options
>   --help  Display this list of options
$prefix.new\$bindir\ocamldebug.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamldebug (from $prefix.new\$bindir\ocamldebug.exe) -M <exit 2>
> ocamldebug: unknown option '-M'.
> Usage: ocamldebug [options] <program> [arguments]
> Options are:
>   -c <count>  Set max number of checkpoints kept
>   -cd <dir>  Change working directory
>   -emacs For running the debugger under emacs; implies -machine-readable
>   -I <dir>  Add <dir> to the list of include directories
>   -machine-readable Print information in a format more suitable for machines
>   -s <filename>  Set the name of the communication socket
>   -version  Print version and exit
>   -vnum  Print version number and exit
>   -no-version  Do not print version at startup
>   -no-prompt  Suppress all prompts
>   -no-time  Do not print times
>   -no-breakpoint-message  Do not print message at breakpoint setup and removal
>   -help  Display this list of options
>   --help  Display this list of options
$prefix.new\$bindir\ocamldep.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamldep.byte (from $prefix.new\$bindir\ocamldep.byte.exe) -M <exit 2>
> ocamldep.byte: unknown option '-M'.
> Usage: ocamldep.byte <options> <files>
> Try 'ocamldep.byte --help' for more information.
$prefix.new\$bindir\ocamldoc.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamldoc (from $prefix.new\$bindir\ocamldoc.exe) -M <exit 2>
> ocamldoc: unknown option '-M'.
> Usage: ocamldoc [options] <files>
> Options are:
>   -absname      Show absolute filenames in error messages
>   -no-absname   Do not try to show absolute filenames in error messages (default)
>   -alert <list>  Enable or disable alerts according to <list>:
>         +<alertname>  enable alert <alertname>
>         -<alertname>  disable alert <alertname>
>         ++<alertname> treat <alertname> as fatal error
>         --<alertname> treat <alertname> as non-fatal
>         @<alertname>  enable <alertname> and treat it as fatal error
>     <alertname> can be 'all' to refer to all alert names
>   -i-variance   Print inferred variances
>   -I <dir>      Add <dir> to the list of include directories
>   -H <dir>      Add <dir> to the list of "hidden" include directories
>      (Like -I, but the program can not directly reference these dependencies)
>   -impl <file>  Compile <file> as a .ml file
>   -intf <file>  Compile <file> as a .mli file
>   -intf-suffix <string>  Suffix for interface files (default: .mli)
>   -intf_suffix <string>  (deprecated) same as -intf-suffix
>   -keywords <version+list>  set keywords following the <version+list> spec:
> 
>                   -<version> if present specifies the base set of keywords
> 
>                     (if absent the current set of keywords is used)
>                   -<list> is a "+"-separated list of keywords to add to
> 
>                     the base set of keywords.
>   
>   -labels       Use commuting label mode
>   -modern       (deprecated) same as -labels
>   -alias-deps   Do record dependencies for module aliases
>   -no-alias-deps  Do not record dependencies for module aliases
>   -app-funct    Activate applicative functors
>   -no-app-funct  Deactivate applicative functors
>   -noassert     Do not compile assertion checks
>   -nolabels     Ignore non-optional labels in types
>   -nostdlib     Do not add default directory to the list of include directories
>   -nocwd        Do not implicitly add the current directory to the load path
>   -open <module>  Opens the module <module> before typing
>   -pp <command>  Pipe sources through preprocessor <command>
>   -ppx <command>  Pipe abstract syntax trees through preprocessor <command>
>   -principal    Check principality of type inference
>   -no-principal  Do not check principality of type inference (default)
>   -rectypes     Allow arbitrary recursive types
>   -no-rectypes  Do not allow arbitrary recursive types (default)
>   -safe-string  (default unconditionally since 5.0)
>   -short-paths  Shorten paths in types
>   -strict-sequence  Left-hand part of a sequence must have type unit
>   -no-strict-sequence  Left-hand part of a sequence need not have type unit (default)
>   -strict-formats  Reject invalid formats accepted by legacy implementations (default)
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should always use this flag
>       to detect invalid formats so you can fix them.)
>   -no-strict-formats  Accept invalid formats accepted by legacy implementations
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should never use this flag
>       and instead fix invalid formats.)
>   -thread       (deprecated) same as -I +threads
>   -unboxed-types  unannotated unboxable types will be unboxed
>   -no-unboxed-types  unannotated unboxable types will not be unboxed (default)
>   -unsafe-string  (option not available)
>   -v            Print compiler version and location of standard library and exit
>   -verbose      Print calls to external commands
>   -version      Print version and exit
>   --version     Print version and exit
>   -vmthread     (no longer supported)
>   -vnum         Print version number and exit
>   -w <list>     Enable or disable warnings according to <list>:
>         +<spec>   enable warnings in <spec>
>         -<spec>   disable warnings in <spec>
>         @<spec>   enable warnings in <spec> and treat them as errors
>      <spec> can be:
>         <num>             a single warning number
>         <num1>..<num2>    a range of consecutive warning numbers
>         <letter>          a predefined set
>      default setting is "+a-4-7-9-27-29-30-32..42-44-45-48-50-60-66..70-74"
>   - <file>      Treat <file> as a file name (even if it starts with `-')
>   -initially-opened-module <module> Name of the module that is initially opened
>   -lib <module> Name of the library namespace for a prefixed library.Note: very experimental.
>   -text <file>  Consider <file> as a .txt file
>   -warn-error   Treat ocamldoc warnings as errors
>   -show-missed-crossref  Show missed cross-reference opportunities
>   -hide-warnings  do not print ocamldoc warnings
>   -o <file> Set the output file name, used by texi, latex and dot generators
>  	(default is ocamldoc.out)
> 		or the prefix of index files for the HTML generator
> 		(default is index)
>   -d <dir> Generate files in directory <dir>, rather than in current
>  	directory (for man and HTML generators)
>   -sort         Sort the list of top modules before generating the documentation
>   -no-stop      Do not stop at (**/**) comments
>   -no-custom-tags  Do not allow custom @-tags
>   -stars        Remove beginning blanks of comment lines, until the first '*'
>   -inv-merge-ml-mli  Inverse implementations and interfaces when merging
>   -no-module-constraint-filter Do not filter module elements using module type constraints
>   -keep-code    Always keep code when available
> 
>   -dump <file>  Dump collected information into <file>
>   -load <file>  Load information from <file> ; may be used several times
> 
>   -t <title>    Use <title> as title for the generated documentation
>   -intro <file> Use content of <file> as ocamldoc text to use as introduction
>  	(HTML, LaTeX and TeXinfo only)
>   -hide <M1,M2.M3,...> Hide the given complete module names in generated doc
>   -m <options> specify merge options between .mli and .ml
>  	<options> can be one or more of the following characters:
> 		d  merge description
> 		a  merge @author
> 		v  merge @version
> 		l  merge @see
> 		s  merge @since
> 		b  merge @before
> 		o  merge @deprecated
> 		p  merge @param
> 		e  merge @raise
> 		r  merge @return
> 		c  merge custom @-tags
> 		A  merge all
> 
>  *** choosing a generator ***
> 
>   -html         Generate HTML documentation
>   -latex        Generate LaTeX documentation
>   -texi         Generate TeXinfo documentation
>   -man          Generate man pages
>   -dot          Generate dot code of top modules dependencies
>   -customdir Display custom generators standard directory and exit
>   -i <dir> Add the given directory to the search path for custom
>  	generators
>   -g <file.cm[o|a|xs]> Load file defining a new documentation generator
> 
>  *** HTML options ***
> 
>   -all-params  Display the complete list of parameters for functions and
>  	methods (HTML only)
>   -css-style <file> Use content of <file> as CSS style definition (HTML only)
>   -index-only   Generate index files only (HTML only)
>   -colorize-code  Colorize code even in documentation pages (HTML only)
>   -short-functors  Use short form to display functor types (HTML only)
>   -charset <s> Add information about character encoding being s
>  	(default is UTF-8)
>   -nonavbar     Do not include the navigation bar (HTML only)
> 
>  *** LaTeX options ***
> 
>   -noheader  Suppress header in generated documentation
>  	(LaTeX and TeXinfo only)
>   -notrailer  Suppress trailer in generated documentation
>  	(LaTeX and TeXinfo only)
>   -sepfiles     Generate one file per toplevel module (LaTeX only)
>   -latextitle n,style Associate {n } to the given sectioning style
>  	(e.g. 'section') in the latex output (LaTeX only)
> 		Default sectioning is:
> 		 0 -> section
> 		 1 -> section
> 		 2 -> subsection
> 		 3 -> subsubsection
> 		 4 -> paragraph
> 		 5 -> subparagraph
>   -latex-value-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of values.
> 		(default is "val:")
>   -latex-type-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of types.
> 		(default is "type:")
>   -latex-exception-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of exceptions.
> 		(default is "exception:")
>   -latex-attribute-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of attributes.
> 		(default is "val:")
>   -latex-method-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of methods.
> 		(default is "method:")
>   -latex-module-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of modules.
> 		(default is "module:")
>   -latex-module-type-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of module types.
> 		(default is "moduletype:")
>   -latex-class-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of classes.
> 		(default is "class:")
>   -latex-class-type-prefix <string>
>  	Use <string> as prefix for the LaTeX labels of class types.
> 		(default is "classtype:")
>   -latex-escape-underscore escape underscore in references
>   -notoc        Do not generate table of contents (LaTeX only)
> 
>  *** texinfo options ***
> 
>   -noindex      Do not build index for Info files (TeXinfo only)
>   -esc8         Escape accentuated characters in Info files (TeXinfo only)
>   -texinfotitle n,style Associate {n } to the given sectioning style
>  	(e.g. 'section') in the texInfo output (TeXinfo only)
> 		Default sectioning is:
> 		 0 -> @chapter , @majorheading  
> 		 1 -> @chapter , @majorheading  
> 		 2 -> @section , @heading  
> 		 3 -> @subsection , @subheading  
> 		 4 -> @subsubsection , @subsubheading  
>   -info-section  Specify section of Info directory (TeXinfo only)
>   -info-entry   Specify Info directory entry (TeXinfo only)
> 
>  *** dot options ***
> 
>   -dot-colors  <c1,c2,...,cn>
>  	Use colors c1,c1,...,cn in the dot output
> 		(default list is darkturquoise,darkgoldenrod2,cyan,green,
> 		magenta,yellow,burlywood1,aquamarine,floralwhite,lightpink,
> 		lightblue,mediumturquoise,salmon,slategray3)
>   -dot-include-all  Include all modules in the dot output, not only the
>  	modules given on the command line
>   -dot-types    Generate dependency graph for types instead of modules
>   -dot-reduce  Perform a transitive reduction on the selected dependency graph
>  	before the dot output
> 
>  *** man pages options ***
> 
>   -man-mini  Generate man pages only for modules, module types, classes
>  	and class types (man only)
>   -man-suffix <suffix> Use <suffix> for man page files (default is 3o) (man only)
> 
>   -man-section <section> Use <section> in man page files (default is 3) (man only)
> 
>   -help         Display this list of options
>   --help        Display this list of options
$prefix.new\$bindir\ocamllex.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamllex.byte (from $prefix.new\$bindir\ocamllex.byte.exe) -M <exit 2>
> ocamllex.byte: unknown option '-M'.
> Usage: ocamllex [options] sourcefile
> Options are:
>   -ml  Output code that does not use the Lexing module built-in automata interpreter
>   -o  <file>  Set output file name to <file>
>   -q  Do not display informational messages
>   -v  Print version and exit
>   -version  Print version and exit
>   -vnum  Print version number and exit
>   -help  Display this list of options
>   --help  Display this list of options
$prefix.new\$bindir\ocamlmklib.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlmklib (from $prefix.new\$bindir\ocamlmklib.exe) -M <exit 4>
> Unknown option -M
> Usage: ocamlmklib [options] <.cmo|.cma|.cmx|.ml|.mli|.o|.a|.obj|.lib|
>                              .dll|.dylib files>
> Options are:
>   -args <file>   Read additional newline-terminated command line arguments
>                  from <file>
>   -args0 <file>  Read additional null character terminated command line
>                  arguments from <file>
>   -cclib <lib>   C library passed to ocamlc -a or ocamlopt -a only
>   -ccopt <opt>   C option passed to ocamlc -a or ocamlopt -a only
>   -custom        Disable dynamic loading
>   -g             Build with debug information
>   -dllpath <dir> Add <dir> to the run-time search path for DLLs
>   -F<dir>        Specify a framework directory (MacOSX)
>   -framework <name>    Use framework <name> (MacOSX)
>   -help          Print this help message and exit
>   --help         Same as -help
>   -h             Same as -help
>   -I <dir>       Add <dir> to the path searched for OCaml object files
>   -failsafe      fall back to static linking if DLL construction failed
>   -ldopt <opt>   C option passed to the shared linker only
>   -linkall       Build OCaml archive with link-all behavior
>   -l<lib>        Specify a dependent C library
>   -L<dir>        Add <dir> to the path searched for C libraries
>   -ocamlc <cmd>  Use <cmd> in place of "ocamlc"
>   -ocamlcflags <opt>    Pass <opt> to ocamlc
>   -ocamlopt <cmd> Use <cmd> in place of "ocamlopt"
>   -ocamloptflags <opt>  Pass <opt> to ocamlopt
>   -o <name>      Generated OCaml library is named <name>.cma or <name>.cmxa
>   -oc <name>     Generated C library is named dll<name>.so or lib<name>.a
>   -rpath <dir>   Same as -dllpath <dir>
>   -R<dir>        Same as -rpath
>   -suffixed      Append runtime ID to any generated shared libraries
>   -verbose       Print commands before executing them
>   -v             same as -verbose
>   -version       Print version and exit
>   -vnum          Print version number and exit
>   -Wl,-rpath,<dir>     Same as -dllpath <dir>
>   -Wl,-rpath -Wl,<dir> Same as -dllpath <dir>
>   -Wl,-R<dir>          Same as -dllpath <dir>
$prefix.new\$bindir\ocamlmktop.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlmktop (from $prefix.new\$bindir\ocamlmktop.exe) -M <exit 2>
> C:\ocamlmgw64-44068.new\bin\ocamlc.exe: unknown option '-M'.
> Usage: ocamlc <options> <files>
> Try 'ocamlc --help' for more information.
$prefix.new\$bindir\ocamlobjinfo.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlobjinfo.byte (from $prefix.new\$bindir\ocamlobjinfo.byte.exe) -M <exit 2>
> ocamlobjinfo.byte: unknown option '-M'.
> ocamlobjinfo.byte [OPTIONS] FILES : give information on files
>   -quiet  Only print explicitly required information
>   -no-approx  Do not print module approximation information
>   -no-code  Do not print code from exported flambda functions
>   -shape  Print the shape of the module
>   -index  Print a list of all usages of values, types, etc. in the module
>   -decls  Print a list of all declarations in the module
>   -uid-deps  Print the declarations' uids dependencies of the module
>   -null-crc  Print a null CRC for imported interfaces
>   -version  Print version and exit
>   -vnum  Print version number and exit
>   -args <file> Read additional newline separated command line arguments 
>       from <file>
>   -args0 <file> Read additional NUL separated command line arguments from 
>       <file>
>   -help  Display this list of options
>   --help  Display this list of options
$prefix.new\$bindir\ocamlopt.byte.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlopt.byte (from $prefix.new\$bindir\ocamlopt.byte.exe) -M <exit 2>
> ocamlopt.byte: unknown option '-M'.
> Usage: ocamlopt <options> <files>
> Try 'ocamlopt --help' for more information.
$prefix.new\$bindir\ocamloptp.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamloptp (from $prefix.new\$bindir\ocamloptp.exe) -M <exit 2>
> ocamloptp: unknown option '-M'.
> Usage: ocamloptp <options> <files>
> Options are:
>   -P [afilmt]  Profile constructs specified by argument (default fm):
>       a  Everything
>       f  Function calls and method calls
>       i  if ... then ... else
>       l  while and for loops
>       m  match ... with
>       t  try ... with
>   -a  Build a library
>   -alert <list>  Enable or disable alerts according to <list>:
>         +<alertname>  enable alert <alertname>
>         -<alertname>  disable alert <alertname>
>         ++<alertname> treat <alertname> as fatal error
>         --<alertname> treat <alertname> as non-fatal
>         @<alertname>  enable <alertname> and treat it as fatal error
>     <alertname> can be 'all' to refer to all alert names
>   -absname  Show absolute filenames in error messages
>   -no-absname  Do not try to show absolute filenames in error messages (default)
>   -afl-instrument Enable instrumentation for afl-fuzz
>   -afl-inst-ratio Configure percentage of branches instrumented
>      (advanced, see afl-fuzz docs for AFL_INST_RATIO)
>   -annot  (deprecated) Save information in <filename>.annot
>   -bin-annot  Save typedtree in <filename>.cmt
>   -bin-annot-occurrences  Store every occurrence of a bound name in the .cmt file.
> This information can be used by external tools to provide
> features such as project-wide occurrences. This flag has
> no effect in the absence of '-bin-annot'.
>   -inline-branch-factor <n>|<round>=<n>[,...]  Estimate the probability of a branch being cold as 1/(1+n) (used for inlining) (default 0.10)
>   -c  Compile only (do not link)
>   -cc <command>  Use <command> as the C compiler and linker
>   -cclib <opt>  Pass option <opt> to the C linker
>   -ccopt <opt>  Pass option <opt> to the C compiler and linker
>   -cmi-file <file>  Use the <file> interface file to type-check
>   -clambda-checks  Instrument clambda code with closure and field access checks (for debugging the compiler)
>   -Oclassic  Make inlining decisions at function definition time rather than at the call site (replicates previous behaviour of the compiler)
>   -color {auto|always|never}  Enable or disable colors in compiler messages
>     The following settings are supported:
>       auto    use heuristics to enable colors only if supported
>       always  enable colors
>       never   disable colors
>     The default setting is 'auto', and the current heuristic
>     checks that the TERM environment variable exists and is
>     not empty or "dumb", and that isatty(stderr) holds.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_COLOR environment variable.
>   -error-style {contextual|short}  Control the way error messages and warnings are printed
>     The following settings are supported:
>       short       only print the error and its location
>       contextual  like "short", but also display the source code
>                   snippet corresponding to the location of the error
>     The default setting is 'contextual'.
>   If the option is not specified, these setting can alternatively
>   be set through the OCAML_ERROR_STYLE environment variable.
>   -compact  Optimize code size rather than speed
>   -config  Print configuration values and exit
>   -config-var  Print the value of a configuration variable, without a newline, and exit
>     (print nothing and exit with error value if the variable does not exist)
>   -dtypes  (deprecated) same as -annot
>   -for-pack <ident>  Generate code that can later be `packed' with
>      ocamlopt -pack -o <ident>.cmx
>   -g  Record debugging information for exception backtrace
>   -no-g  Do not record debugging information (default)
>   -function-sections  (option not available)
>   -stop-after {parsing|typing|lambda|scheduling|emit} Stop after the given compilation pass.
>   -save-ir-after {scheduling} Save intermediate representation after the given compilation pass(may be specified more than once).
>   -i  Print inferred interface
>   -i-variance  Print inferred variances
>   -I <dir>  Add <dir> to the list of include directories
>   -H <dir>  Add <dir> to the list of "hidden" include directories
>      (Like -I, but the program can not directly reference these dependencies)
>   -impl <file>  Compile <file> as a .ml file
>   -inline <n>|<round>=<n>[,...]  Aggressiveness of inlining (default 1.25, higher numbers mean more aggressive)
>   -inline-toplevel <n>|<round>=<n>[,...]  Aggressiveness of inlining at toplevel (higher numbers mean more aggressive)
>   -inline-alloc-cost <n>|<round>=<n>[,...]  The cost of not removing an allocation during inlining (default 7, higher numbers more costly)
>   -inline-branch-cost <n>|<round>=<n>[,...]  The cost of not removing a conditional during inlining (default 5, higher numbers more costly)
>   -inline-call-cost <n>|<round>=<n>[,...]  The cost of not removing a call during inlining (default 5, higher numbers more costly)
>   -inline-prim-cost <n>|<round>=<n>[,...]  The cost of not removing a primitive during inlining (default 3, higher numbers more costly)
>   -inline-indirect-cost <n>|<round>=<n>[,...]  The cost of not removing an indirect call during inlining (default 4, higher numbers more costly)
>   -inline-lifting-benefit <n>|<round>=<n>[,...]  The benefit of lifting definitions to toplevel during inlining (default 1300, higher numbers more beneficial)
>   -inlining-report  Emit `.<round>.inlining' file(s) (one per round) showing the inliner's decisions
>   -insn-sched  Run the instruction scheduling pass (default)
>   -intf <file>  Compile <file> as a .mli file
>   -intf-suffix <string>  Suffix for interface files (default: .mli)
>   -keep-docs  Keep documentation strings in .cmi files
>   -no-keep-docs  Do not keep documentation strings in .cmi files (default)
>   -keep-locs  Keep locations in .cmi files (default)
>   -no-keep-locs  Do not keep locations in .cmi files
>   -keywords <version+list>  set keywords following the <version+list> spec:
> 
>                   -<version> if present specifies the base set of keywords
> 
>                     (if absent the current set of keywords is used)
>                   -<list> is a "+"-separated list of keywords to add to
> 
>                     the base set of keywords.
>   
>   -labels  Use commuting label mode
>   -linkall  Link all modules, even unused ones
>   -inline-max-depth <n>|<round>=<n>[,...]  Maximum depth of search for inlining opportunities inside inlined functions (default 1)
>   -alias-deps  Do record dependencies for module aliases
>   -no-alias-deps  Do not record dependencies for module aliases
>   -linscan  Use the linear scan register allocator
>   -app-funct  Activate applicative functors
>   -no-app-funct  Deactivate applicative functors
>   -no-float-const-prop  Deactivate constant propagation for floating-point operations
>   -noassert  Do not compile assertion checks
>   -noautolink  Do not automatically link C libraries specified in .cmxa files
>   -nodynlink  Enable optimizations for code that will not be dynlinked
>   -no-insn-sched  Do not run the instruction scheduling pass
>   -nolabels  Ignore non-optional labels in types
>   -nostdlib  Do not add default directory to the list of include directories
>   -nocwd  Do not implicitly add the current directory to the load path
>   -nopervasives  (undocumented)
>   -no-unbox-free-vars-of-closures  Do not unbox variables that will appear inside function closures
>   -no-unbox-specialised-args  Do not unbox arguments to which functions have been specialised
>   -o <file>  Set output file name to <file>
>   -O2  Apply increased optimization for speed
>   -O3  Apply aggressive optimization for speed (may significantly increase code size and compilation time)
>   -opaque  Does not generate cross-module optimization information
>      (reduces necessary recompilation on module change)
>   -open <module>  Opens the module <module> before typing
>   -output-obj  Output an object file instead of an executable
>   -output-complete-obj  Output an object file, including runtime, instead of an executable
>   -p  (no longer supported)
>   -pack  Package the given .cmx files into one .cmx
>   -plugin <plugin>  (no longer supported)
>   -pp <command>  Pipe sources through preprocessor <command>
>   -ppx <command>  Pipe abstract syntax trees through preprocessor <command>
>   -principal  Check principality of type inference
>   -no-principal  Do not check principality of type inference (default)
>   -rectypes  Allow arbitrary recursive types
>   -no-rectypes  Do not allow arbitrary recursive types (default)
>   -remove-unused-arguments  Remove unused function arguments
>   -rounds <n>  Repeat tree optimization and inlining phases this many times (default 1).  Rounds are numbered starting from zero.
>   -runtime-variant <str>  Use the <str> variant of the run-time system
>   -with-runtime Include the runtime system in the generated program (default)
>   -without-runtime Do not include the runtime system in the generated program.
>   -S  Keep intermediate assembly file
>   -safe-string  (default unconditionally since 5.0)
>   -safer-matching  Do not use type information to optimize pattern-matching
>   -set-runtime-default <param>=<value>  Set the default for runtime parameter <param> to <value>
>   -shared  Produce a dynlinkable plugin
>   -short-paths  Shorten paths in types
>   -strict-sequence  Left-hand part of a sequence must have type unit
>   -no-strict-sequence  Left-hand part of a sequence need not have type unit (default)
>   -strict-formats  Reject invalid formats accepted by legacy implementations (default)
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should always use this flag
>       to detect invalid formats so you can fix them.)
>   -no-strict-formats  Accept invalid formats accepted by legacy implementations
>      (Warning: Invalid formats may behave differently from
>       previous OCaml versions, and will become always-rejected
>       in future OCaml versions. You should never use this flag
>       and instead fix invalid formats.)
>   -thread  (deprecated) same as -I +threads
>   -unbox-closures  Pass free variables via specialised arguments rather than closures
>   -unbox-closures-factor <n > 0>  Scale the size threshold above which unbox-closures will slow down indirect calls rather than duplicating a function (default 10)
>   -inline-max-unroll <n>|<round>=<n>[,...]  Unroll recursive functions at most this many times (default 0)
>   -unboxed-types  unannotated unboxable types will be unboxed
>   -no-unboxed-types  unannotated unboxable types will not be unboxed (default)
>   -unsafe  Do not compile bounds checking on array and string access
>   -unsafe-string  (option not available)
>   -v  Print compiler version and location of standard library and exit
>   -verbose  Print calls to external commands
>   -version  Print version and exit
>   --version  Print version and exit
>   -vnum  Print version number and exit
>   -w <list>  Enable or disable warnings according to <list>:
>         +<spec>   enable warnings in <spec>
>         -<spec>   disable warnings in <spec>
>         @<spec>   enable warnings in <spec> and treat them as errors
>      <spec> can be:
>         <num>             a single warning number
>         <num1>..<num2>    a range of consecutive warning numbers
>         <letter>          a predefined set
>      default setting is "+a-4-7-9-27-29-30-32..42-44-45-48-50-60-66..70-74"
>   -warn-error <list>  Enable or disable error status for warnings according
>      to <list>.  See option -w for the syntax of <list>.
>      Default setting is "-a"
>   -warn-help  Show description of warning numbers
>   -where  Print location of standard library and exit
>   - <file>  Treat <file> as a file name (even if it starts with `-')
>   -match-context-rows <n>  (advanced, see manual section 13.2.)
>   -dno-unique-ids  (undocumented)
>   -dunique-ids  (undocumented)
>   -dno-canonical-ids  (undocumented)
>   -dcanonical-ids  (undocumented)
>   -dno-locations  (undocumented)
>   -dlocations  (undocumented)
>   -dsource  (undocumented)
>   -dparsetree  (undocumented)
>   -dtypedtree  (undocumented)
>   -dshape  (undocumented)
>   -dmatchcomp  (undocumented)
>   -drawlambda  (undocumented)
>   -dlambda  (undocumented)
>   -drawclambda  (undocumented)
>   -dclambda  (undocumented)
>   -dcmm-invariants  Extra sanity checks on Cmm
>   -dflambda  Print Flambda terms
>   -drawflambda  Print Flambda terms after closure conversion
>   -dflambda-invariants  Check Flambda invariants around each pass
>   -dflambda-no-invariants  Do not Check Flambda invariants around each pass
>   -dflambda-let <stamp>  Print when the given Flambda [Let] is created
>   -dflambda-verbose  Print Flambda terms including around each pass
>   -dcmm  (undocumented)
>   -dsel  (undocumented)
>   -dcombine  (undocumented)
>   -dcse  (undocumented)
>   -dlive  (undocumented)
>   -dspill  (undocumented)
>   -dsplit  (undocumented)
>   -dinterf  (undocumented)
>   -dprefer  (undocumented)
>   -dalloc  (undocumented)
>   -dreload  (undocumented)
>   -dscheduling  (undocumented)
>   -dlinear  (undocumented)
>   -dinterval  (undocumented)
>   -dstartup  (undocumented)
>   -dtimings  Print timings information for each pass
>   -dprofile  Print performance information for each pass
>     The columns are: time alloc top-heap absolute-top-heap.
>   -dump-into-file  dump output like -dlambda into <target>.dump
>   -dump-dir <dir> dump output like -dlambda into <dir>/<target>.dump
>   -dump-pass  Record transformations performed by these passes: 
>   -args <file> Read additional newline-terminated command line arguments
>       from <file>
>   -args0 <file> Read additional null character terminated command line arguments
> from <file>
>   -help  Display this list of options
>   --help  Display this list of options
$prefix.new\$bindir\ocamlprof.exe -vnum
> 5.4.0+dev0-2024-08-25
ocamlprof (from $prefix.new\$bindir\ocamlprof.exe) -M <exit 2>
> ocamlprof: unknown option '-M'.
> Usage: ocamlprof <options> <files>
> Options are:
>   -f <file>     Use <file> as dump file (default ocamlprof.dump)
>   -F <s>        Insert string <s> with the counts
>   -impl <file>  Process <file> as a .ml file
>   -instrument   (undocumented)
>   -intf <file>  Process <file> as a .mli file
>   -keywords <version+keywords> Specify keyword set.
>   -m <flags>    (undocumented)
>   -version      Print version and exit
>   -vnum         Print version number and exit
>   -args <file> Read additional newline separated command line arguments 
>       from <file>
>   -args0 <file> Read additional NUL separated command line arguments from 
>       <file>
>   -help  Display this list of options
>   --help  Display this list of options

Testing compilation mechanisms for $prefix.new\$bindir
$prefix.new\$bindir\ocamlc.exe -where
$prefix.new\$bindir\ocamlopt.exe -where
ocamlc -where: $prefix.new\$libdir
ocamlopt -where: $prefix.new\$libdir
$prefix.new\$bindir\ocamlopt.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-complete-obj
$CC -o $PWD\nat_complete_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o  -lasmrun_shared  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lasmrun_shared"
$prefix.new\$bindir\ocamlopt.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -output-complete-obj
$CC -o $PWD\nat_complete_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o  -lasmrun  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix.new\$bindir\ocamlopt.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-obj
$CC -o $PWD\nat_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcomprmarsh -lunixnat  -lasmrun_shared  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lasmrun_shared"
$prefix.new\$bindir\ocamlopt.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o test_install_ocaml.o test_install_script.ml -output-obj
$CC -o $PWD\nat_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcomprmarsh -lunixnat  -lasmrun  -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix.new\$bindir\ocamlopt.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cmxa -I +unix unix.cmxa -o $PWD\nat_default.exe test_install_script.ml
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_complete_exe_shared.exe test_install_script.ml -runtime-variant _shared -output-complete-exe <exit 2>
> ** Fatal error: Cannot find file "-lcamlrun-x86_64-w64-mingw32-0018"
> File "test_install_script.ml", line 1:
> Error: Error while building custom runtime system
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_complete_exe_static.exe test_install_script.ml -output-complete-exe
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-complete-obj
$CC -o $PWD\byt_complete_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcamlrun_shared   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lcamlrun_shared"
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -output-complete-obj
$CC -o $PWD\byt_complete_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lcamlrun   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -runtime-variant _shared -output-obj
$CC -o $PWD\byt_obj_shared.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lunixbyt -lcamlrun_shared   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
** Fatal error: Cannot find file "-lcamlrun_shared"
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o test_install_ocaml.o test_install_script.ml -output-obj
$CC -o $PWD\byt_obj_static.exe test_install_ocaml.o C:\builds\workspace\precheck\flambda\false\label\ocaml-mingw-64\testsuite\tools\main_in_c.o -lunixbyt -lcamlrun   -lws2_32 -lole32 -luuid -lversion -lshlwapi -lsynchronization   -l:libpthread.a -lgcc_eh
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\custom_shared.exe test_install_script.ml -runtime-variant _shared -custom <exit 2>
> ** Fatal error: Cannot find file "-lcamlrun-x86_64-w64-mingw32-0018"
> File "test_install_script.ml", line 1:
> Error: Error while building custom runtime system
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\custom_static.exe test_install_script.ml -custom
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_default_exe_always.exe test_install_script.ml -runtime-search always
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_default_exe_enable.exe test_install_script.ml
$prefix.new\$bindir\ocamlc.exe -set-runtime-default R -I +compiler-libs ocamlcommon.cma -I +unix unix.cma -o $PWD\byt_default_exe_disable.exe test_install_script.ml -runtime-search disable
Running programs
$PWD\byt_default_exe_disable.exe skip $PWD\byt_default_exe_disable.exe $PWD\byt_default_exe_disable.exe true $prefix $libdir
test-prog (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe test-prog true $prefix $libdir
sh (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe sh true $prefix $libdir
.\byt_default_exe_disable (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe .\byt_default_exe_disable true $prefix $libdir
byt_default_exe_disable (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe byt_default_exe_disable true $prefix $libdir
byt_default_exe_disable (from $PWD\byt_default_exe_disable.exe) skip $PWD\byt_default_exe_disable.exe byt_default_exe_disable true $prefix $libdir

$PWD\byt_default_exe_enable.exe skip $PWD\byt_default_exe_enable.exe $PWD\byt_default_exe_enable.exe true $prefix $libdir
test-prog (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe test-prog true $prefix $libdir
sh (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe sh true $prefix $libdir
.\byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe .\byt_default_exe_enable true $prefix $libdir
byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe byt_default_exe_enable true $prefix $libdir
byt_default_exe_enable (from $PWD\byt_default_exe_enable.exe) skip $PWD\byt_default_exe_enable.exe byt_default_exe_enable true $prefix $libdir

$PWD\byt_default_exe_always.exe skip $PWD\byt_default_exe_always.exe $PWD\byt_default_exe_always.exe true $prefix $libdir
test-prog (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe test-prog true $prefix $libdir
sh (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe sh true $prefix $libdir
.\byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe .\byt_default_exe_always true $prefix $libdir
byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe byt_default_exe_always true $prefix $libdir
byt_default_exe_always (from $PWD\byt_default_exe_always.exe) skip $PWD\byt_default_exe_always.exe byt_default_exe_always true $prefix $libdir

$PWD\custom_static.exe skip $PWD\custom_static.exe $PWD\custom_static.exe true $prefix $libdir
test-prog (from $PWD\custom_static.exe) skip $PWD\custom_static.exe test-prog true $prefix $libdir
sh (from $PWD\custom_static.exe) skip $PWD\custom_static.exe sh true $prefix $libdir
.\custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe .\custom_static true $prefix $libdir
custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe custom_static true $prefix $libdir
custom_static (from $PWD\custom_static.exe) skip $PWD\custom_static.exe custom_static true $prefix $libdir

$PWD\byt_obj_static.exe skip $PWD\byt_obj_static.exe $PWD\byt_obj_static.exe true $prefix $libdir
test-prog (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe sh true $prefix $libdir
.\byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe .\byt_obj_static true $prefix $libdir
byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe byt_obj_static true $prefix $libdir
byt_obj_static (from $PWD\byt_obj_static.exe) skip $PWD\byt_obj_static.exe byt_obj_static true $prefix $libdir

$PWD\byt_complete_obj_static.exe skip $PWD\byt_complete_obj_static.exe $PWD\byt_complete_obj_static.exe true $prefix $libdir
test-prog (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe sh true $prefix $libdir
.\byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe .\byt_complete_obj_static true $prefix $libdir
byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe byt_complete_obj_static true $prefix $libdir
byt_complete_obj_static (from $PWD\byt_complete_obj_static.exe) skip $PWD\byt_complete_obj_static.exe byt_complete_obj_static true $prefix $libdir

$PWD\byt_complete_exe_static.exe skip $PWD\byt_complete_exe_static.exe $PWD\byt_complete_exe_static.exe true $prefix $libdir
test-prog (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe test-prog true $prefix $libdir
sh (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe sh true $prefix $libdir
.\byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe .\byt_complete_exe_static true $prefix $libdir
byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe byt_complete_exe_static true $prefix $libdir
byt_complete_exe_static (from $PWD\byt_complete_exe_static.exe) skip $PWD\byt_complete_exe_static.exe byt_complete_exe_static true $prefix $libdir

$PWD\nat_default.exe skip $PWD\nat_default.exe $PWD\nat_default.exe true $prefix $libdir
test-prog (from $PWD\nat_default.exe) skip $PWD\nat_default.exe test-prog true $prefix $libdir
sh (from $PWD\nat_default.exe) skip $PWD\nat_default.exe sh true $prefix $libdir
.\nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe .\nat_default true $prefix $libdir
nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe nat_default true $prefix $libdir
nat_default (from $PWD\nat_default.exe) skip $PWD\nat_default.exe nat_default true $prefix $libdir

$PWD\nat_obj_static.exe skip $PWD\nat_obj_static.exe $PWD\nat_obj_static.exe true $prefix $libdir
test-prog (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe sh true $prefix $libdir
.\nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe .\nat_obj_static true $prefix $libdir
nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe nat_obj_static true $prefix $libdir
nat_obj_static (from $PWD\nat_obj_static.exe) skip $PWD\nat_obj_static.exe nat_obj_static true $prefix $libdir

$PWD\nat_complete_obj_static.exe skip $PWD\nat_complete_obj_static.exe $PWD\nat_complete_obj_static.exe true $prefix $libdir
test-prog (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe test-prog true $prefix $libdir
sh (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe sh true $prefix $libdir
.\nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe .\nat_complete_obj_static true $prefix $libdir
nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe nat_complete_obj_static true $prefix $libdir
nat_complete_obj_static (from $PWD\nat_complete_obj_static.exe) skip $PWD\nat_complete_obj_static.exe nat_complete_obj_static true $prefix $libdir

Restoring $prefix.new to $prefix
make: Leaving directory '/cygdrive/c/builds/workspace/precheck/flambda/false/label/ocaml-mingw-64/testsuite/in_prefix'
+ rm -rf C:/ocamlmgw64-44068
+ false
Email was triggered for: Always
Sending email for trigger: Always
Sending email to: david@tarides.com
Finished: SUCCESS