savonet/ocaml-ssl

Fatal error: exception Failure("Map.of_list_exn: duplicate key")

rwmjones opened this issue · 3 comments

$ dune build
    discover src/c_flags.sexp,src/c_library_flags.sexp,src/ocaml_ssl.h (exit 2)
(cd _build/default/src && config/discover.exe)
which: pkg-config
-> found: /usr/bin/pkg-config
run: /usr/bin/pkg-config --print-errors openssl
-> process exited with code 0
-> stdout:
-> stderr:
run: /usr/bin/pkg-config --cflags openssl
-> process exited with code 0
-> stdout:
 | 
-> stderr:
run: /usr/bin/pkg-config --libs openssl
-> process exited with code 0
-> stdout:
 | -lssl -lcrypto 
-> stderr:
compiling c program:
 | #include <stdio.h>
 | #include <openssl/ssl.h>
 | 
 | 
 | #ifdef SSL_set_tlsext_host_name
 | const char *s0 = "BEGIN-0-true-END";
 | #else
 | const char *s0 = "BEGIN-0-false-END";
 | #endif
 | 
 | 
 | #ifdef SSL_EXT_TLS1_3_ONLY
 | const char *s1 = "BEGIN-1-true-END";
 | #else
 | const char *s1 = "BEGIN-1-false-END";
 | #endif
 | 
run: gcc -O2 -fno-strict-aliasing -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I /usr/lib64/ocaml -o /tmp/ocaml-configuratorefa7ef/c-test-3/test.o -c /tmp/ocaml-configuratorefa7ef/c-test-3/test.c
-> process exited with code 0
-> stdout:
-> stderr:
Fatal error: exception Failure("Map.of_list_exn: duplicate key")

This is with the latest version from git and OCaml 4.11.0. It didn't happen with an earlier pre-release of 4.11.0, so I guess this is caused by some change in the Map module or compiler?

Mmmm, since Map doesn't even seem to be used by ocaml-ssl, I kind of wonder if the error is actually from dune.

As I think this might be dune: ocaml/dune#3736

From the other bug, this is apparently on dune side. Closing here, feel free to reopen if needed.