opam-repository icon indicating copy to clipboard operation
opam-repository copied to clipboard

[new release] rpclib (6 packages) (10.0.0)

Open psafont opened this issue 4 months ago • 5 comments

A library to deal with RPCs in OCaml

CHANGES:
  • Removed deprecated rpc virtual package
  • Python3 support
  • Drop Python2 support
  • Rpc_genfake: avoid crash on recursive types
  • Rcplib-async is now OCaml 5.3+ only (the other libraries still support OCaml 4.14)

psafont avatar Dec 11 '25 15:12 psafont

The failure in the windows workflow is due to a failure in a request to fetch an archive from github. Github is being unstable today and returning 503 in many requests (I've had other workdlows failing because of this as well)

psafont avatar Dec 11 '25 16:12 psafont

FTR, I restarted the failing Windows workflow and now it is passing :+1:

I'll let opam-ci complete now.

jmid avatar Dec 11 '25 20:12 jmid

I see a runtest linking error for rpclib-async on riscv64: https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/2d04beee37100f8a8d89ef140421171f0eeb5625/variant/extras,riscv64-ocaml-5.4,rpclib-async.10.0.0,tests

#=== ERROR while compiling rpclib-async.10.0.0 ================================#
# context              2.5.0 | linux/riscv64 | ocaml-base-compiler.5.4.0 | pinned(https://github.com/mirage/ocaml-rpc/releases/download/10.0.0/rpclib-10.0.0.tbz)
# path                 ~/.opam/5.4/.opam-switch/build/rpclib-async.10.0.0
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune runtest -p rpclib-async -j 3
# exit-code            1
# env-file             ~/.opam/log/rpclib-async-7-781477.env
# output-file          ~/.opam/log/rpclib-async-7-781477.out
### output ###
# File "tests/async/dune", line 2, characters 7-12:
# 2 |  (name suite)
#            ^^^^^
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -o tests/async/suite.exe /home/opam/.opam/5.4/lib/result/result.cmxa /home/opam/.opam/5.4/lib/base64/base64.cmxa /home/opam/.opam/5.4/lib/rresult/rresult.cmxa /home/opam/.opam/5.4/lib/rpclib/core/rpclib_core.cmxa /home/opam/.opam/5.4/lib/rpclib/internals/internals.cmxa /home/opam/.opam/5.4/lib/xmlm/xmlm.cmxa /home/opam/.opam/5.4/lib/rpclib/xml/xml.cmxa /home/opam/.opam/5.4/lib/rpclib/rpclib.cmxa /home/opam/.opam/5.4/lib/base/base_internalhash_types/base_internalhash_types.cmxa -I /home/opam/.opam/5.4/lib/base/base_internalhash_types /home/opam/.opam/5.4/lib/sexplib0/sexplib0.cmxa /home/opam/.opam/5.4/lib/base/shadow_stdlib/shadow_stdlib.cmxa /home/opam/.opam/5.4/lib/ocaml_intrinsics_kernel/ocaml_intrinsics_kernel.cmxa -I /home/opam/.opam/5.4/lib/ocaml_intrinsics_kernel /home/opam/.opam/5.4/lib/base/base.cmxa -I /home/opam/.opam/5.4/lib/base /home/opam/.opam/5.4/lib/ppx_sexp_conv/runtime-lib/ppx_sexp_conv_lib.cmxa /home/opam/.opam/5.4/lib/ppx_compare/runtime-lib/ppx_compare_lib.cmxa /home/opam/.opam/5.4/lib/ppx_enumerate/runtime-lib/ppx_enumerate_lib.cmxa /home/opam/.opam/5.4/lib/ppx_hash/runtime-lib/ppx_hash_lib.cmxa /home/opam/.opam/5.4/lib/ppx_here/runtime-lib/ppx_here_lib.cmxa /home/opam/.opam/5.4/lib/ppx_assert/runtime-lib/ppx_assert_lib.cmxa /home/opam/.opam/5.4/lib/ppx_bench/runtime-lib/ppx_bench_lib.cmxa /home/opam/.opam/5.4/lib/base/md5/md5_lib.cmxa /home/opam/.opam/5.4/lib/variantslib/variantslib.cmxa /home/opam/.opam/5.4/lib/fieldslib/fieldslib.cmxa /home/opam/.opam/5.4/lib/bin_prot/shape/bin_shape.cmxa /home/opam/.opam/5.4/lib/ppx_stable_witness/stable_witness/stable_witness.cmxa /home/opam/.opam/5.4/lib/bin_prot/bin_prot.cmxa -I /home/opam/.opam/5.4/lib/bin_prot /home/opam/.opam/5.4/lib/ppx_inline_test/config/inline_test_config.cmxa /home/opam/.opam/5.4/lib/jane-street-headers/jane_street_headers.cmxa /home/opam/.opam/5.4/lib/time_now/time_now.cmxa -I /home/opam/.opam/5.4/lib/time_now /home/opam/.opam/5.4/lib/ppx_inline_test/runtime-lib/ppx_inline_test_lib.cmxa /home/opam/.opam/5.4/lib/stdio/stdio.cmxa /home/opam/.opam/5.4/lib/ppx_module_timer/runtime/ppx_module_timer_runtime.cmxa /home/opam/.opam/5.4/lib/ppx_stable_witness/runtime/ppx_stable_witness_runtime.cmxa /home/opam/.opam/5.4/lib/ppx_string/runtime/ppx_string_runtime.cmxa /home/opam/.opam/5.4/lib/typerep/typerep_lib.cmxa /home/opam/.opam/5.4/lib/ppxlib/print_diff/ppxlib_print_diff.cmxa /home/opam/.opam/5.4/lib/ppx_expect/make_corrected_file/make_corrected_file.cmxa /home/opam/.opam/5.4/lib/ppx_expect/config_types/expect_test_config_types.cmxa /home/opam/.opam/5.4/lib/ppx_expect/config/expect_test_config.cmxa /home/opam/.opam/5.4/lib/ppx_expect/runtime/ppx_expect_runtime.cmxa -I /home/opam/.opam/5.4/lib/ppx_expect/runtime /home/opam/.opam/5.4/lib/parsexp/parsexp.cmxa /home/opam/.opam/5.4/lib/sexplib/sexplib.cmxa /home/opam/.opam/5.4/lib/ppx_log/types/ppx_log_types.cmxa /home/opam/.opam/5.4/lib/ppx_log/syntax/ppx_log_syntax.cmxa /home/opam/.opam/5.4/lib/splittable_random/splittable_random.cmxa /home/opam/.opam/5.4/lib/base_quickcheck/base_quickcheck.cmxa /home/opam/.opam/5.4/lib/base_quickcheck/ppx_quickcheck/runtime/ppx_quickcheck_runtime.cmxa /home/opam/.opam/5.4/lib/int_repr/int_repr.cmxa /home/opam/.opam/5.4/lib/base_bigstring/base_bigstring.cmxa -I /home/opam/.opam/5.4/lib/base_bigstring /home/opam/.opam/5.4/lib/core/base_for_tests/base_for_tests.cmxa /home/opam/.opam/5.4/lib/core/filename_base/filename_base.cmxa /home/opam/.opam/5.4/lib/core/univ_map/univ_map.cmxa /home/opam/.opam/5.4/lib/core/command/command.cmxa /home/opam/.opam/5.4/lib/core/heap_block/heap_block.cmxa -I /home/opam/.opam/5.4/lib/core/heap_block /home/opam/.opam/5.4/lib/gel/gel.cmxa /home/opam/.opam/5.4/lib/ppx_diff/diffable_cinaps/diffable_cinaps.cmxa /home/opam/.opam/5.4/lib/ppx_diff/diffable/diffable.cmxa /home/opam/.opam/5.4/lib/core/validate/validate.cmxa /home/opam/.opam/5.4/lib/core/core.cmxa -I /home/opam/.opam/5.4/lib/core /home/opam/.opam/5.4/lib/core_kernel/thread_pool_cpu_affinity/thread_pool_cpu_affinity.cmxa /home/opam/.opam/5.4/lib/core_kernel/tuple_pool/tuple_pool.cmxa /home/opam/.opam/5.4/lib/core_kernel/timing_wheel/timing_wheel.cmxa /home/opam/.opam/5.4/lib/async_kernel/config/async_kernel_config.cmxa /home/opam/.opam/5.4/lib/core_kernel/moption/moption.cmxa /home/opam/.opam/5.4/lib/core_kernel/pairing_heap/pairing_heap.cmxa /home/opam/.opam/5.4/lib/core_kernel/sexp_hidden_in_test/sexp_hidden_in_test.cmxa /home/opam/.opam/5.4/lib/uopt/uopt.cmxa /home/opam/.opam/5.4/lib/core_kernel/thread_safe_queue/thread_safe_queue.cmxa /home/opam/.opam/5.4/lib/async_kernel/async_kernel.cmxa /home/opam/.opam/5.4/lib/ocaml/unix/unix.cmxa /home/opam/.opam/5.4/lib/ocaml/threads/threads.cmxa /home/opam/.opam/5.4/lib/core_kernel/caml_threads/caml_threads.cmxa /home/opam/.opam/5.4/lib/core_unix/error_checking_mutex/error_checking_mutex.cmxa -I /home/opam/.opam/5.4/lib/core_unix/error_checking_mutex /home/opam/.opam/5.4/lib/core_kernel/flags/flags.cmxa /home/opam/.opam/5.4/lib/sexplib/unix/sexplib_unix.cmxa /home/opam/.opam/5.4/lib/core_kernel/caml_unix/caml_unix.cmxa /home/opam/.opam/5.4/lib/core_unix/signal_unix/signal_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/signal_unix /home/opam/.opam/5.4/lib/spawn/spawn.cmxa -I /home/opam/.opam/5.4/lib/spawn /home/opam/.opam/5.4/lib/core_unix/core_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix /home/opam/.opam/5.4/lib/core_unix/ocaml_c_utils/ocaml_c_utils.cmxa -I /home/opam/.opam/5.4/lib/core_unix/ocaml_c_utils /home/opam/.opam/5.4/lib/core_unix/bigstring_unix/bigstring_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/bigstring_unix /home/opam/.opam/5.4/lib/core_kernel/bounded_int_table/bounded_int_table.cmxa /home/opam/.opam/5.4/lib/cstruct/cstruct.cmxa -I /home/opam/.opam/5.4/lib/cstruct /home/opam/.opam/5.4/lib/async_kernel/eager_deferred/eager_deferred.cmxa /home/opam/.opam/5.4/lib/core_unix/sys_unix/sys_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/sys_unix /home/opam/.opam/5.4/lib/core_unix/filename_unix/filename_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/filename_unix /home/opam/.opam/5.4/lib/core_kernel/iobuf/iobuf.cmxa /home/opam/.opam/5.4/lib/core_unix/iobuf_unix/iobuf_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/iobuf_unix /home/opam/.opam/5.4/lib/core_unix/core_thread/core_thread.cmxa -I /home/opam/.opam/5.4/lib/core_unix/core_thread /home/opam/.opam/5.4/lib/core_unix/nano_mutex/nano_mutex.cmxa /home/opam/.opam/5.4/lib/async_kernel/read_write_pair/read_write_pair.cmxa /home/opam/.opam/5.4/lib/core_unix/squeue/squeue.cmxa /home/opam/.opam/5.4/lib/timezone/timezone.cmxa /home/opam/.opam/5.4/lib/core_unix/time_float_unix/time_float_unix.cmxa /home/opam/.opam/5.4/lib/core_unix/time_ns_unix/time_ns_unix.cmxa /home/opam/.opam/5.4/lib/core_unix/linux_ext/linux_ext.cmxa -I /home/opam/.opam/5.4/lib/core_unix/linux_ext /home/opam/.opam/5.4/lib/async_unix/thread_safe_ivar/thread_safe_ivar.cmxa /home/opam/.opam/5.4/lib/async_unix/thread_pool/thread_pool.cmxa /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter/time_stamp_counter.cmxa -I /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter /home/opam/.opam/5.4/lib/async_unix/async_unix.cmxa -I /home/opam/.opam/5.4/lib/async_unix /home/opam/.opam/5.4/lib/core_kernel/version_util/version_util.cmxa -I /home/opam/.opam/5.4/lib/core_kernel/version_util /home/opam/.opam/5.4/lib/core_unix/command_unix/command_unix.cmxa /home/opam/.opam/5.4/lib/async/async_command/async_command.cmxa /home/opam/.opam/5.4/lib/core_kernel/univ/univ.cmxa /home/opam/.opam/5.4/lib/core_kernel/uuid/uuid.cmxa /home/opam/.opam/5.4/lib/async_log/kernel/async_log_kernel.cmxa /home/opam/.opam/5.4/lib/async_log/async_log.cmxa /home/opam/.opam/5.4/lib/async/async_quickcheck/async_quickcheck.cmxa /home/opam/.opam/5.4/lib/core_kernel/bus/bus.cmxa /home/opam/.opam/5.4/lib/async_kernel/persistent_connection_kernel/persistent_connection_kernel.cmxa /home/opam/.opam/5.4/lib/protocol_version_header/protocol_version_header.cmxa /home/opam/.opam/5.4/lib/core_kernel/reversed_list/reversed_list.cmxa /home/opam/.opam/5.4/lib/async_rpc_kernel/async_rpc_kernel.cmxa /home/opam/.opam/5.4/lib/async/async_rpc/async_rpc.cmxa -I /home/opam/.opam/5.4/lib/async/async_rpc /home/opam/.opam/5.4/lib/async/async.cmxa src/async/rpclib_async.cmxa /home/opam/.opam/5.4/lib/astring/astring.cmxa /home/opam/.opam/5.4/lib/cmdliner/cmdliner.cmxa /home/opam/.opam/5.4/lib/uutf/uutf.cmxa /home/opam/.opam/5.4/lib/alcotest/stdlib_ext/alcotest_stdlib_ext.cmxa /home/opam/.opam/5.4/lib/fmt/fmt.cmxa /home/opam/.opam/5.4/lib/fmt/cli/fmt_cli.cmxa /home/opam/.opam/5.4/lib/re/re.cmxa /home/opam/.opam/5.4/lib/stdlib-shims/stdlib_shims.cmxa /home/opam/.opam/5.4/lib/alcotest/engine/alcotest_engine.cmxa /home/opam/.opam/5.4/lib/fmt/tty/fmt_tty.cmxa /home/opam/.opam/5.4/lib/alcotest/alcotest.cmxa -I /home/opam/.opam/5.4/lib/alcotest tests/common/test_common.cmxa tests/async/.suite.eobjs/native/dune__exe.cmx tests/async/.suite.eobjs/native/dune__exe__Client_server_test.cmx tests/async/.suite.eobjs/native/dune__exe__Suite.cmx)
# /usr/bin/ld: /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter/libtime_stamp_counter_stubs.a(time_stamp_counter_stubs.o): in function `caml_rdtsc_unboxed':
# /home/opam/.opam/5.4/.opam-switch/build/core_unix.v0.17.1/_build/default/time_stamp_counter/src/time_stamp_counter_stubs.c:51:(.text+0x4): undefined reference to `rdtsc'
# /usr/bin/ld: /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter/libtime_stamp_counter_stubs.a(time_stamp_counter_stubs.o): in function `caml_rdtsc':
# /home/opam/.opam/5.4/.opam-switch/build/core_unix.v0.17.1/_build/default/time_stamp_counter/src/time_stamp_counter_stubs.c:56:(.text+0x16): undefined reference to `rdtsc'
# collect2: error: ld returned 1 exit status
# File "caml_startup", line 1:
# Error: Error during linking (exit code 1)
# File "tests/rpc/dune", line 9, characters 7-18:
# 9 |  (name suite_async)
#            ^^^^^^^^^^^
# (cd _build/default && /home/opam/.opam/5.4/bin/ocamlopt.opt -w -40 -g -o tests/rpc/suite_async.exe /home/opam/.opam/5.4/lib/astring/astring.cmxa /home/opam/.opam/5.4/lib/cmdliner/cmdliner.cmxa /home/opam/.opam/5.4/lib/uutf/uutf.cmxa /home/opam/.opam/5.4/lib/alcotest/stdlib_ext/alcotest_stdlib_ext.cmxa /home/opam/.opam/5.4/lib/fmt/fmt.cmxa /home/opam/.opam/5.4/lib/fmt/cli/fmt_cli.cmxa /home/opam/.opam/5.4/lib/re/re.cmxa /home/opam/.opam/5.4/lib/stdlib-shims/stdlib_shims.cmxa /home/opam/.opam/5.4/lib/alcotest/engine/alcotest_engine.cmxa /home/opam/.opam/5.4/lib/ocaml/unix/unix.cmxa /home/opam/.opam/5.4/lib/fmt/tty/fmt_tty.cmxa /home/opam/.opam/5.4/lib/alcotest/alcotest.cmxa -I /home/opam/.opam/5.4/lib/alcotest /home/opam/.opam/5.4/lib/base/base_internalhash_types/base_internalhash_types.cmxa -I /home/opam/.opam/5.4/lib/base/base_internalhash_types /home/opam/.opam/5.4/lib/sexplib0/sexplib0.cmxa /home/opam/.opam/5.4/lib/base/shadow_stdlib/shadow_stdlib.cmxa /home/opam/.opam/5.4/lib/ocaml_intrinsics_kernel/ocaml_intrinsics_kernel.cmxa -I /home/opam/.opam/5.4/lib/ocaml_intrinsics_kernel /home/opam/.opam/5.4/lib/base/base.cmxa -I /home/opam/.opam/5.4/lib/base /home/opam/.opam/5.4/lib/ppx_sexp_conv/runtime-lib/ppx_sexp_conv_lib.cmxa /home/opam/.opam/5.4/lib/ppx_compare/runtime-lib/ppx_compare_lib.cmxa /home/opam/.opam/5.4/lib/ppx_enumerate/runtime-lib/ppx_enumerate_lib.cmxa /home/opam/.opam/5.4/lib/ppx_hash/runtime-lib/ppx_hash_lib.cmxa /home/opam/.opam/5.4/lib/ppx_here/runtime-lib/ppx_here_lib.cmxa /home/opam/.opam/5.4/lib/ppx_assert/runtime-lib/ppx_assert_lib.cmxa /home/opam/.opam/5.4/lib/ppx_bench/runtime-lib/ppx_bench_lib.cmxa /home/opam/.opam/5.4/lib/base/md5/md5_lib.cmxa /home/opam/.opam/5.4/lib/variantslib/variantslib.cmxa /home/opam/.opam/5.4/lib/fieldslib/fieldslib.cmxa /home/opam/.opam/5.4/lib/bin_prot/shape/bin_shape.cmxa /home/opam/.opam/5.4/lib/ppx_stable_witness/stable_witness/stable_witness.cmxa /home/opam/.opam/5.4/lib/bin_prot/bin_prot.cmxa -I /home/opam/.opam/5.4/lib/bin_prot /home/opam/.opam/5.4/lib/ppx_inline_test/config/inline_test_config.cmxa /home/opam/.opam/5.4/lib/jane-street-headers/jane_street_headers.cmxa /home/opam/.opam/5.4/lib/time_now/time_now.cmxa -I /home/opam/.opam/5.4/lib/time_now /home/opam/.opam/5.4/lib/ppx_inline_test/runtime-lib/ppx_inline_test_lib.cmxa /home/opam/.opam/5.4/lib/stdio/stdio.cmxa /home/opam/.opam/5.4/lib/ppx_module_timer/runtime/ppx_module_timer_runtime.cmxa /home/opam/.opam/5.4/lib/ppx_stable_witness/runtime/ppx_stable_witness_runtime.cmxa /home/opam/.opam/5.4/lib/ppx_string/runtime/ppx_string_runtime.cmxa /home/opam/.opam/5.4/lib/typerep/typerep_lib.cmxa /home/opam/.opam/5.4/lib/ppxlib/print_diff/ppxlib_print_diff.cmxa /home/opam/.opam/5.4/lib/ppx_expect/make_corrected_file/make_corrected_file.cmxa /home/opam/.opam/5.4/lib/ppx_expect/config_types/expect_test_config_types.cmxa /home/opam/.opam/5.4/lib/ppx_expect/config/expect_test_config.cmxa /home/opam/.opam/5.4/lib/ppx_expect/runtime/ppx_expect_runtime.cmxa -I /home/opam/.opam/5.4/lib/ppx_expect/runtime /home/opam/.opam/5.4/lib/parsexp/parsexp.cmxa /home/opam/.opam/5.4/lib/sexplib/sexplib.cmxa /home/opam/.opam/5.4/lib/ppx_log/types/ppx_log_types.cmxa /home/opam/.opam/5.4/lib/ppx_log/syntax/ppx_log_syntax.cmxa /home/opam/.opam/5.4/lib/splittable_random/splittable_random.cmxa /home/opam/.opam/5.4/lib/base_quickcheck/base_quickcheck.cmxa /home/opam/.opam/5.4/lib/base_quickcheck/ppx_quickcheck/runtime/ppx_quickcheck_runtime.cmxa /home/opam/.opam/5.4/lib/int_repr/int_repr.cmxa /home/opam/.opam/5.4/lib/base_bigstring/base_bigstring.cmxa -I /home/opam/.opam/5.4/lib/base_bigstring /home/opam/.opam/5.4/lib/core/base_for_tests/base_for_tests.cmxa /home/opam/.opam/5.4/lib/core/filename_base/filename_base.cmxa /home/opam/.opam/5.4/lib/core/univ_map/univ_map.cmxa /home/opam/.opam/5.4/lib/core/command/command.cmxa /home/opam/.opam/5.4/lib/core/heap_block/heap_block.cmxa -I /home/opam/.opam/5.4/lib/core/heap_block /home/opam/.opam/5.4/lib/gel/gel.cmxa /home/opam/.opam/5.4/lib/ppx_diff/diffable_cinaps/diffable_cinaps.cmxa /home/opam/.opam/5.4/lib/ppx_diff/diffable/diffable.cmxa /home/opam/.opam/5.4/lib/core/validate/validate.cmxa /home/opam/.opam/5.4/lib/core/core.cmxa -I /home/opam/.opam/5.4/lib/core /home/opam/.opam/5.4/lib/core_kernel/thread_pool_cpu_affinity/thread_pool_cpu_affinity.cmxa /home/opam/.opam/5.4/lib/core_kernel/tuple_pool/tuple_pool.cmxa /home/opam/.opam/5.4/lib/core_kernel/timing_wheel/timing_wheel.cmxa /home/opam/.opam/5.4/lib/async_kernel/config/async_kernel_config.cmxa /home/opam/.opam/5.4/lib/core_kernel/moption/moption.cmxa /home/opam/.opam/5.4/lib/core_kernel/pairing_heap/pairing_heap.cmxa /home/opam/.opam/5.4/lib/core_kernel/sexp_hidden_in_test/sexp_hidden_in_test.cmxa /home/opam/.opam/5.4/lib/uopt/uopt.cmxa /home/opam/.opam/5.4/lib/core_kernel/thread_safe_queue/thread_safe_queue.cmxa /home/opam/.opam/5.4/lib/async_kernel/async_kernel.cmxa /home/opam/.opam/5.4/lib/ocaml/threads/threads.cmxa /home/opam/.opam/5.4/lib/core_kernel/caml_threads/caml_threads.cmxa /home/opam/.opam/5.4/lib/core_unix/error_checking_mutex/error_checking_mutex.cmxa -I /home/opam/.opam/5.4/lib/core_unix/error_checking_mutex /home/opam/.opam/5.4/lib/core_kernel/flags/flags.cmxa /home/opam/.opam/5.4/lib/sexplib/unix/sexplib_unix.cmxa /home/opam/.opam/5.4/lib/core_kernel/caml_unix/caml_unix.cmxa /home/opam/.opam/5.4/lib/core_unix/signal_unix/signal_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/signal_unix /home/opam/.opam/5.4/lib/spawn/spawn.cmxa -I /home/opam/.opam/5.4/lib/spawn /home/opam/.opam/5.4/lib/core_unix/core_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix /home/opam/.opam/5.4/lib/core_unix/ocaml_c_utils/ocaml_c_utils.cmxa -I /home/opam/.opam/5.4/lib/core_unix/ocaml_c_utils /home/opam/.opam/5.4/lib/core_unix/bigstring_unix/bigstring_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/bigstring_unix /home/opam/.opam/5.4/lib/core_kernel/bounded_int_table/bounded_int_table.cmxa /home/opam/.opam/5.4/lib/cstruct/cstruct.cmxa -I /home/opam/.opam/5.4/lib/cstruct /home/opam/.opam/5.4/lib/async_kernel/eager_deferred/eager_deferred.cmxa /home/opam/.opam/5.4/lib/core_unix/sys_unix/sys_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/sys_unix /home/opam/.opam/5.4/lib/core_unix/filename_unix/filename_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/filename_unix /home/opam/.opam/5.4/lib/core_kernel/iobuf/iobuf.cmxa /home/opam/.opam/5.4/lib/core_unix/iobuf_unix/iobuf_unix.cmxa -I /home/opam/.opam/5.4/lib/core_unix/iobuf_unix /home/opam/.opam/5.4/lib/core_unix/core_thread/core_thread.cmxa -I /home/opam/.opam/5.4/lib/core_unix/core_thread /home/opam/.opam/5.4/lib/core_unix/nano_mutex/nano_mutex.cmxa /home/opam/.opam/5.4/lib/async_kernel/read_write_pair/read_write_pair.cmxa /home/opam/.opam/5.4/lib/core_unix/squeue/squeue.cmxa /home/opam/.opam/5.4/lib/timezone/timezone.cmxa /home/opam/.opam/5.4/lib/core_unix/time_float_unix/time_float_unix.cmxa /home/opam/.opam/5.4/lib/core_unix/time_ns_unix/time_ns_unix.cmxa /home/opam/.opam/5.4/lib/core_unix/linux_ext/linux_ext.cmxa -I /home/opam/.opam/5.4/lib/core_unix/linux_ext /home/opam/.opam/5.4/lib/async_unix/thread_safe_ivar/thread_safe_ivar.cmxa /home/opam/.opam/5.4/lib/async_unix/thread_pool/thread_pool.cmxa /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter/time_stamp_counter.cmxa -I /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter /home/opam/.opam/5.4/lib/async_unix/async_unix.cmxa -I /home/opam/.opam/5.4/lib/async_unix /home/opam/.opam/5.4/lib/core_kernel/version_util/version_util.cmxa -I /home/opam/.opam/5.4/lib/core_kernel/version_util /home/opam/.opam/5.4/lib/core_unix/command_unix/command_unix.cmxa /home/opam/.opam/5.4/lib/async/async_command/async_command.cmxa /home/opam/.opam/5.4/lib/core_kernel/univ/univ.cmxa /home/opam/.opam/5.4/lib/core_kernel/uuid/uuid.cmxa /home/opam/.opam/5.4/lib/async_log/kernel/async_log_kernel.cmxa /home/opam/.opam/5.4/lib/async_log/async_log.cmxa /home/opam/.opam/5.4/lib/async/async_quickcheck/async_quickcheck.cmxa /home/opam/.opam/5.4/lib/core_kernel/bus/bus.cmxa /home/opam/.opam/5.4/lib/async_kernel/persistent_connection_kernel/persistent_connection_kernel.cmxa /home/opam/.opam/5.4/lib/protocol_version_header/protocol_version_header.cmxa /home/opam/.opam/5.4/lib/core_kernel/reversed_list/reversed_list.cmxa /home/opam/.opam/5.4/lib/async_rpc_kernel/async_rpc_kernel.cmxa /home/opam/.opam/5.4/lib/async/async_rpc/async_rpc.cmxa -I /home/opam/.opam/5.4/lib/async/async_rpc /home/opam/.opam/5.4/lib/async/async.cmxa /home/opam/.opam/5.4/lib/result/result.cmxa /home/opam/.opam/5.4/lib/base64/base64.cmxa /home/opam/.opam/5.4/lib/rresult/rresult.cmxa /home/opam/.opam/5.4/lib/rpclib/core/rpclib_core.cmxa /home/opam/.opam/5.4/lib/rpclib/internals/internals.cmxa /home/opam/.opam/5.4/lib/xmlm/xmlm.cmxa /home/opam/.opam/5.4/lib/rpclib/xml/xml.cmxa /home/opam/.opam/5.4/lib/rpclib/rpclib.cmxa src/async/rpclib_async.cmxa /home/opam/.opam/5.4/lib/yojson/yojson.cmxa /home/opam/.opam/5.4/lib/rpclib/json/json.cmxa tests/rpc/.suite_async.eobjs/native/dune__exe.cmx tests/rpc/.suite_async.eobjs/native/dune__exe__Client_async_new.cmx tests/rpc/.suite_async.eobjs/native/dune__exe__Suite_async.cmx)
# /usr/bin/ld: /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter/libtime_stamp_counter_stubs.a(time_stamp_counter_stubs.o): in function `caml_rdtsc_unboxed':
# /home/opam/.opam/5.4/.opam-switch/build/core_unix.v0.17.1/_build/default/time_stamp_counter/src/time_stamp_counter_stubs.c:51:(.text+0x4): undefined reference to `rdtsc'
# /usr/bin/ld: /home/opam/.opam/5.4/lib/core_unix/time_stamp_counter/libtime_stamp_counter_stubs.a(time_stamp_counter_stubs.o): in function `caml_rdtsc':
# /home/opam/.opam/5.4/.opam-switch/build/core_unix.v0.17.1/_build/default/time_stamp_counter/src/time_stamp_counter_stubs.c:56:(.text+0x16): undefined reference to `rdtsc'
# collect2: error: ld returned 1 exit status
# File "caml_startup", line 1:
# Error: Error during linking (exit code 1)

Looking briefly at https://www.felixcloutier.com/x86/rdtsc and https://en.wikipedia.org/wiki/Time_Stamp_Counter I am wondering how this instruction has been generated on risc64 :thinking:

jmid avatar Dec 12 '25 07:12 jmid

I don't know what kind of action is expected of me

psafont avatar Dec 13 '25 16:12 psafont

The submitted package fails on riscv64 with a linking error undefined reference to rdtsc'`. From a quick search, this seems to be an x86_* instruction. Any idea of why it is generated on riscv64? (if that is what is happening?)

jmid avatar Dec 13 '25 16:12 jmid