ocaml/opam-repository

opam switch create dune fails on WSL: "undefined reference to `pthread_join@GLIBC_2.34'"

Arrow7000 opened this issue · 0 comments

I'm trying to run opam switch create dune in a WSL shell but it fails.

Full logs

<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><><><>
Switch invariant: ["dune"]
[NOTE] Packages dune.3.13.1 don't have the 'compiler' flag set (nor any of their direct dependencies).
       You may want to use `opam switch set-invariant' to keep a stable compiler version on upgrades.

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
∗ installed base-bigarray.base
∗ installed base-threads.base
∗ installed base-unix.base
∗ installed ocaml-options-vanilla.1
⬇ retrieved ocaml-base-compiler.5.1.1  (cached)
⬇ retrieved dune.3.13.1  (https://opam.ocaml.org/cache)
[ERROR] The compilation of ocaml-base-compiler.5.1.1 failed at "make -j7".

#=== ERROR while compiling ocaml-base-compiler.5.1.1 ==========================#
# context     2.1.0 | linux/x86_64 |  | https://opam.ocaml.org#e587a943
# path        ~/.opam/dune/.opam-switch/build/ocaml-base-compiler.5.1.1
# command     /usr/bin/make -j7
# exit-code   2
# env-file    ~/.opam/log/ocaml-base-compiler-25821-6c5451.env
# output-file ~/.opam/log/ocaml-base-compiler-25821-6c5451.out
### output ###
# [...]
# /usr/bin/ld: /home/linuxbrew/.linuxbrew/opt/zstd/lib/libzstd.so: undefined reference to `pthread_join@GLIBC_2.34'
# /usr/bin/ld: /home/linuxbrew/.linuxbrew/opt/zstd/lib/libzstd.so: undefined reference to `pthread_create@GLIBC_2.34'
# collect2: error: ld returned 1 exit status
# make[2]: *** [Makefile:870: runtime/ocamlrund] Error 1
# /usr/bin/ld: /home/linuxbrew/.linuxbrew/opt/zstd/lib/libzstd.so: undefined reference to `pthread_join@GLIBC_2.34'
# /usr/bin/ld: /home/linuxbrew/.linuxbrew/opt/zstd/lib/libzstd.so: undefined reference to `pthread_create@GLIBC_2.34'
# collect2: error: ld returned 1 exit status
# make[2]: *** [Makefile:876: runtime/ocamlruni] Error 1
# make[2]: Leaving directory '/home/aron/.opam/dune/.opam-switch/build/ocaml-base-compiler.5.1.1'
# make[1]: *** [Makefile:209: coldstart] Error 2
# make[1]: Leaving directory '/home/aron/.opam/dune/.opam-switch/build/ocaml-base-compiler.5.1.1'
# make: *** [Makefile:375: world.opt] Error 2



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build ocaml-base-compiler 5.1.1
└─ 
┌─ The following changes have been performed (the rest was aborted)
│ ∗ install base-bigarray         base
│ ∗ install base-threads          base
│ ∗ install base-unix             base
│ ∗ install ocaml-options-vanilla 1
└─ 

<><> ocaml-base-compiler.5.1.1 troubleshooting ><><><><><><><><><><><><><><><><>
=> A failure in the middle of the build may be caused by build parallelism
      (enabled by default).
      Please file a bug report at https://github.com/ocaml/opam-repository/issues
=> You can try installing again including --jobs=1
      to force a sequential build instead.
# Run eval $(opam env --switch=dune) to update the current shell environment
Switch initialisation failed: clean up? ('n' will leave the switch partially installed) [Y/n]

Screenshot of the full logs:

image