mirage / irmin

Irmin is a distributed database that follows the same design principles as Git
https://irmin.org
ISC License
1.83k stars 154 forks source link

libirmin fails to build with OCaml 5.2 #2282

Closed kit-ty-kate closed 5 months ago

kit-ty-kate commented 6 months ago
#=== ERROR while compiling libirmin.3.9.0 =====================================#
# context              2.2.0~beta2~dev | linux/x86_64 | ocaml-variants.5.2.0+trunk | file:///home/opam/opam-repository
# path                 ~/.opam/5.2/.opam-switch/build/libirmin.3.9.0
# command              ~/.opam/5.2/bin/dune build -p libirmin -j 1
# exit-code            1
# env-file             ~/.opam/log/libirmin-20-5bc935.env
# output-file          ~/.opam/log/libirmin-20-5bc935.out
### output ###
# File "src/libirmin/lib/dune", line 9, characters 7-15:
# 9 |  (name libirmin)
#            ^^^^^^^^
# (cd _build/default && /home/opam/.opam/5.2/bin/ocamlopt.opt -w -40 -g -o src/libirmin/lib/libirmin.so -cclib -lm -cclib -lpthread -output-complete-obj -runtime-variant _pic /home/opam/.opam/5.2/lib/astring/astring.cmxa /home/opam/.opam/5.2/lib/ocaml/dynlink/dynlink.cmxa /home/opam/.opam/5.2/lib/optint/optint.cmxa /home/opam/.opam/5.2/lib/base64/base64.cmxa /home/opam/.opam/5.2/lib/fmt/fmt.cmxa /home/opam/.opam/5.2/lib/uutf/uutf.cmxa /home/opam/.opam/5.2/lib/jsonm/jsonm.cmxa /home/opam/.opam/5.2/lib/either/either.cmxa /home/opam/.opam/5.2/lib/repr/repr.cmxa /home/opam/.opam/5.2/lib/bigstringaf/bigstringaf.cmxa -I /home/opam/.opam/5.2/lib/bigstringaf /home/opam/.opam/5.2/lib/irmin/data/irmin_data.cmxa /home/opam/.opam/5.2/lib/bheap/binary_heap.cmxa /home/opam/.opam/5.2/lib/eqaf/eqaf.cmxa /home/opam/.opam/5.2/lib/digestif/ocaml/digestif_ocaml.cmxa /home/opam/.opam/5.2/lib/logs/logs.cmxa /home/opam/.opam/5.2/lib/logs/logs_fmt.cmxa /home/opam/.opam/5.2/lib/lwt/lwt.cmxa /home/opam/.opam/5.2/lib/mtime/mtime.cmxa /home/opam/.opam/5.2/lib/stdlib-shims/stdlib_shims.cmxa /home/opam/.opam/5.2/lib/ocamlgraph/graph.cmxa /home/opam/.opam/5.2/lib/stringext/stringext.cmxa /home/opam/.opam/5.2/lib/angstrom/angstrom.cmxa /home/opam/.opam/5.2/lib/uri/uri.cmxa /home/opam/.opam/5.2/lib/ppx_irmin/internal-lib/ppx_irmin_internal_lib.cmxa /home/opam/.opam/5.2/lib/irmin/irmin.cmxa /home/opam/.opam/5.2/lib/zarith/zarith.cmxa -I /home/opam/.opam/5.2/lib/zarith /home/opam/.opam/5.2/lib/tezos-base58/tezos_base58.cmxa /home/opam/.opam/5.2/lib/irmin-pack/irmin_pack.cmxa /home/opam/.opam/5.2/lib/cmdliner/cmdliner.cmxa /home/opam/.opam/5.2/lib/logs/logs_cli.cmxa /home/opam/.opam/5.2/lib/fmt/fmt_cli.cmxa /home/opam/.opam/5.2/lib/ocaml/unix/unix.cmxa /home/opam/.opam/5.2/lib/fmt/fmt_tty.cmxa /home/opam/.opam/5.2/lib/uucp/uucp.cmxa /home/opam/.opam/5.2/lib/terminal/terminal.cmxa -I /home/opam/.opam/5.2/lib/terminal /home/opam/.opam/5.2/lib/vector/vector.cmxa /home/opam/.opam/5.2/lib/progress/engine/progress_engine.cmxa /home/opam/.opam/5.2/lib/mtime/clock/os/mtime_clock.cmxa -I /home/opam/.opam/5.2/lib/mtime/clock/os /home/opam/.opam/5.2/lib/progress/progress.cmxa /home/opam/.opam/5.2/lib/ocaml/compiler-libs/ocamlcommon.cmxa /home/opam/.opam/5.2/lib/ocaml-compiler-libs/common/ocaml_common.cmxa /home/opam/.opam/5.2/lib/ppxlib/astlib/astlib.cmxa /home/opam/.opam/5.2/lib/ppxlib/ast/ppxlib_ast.cmxa /home/opam/.opam/5.2/lib/ocaml-compiler-libs/shadow/ocaml_shadow.cmxa /home/opam/.opam/5.2/lib/ppxlib/print_diff/ppxlib_print_diff.cmxa /home/opam/.opam/5.2/lib/ppx_derivers/ppx_derivers.cmxa /home/opam/.opam/5.2/lib/ppxlib/traverse_builtins/ppxlib_traverse_builtins.cmxa /home/opam/.opam/5.2/lib/sexplib0/sexplib0.cmxa /home/opam/.opam/5.2/lib/ppxlib/stdppx/stdppx.cmxa /home/opam/.opam/5.2/lib/ppxlib/ppxlib.cmxa /home/opam/.opam/5.2/lib/ppx_repr/lib/ppx_repr_lib.cmxa /home/opam/.opam/5.2/lib/ppx_repr/ppx_repr.cmxa /home/opam/.opam/5.2/lib/psq/psq.cmxa /home/opam/.opam/5.2/lib/lru/lru.cmxa /home/opam/.opam/5.2/lib/index/index.cmxa /home/opam/.opam/5.2/lib/ocaml/threads/threads.cmxa /home/opam/.opam/5.2/lib/logs/logs_threaded.cmxa /home/opam/.opam/5.2/lib/semaphore-compat/semaphore_compat.cmxa /home/opam/.opam/5.2/lib/index/unix/index_unix.cmxa -I /home/opam/.opam/5.2/lib/index/unix /home/opam/.opam/5.2/lib/ocplib-endian/ocplib_endian.cmxa /home/opam/.opam/5.2/lib/ocplib-endian/bigstring/ocplib_endian_bigstring.cmxa /home/opam/.opam/5.2/lib/lwt/unix/lwt_unix.cmxa -I /home/opam/.opam/5.2/lib/lwt/unix /home/opam/.opam/5.2/lib/checkseum/ocaml/checkseum_ocaml.cmxa /home/opam/.opam/5.2/lib/rusage/rusage.cmxa -I /home/opam/.opam/5.2/lib/rusage /home/opam/.opam/5.2/lib/irmin-pack/unix/irmin_pack_unix.cmxa /home/opam/.opam/5.2/lib/irmin-tezos/irmin_tezos.cmxa /home/opam/.opam/5.2/lib/logs/logs_lwt.cmxa /home/opam/.opam/5.2/lib/parsexp/parsexp.cmxa /home/opam/.opam/5.2/lib/sexplib/sexplib.cmxa /home/opam/.opam/5.2/lib/macaddr/macaddr.cmxa /home/opam/.opam/5.2/lib/domain-name/domain_name.cmxa /home/opam/.opam/5.2/lib/ipaddr/ipaddr.cmxa /home/opam/.opam/5.2/lib/ppx_sexp_conv/runtime-lib/ppx_sexp_conv_lib.cmxa /home/opam/.opam/5.2/lib/ipaddr-sexp/ipaddr_sexp.cmxa /home/opam/.opam/5.2/lib/conduit/conduit.cmxa /home/opam/.opam/5.2/lib/conduit-lwt/conduit_lwt.cmxa /home/opam/.opam/5.2/lib/magic-mime/magic_mime_library.cmxa /home/opam/.opam/5.2/lib/uri/services/uri_services.cmxa /home/opam/.opam/5.2/lib/ipaddr/unix/ipaddr_unix.cmxa /home/opam/.opam/5.2/lib/cstruct/cstruct.cmxa -I /home/opam/.opam/5.2/lib/cstruct /home/opam/.opam/5.2/lib/eqaf/bigstring/eqaf_bigstring.cmxa /home/opam/.opam/5.2/lib/eqaf/cstruct/eqaf_cstruct.cmxa /home/opam/.opam/5.2/lib/mirage-crypto/mirage_crypto.cmxa -I /home/opam/.opam/5.2/lib/mirage-crypto /home/opam/.opam/5.2/lib/hkdf/hkdf.cmxa /home/opam/.opam/5.2/lib/mirage-crypto-rng/mirage_crypto_rng.cmxa /home/opam/.opam/5.2/lib/mirage-crypto-pk/mirage_crypto_pk.cmxa /home/opam/.opam/5.2/lib/ptime/ptime.cmxa /home/opam/.opam/5.2/lib/asn1-combinators/asn1_combinators.cmxa /home/opam/.opam/5.2/lib/gmap/gmap.cmxa /home/opam/.opam/5.2/lib/mirage-crypto-ec/mirage_crypto_ec.cmxa -I /home/opam/.opam/5.2/lib/mirage-crypto-ec /home/opam/.opam/5.2/lib/pbkdf/pbkdf.cmxa /home/opam/.opam/5.2/lib/x509/x509.cmxa /home/opam/.opam/5.2/lib/tls/tls.cmxa /home/opam/.opam/5.2/lib/ptime/clock/os/ptime_clock.cmxa -I /home/opam/.opam/5.2/lib/ptime/clock/os /home/opam/.opam/5.2/lib/mirage-crypto-rng/unix/mirage_crypto_rng_unix.cmxa -I /home/opam/.opam/5.2/lib/mirage-crypto-rng/unix /home/opam/.opam/5.2/lib/duration/duration.cmxa /home/opam/.opam/5.2/lib/mirage-crypto-rng-lwt/mirage_crypto_rng_lwt.cmxa /home/opam/.opam/5.2/lib/tls-lwt/tls_lwt.cmxa /home/opam/.opam/5.2/lib/rresult/rresult.cmxa /home/opam/.opam/5.2/lib/fpath/fpath.cmxa /home/opam/.opam/5.2/lib/bos/bos.cmxa /home/opam/.opam/5.2/lib/ca-certs/ca_certs.cmxa -I /home/opam/.opam/5.2/lib/ca-certs /home/opam/.opam/5.2/lib/conduit-lwt-unix/conduit_lwt_unix.cmxa /home/opam/.opam/5.2/lib/re/re.cmxa /home/opam/.opam/5.2/lib/uri-sexp/uri_sexp.cmxa /home/opam/.opam/5.2/lib/cohttp/cohttp.cmxa /home/opam/.opam/5.2/lib/cohttp-lwt/cohttp_lwt.cmxa /home/opam/.opam/5.2/lib/cohttp-lwt-unix/cohttp_lwt_unix.cmxa /home/opam/.opam/5.2/lib/mirage-flow/mirage_flow.cmxa /home/opam/.opam/5.2/lib/tcpip/tcpip.cmxa /home/opam/.opam/5.2/lib/metrics/metrics.cmxa /home/opam/.opam/5.2/lib/dns/dns.cmxa /home/opam/.opam/5.2/lib/dns/cache/dns_cache.cmxa /home/opam/.opam/5.2/lib/randomconv/randomconv.cmxa /home/opam/.opam/5.2/lib/dns-client/dns_client.cmxa /home/opam/.opam/5.2/lib/mirage-random/mirage_random.cmxa /home/opam/.opam/5.2/lib/mirage-time/mirage_time.cmxa /home/opam/.opam/5.2/lib/mirage-clock/mirage_clock.cmxa /home/opam/.opam/5.2/lib/happy-eyeballs/happy_eyeballs.cmxa /home/opam/.opam/5.2/lib/mirage-kv/mirage_kv.cmxa /home/opam/.opam/5.2/lib/tls-mirage/tls_mirage.cmxa /home/opam/.opam/5.2/lib/ca-certs-nss/ca_certs_nss.cmxa /home/opam/.opam/5.2/lib/dns-client-mirage/dns_client_mirage.cmxa /home/opam/.opam/5.2/lib/happy-eyeballs-mirage/happy_eyeballs_mirage.cmxa /home/opam/.opam/5.2/lib/mimic/mimic.cmxa /home/opam/.opam/5.2/lib/mimic-happy-eyeballs/mimic_happy_eyeballs.cmxa /home/opam/.opam/5.2/lib/git/nss/sigs/sigs.cmxa /home/opam/.opam/5.2/lib/result/result.cmxa /home/opam/.opam/5.2/lib/ke/ke.cmxa /home/opam/.opam/5.2/lib/git/nss/unixiz/unixiz.cmxa /home/opam/.opam/5.2/lib/decompress/de/de.cmxa /home/opam/.opam/5.2/lib/decompress/zl/zl.cmxa /home/opam/.opam/5.2/lib/pecu/pecu.cmxa /home/opam/.opam/5.2/lib/emile/emile.cmxa /home/opam/.opam/5.2/lib/git/nss/pkt-line/pkt_line.cmxa /home/opam/.opam/5.2/lib/git/nss/smart/smart.cmxa /home/opam/.opam/5.2/lib/git/nss/pck/pck.cmxa /home/opam/.opam/5.2/lib/git/nss/smart-flow/smart_flow.cmxa /home/opam/.opam/5.2/lib/git/nss/neg/neg.cmxa /home/opam/.opam/5.2/lib/git/nss/nss.cmxa /home/opam/.opam/5.2/lib/duff/duff.cmxa /home/opam/.opam/5.2/lib/carton/carton.cmxa /home/opam/.opam/5.2/lib/carton/thin/thin.cmxa /home/opam/.opam/5.2/lib/carton-lwt/carton_lwt.cmxa /home/opam/.opam/5.2/lib/git/nss/git/smart_git.cmxa /home/opam/.opam/5.2/lib/git-mirage/tcp/git_mirage_tcp.cmxa /home/opam/.opam/5.2/lib/awa/awa.cmxa /home/opam/.opam/5.2/lib/awa-mirage/awa_mirage.cmxa /home/opam/.opam/5.2/lib/git-mirage/ssh/git_mirage_ssh.cmxa /home/opam/.opam/5.2/lib/faraday/faraday.cmxa /home/opam/.opam/5.2/lib/paf/paf.cmxa /home/opam/.opam/5.2/lib/httpaf/httpaf.cmxa /home/opam/.opam/5.2/lib/git-paf/git_paf.cmxa /home/opam/.opam/5.2/lib/hex/hex.cmxa /home/opam/.opam/5.2/lib/git-mirage/http/git_mirage_http.cmxa /home/opam/.opam/5.2/lib/mirage-clock-unix/mirage_clock_unix.cmxa -I /home/opam/.opam/5.2/lib/mirage-clock-unix /home/opam/.opam/5.2/lib/functoria-runtime/functoria_runtime.cmxa /home/opam/.opam/5.2/lib/mirage-runtime/mirage_runtime.cmxa /home/opam/.opam/5.2/lib/mirage-unix/unix_os.cmxa /home/opam/.opam/5.2/lib/dns-client/resolvconf/dns_resolvconv.cmxa /home/opam/.opam/5.2/lib/dns-client-lwt/dns_client_lwt.cmxa /home/opam/.opam/5.2/lib/happy-eyeballs-lwt/happy_eyeballs_lwt.cmxa /home/opam/.opam/5.2/lib/hxd/core/hxd.cmxa /home/opam/.opam/5.2/lib/hxd/string/hxd_string.cmxa /home/opam/.opam/5.2/lib/git/loose/loose.cmxa /home/opam/.opam/5.2/lib/git/nss/hkt/hkt.cmxa /home/opam/.opam/5.2/lib/git/loose-git/loose_git.cmxa /home/opam/.opam/5.2/lib/carton-git/carton_git.cmxa /home/opam/.opam/5.2/lib/encore/encore.cmxa /home/opam/.opam/5.2/lib/git/git.cmxa /home/opam/.opam/5.2/lib/git-unix/git_unix.cmxa /home/opam/.opam/5.2/lib/irmin/mem/irmin_mem.cmxa /home/opam/.opam/5.2/lib/irmin-git/irmin_git.cmxa /home/opam/.opam/5.2/lib/irmin/unix/irmin_unix.cmxa /home/opam/.opam/5.2/lib/irmin-git/unix/irmin_git_unix.cmxa /home/opam/.opam/5.2/lib/irmin-fs/irmin_fs.cmxa /home/opam/.opam/5.2/lib/irmin-fs/unix/irmin_fs_unix.cmxa /home/opam/.opam/5.2/lib/graphql_parser/graphql_parser.cmxa /home/opam/.opam/5.2/lib/yojson/yojson.cmxa /home/opam/.opam/5.2/lib/graphql/graphql.cmxa /home/opam/.opam/5.2/lib/graphql-cohttp/graphql_cohttp.cmxa /home/opam/.opam/5.2/lib/graphql-lwt/graphql_lwt.cmxa /home/opam/.opam/5.2/lib/irmin-graphql/irmin_graphql.cmxa /home/opam/.opam/5.2/lib/irmin-graphql/unix/irmin_graphql_unix.cmxa /home/opam/.opam/5.2/lib/irmin-server/irmin_server.cmxa /home/opam/.opam/5.2/lib/lwt_log/core/lwt_log_core.cmxa /home/opam/.opam/5.2/lib/lwt_log/lwt_log.cmxa /home/opam/.opam/5.2/lib/websocket/websocket.cmxa /home/opam/.opam/5.2/lib/websocket-lwt-unix/websocket_lwt_unix.cmxa /home/opam/.opam/5.2/lib/irmin-server/unix/irmin_server_unix.cmxa /home/opam/.opam/5.2/lib/inotify/inotify.cmxa -I /home/opam/.opam/5.2/lib/inotify /home/opam/.opam/5.2/lib/inotify/lwt/lwt_inotify.cmxa /home/opam/.opam/5.2/lib/irmin-watcher/irmin_watcher.cmxa -I /home/opam/.opam/5.2/lib/irmin-watcher /home/opam/.opam/5.2/lib/integers/integers.cmxa -I /home/opam/.opam/5.2/lib/integers /home/opam/.opam/5.2/lib/bigarray-compat/bigarray_compat.cmxa /home/opam/.opam/5.2/lib/ctypes/ctypes.cmxa -I /home/opam/.opam/5.2/lib/ctypes /home/opam/.opam/5.2/lib/ocaml/str/str.cmxa /home/opam/.opam/5.2/lib/ctypes/stubs/ctypes_stubs.cmxa /home/opam/.opam/5.2/lib/yaml/bindings/types/yaml_bindings_types.cmxa /home/opam/.opam/5.2/lib/yaml/types/yaml_types.cmxa /home/opam/.opam/5.2/lib/yaml/bindings/yaml_bindings.cmxa /home/opam/.opam/5.2/lib/yaml/c/yaml_c.cmxa -I /home/opam/.opam/5.2/lib/yaml/c /home/opam/.opam/5.2/lib/yaml/ffi/yaml_ffi.cmxa -I /home/opam/.opam/5.2/lib/yaml/ffi /home/opam/.opam/5.2/lib/yaml/yaml.cmxa /home/opam/.opam/5.2/lib/irmin-cli/irmin_cli.cmxa /home/opam/.opam/5.2/lib/ctypes-foreign/ctypes_foreign.cmxa -I /home/opam/.opam/5.2/lib/ctypes-foreign src/libirmin/libirmin_bindings.cmxa src/libirmin/lib/irmin.o src/libirmin/lib/.libirmin.eobjs/native/dune__exe.cmx src/libirmin/lib/.libirmin.eobjs/native/dune__exe__Irmin_bindings.cmx src/libirmin/lib/.libirmin.eobjs/native/dune__exe__Libirmin.cmx)
# /usr/bin/ld: /home/opam/.opam/5.2/lib/ocaml/libcomprmarsh.a(zstd.n.o): warning: relocation against `caml_extern_compress_output' in read-only section `.text.caml_zstd_initialize'
# /usr/bin/ld: /home/opam/.opam/5.2/lib/ocaml/libcomprmarsh.a(zstd.n.o): relocation R_X86_64_PC32 against symbol `caml_extern_compress_output' can not be used when making a shared object; recompile with -fPIC
# /usr/bin/ld: final link failed: bad value
# collect2: error: ld returned 1 exit status
# File "caml_startup", line 1:
# Error: Error during linking (exit code 1)
art-w commented 5 months ago

Thanks a lot for detecting this! The compiler breaking change should be fixed in the next release :) https://github.com/ocaml/ocaml/pull/12998