Skip to content

Compilation of OCaml 4.10.2 fails on Windows with Cygwin #29102

@Halbaroth

Description

@Halbaroth

I tried to create a switch with OCaml 4.10.2 on Windows:

opam sw create foo 4.10.2

and I got the following error:

#=== ERROR while compiling ocaml-base-compiler.4.10.2 =========================#
# context     2.5.0 | win32/x86_64 |  | https://opam.ocaml.org#3e41859015888fe8240e84dfc5f31bfa12a557e8
# path        ~\AppData\Local\opam\roglo_legacy\.opam-switch\build\ocaml-base-compiler.4.10.2
# command     ~\AppData\Local\opam\roglo_legacy\.opam-switch\build\ocaml-base-compiler.4.10.2\./configure --prefix=C:\Users\pierre\AppData\Local\opam\roglo_legacy -C
# exit-code   1
# env-file    ~\AppData\Local\opam\log\ocaml-base-compiler-19304-d57f68.env
# output-file ~\AppData\Local\opam\log\ocaml-base-compiler-19304-d57f68.out
### output ###
# [...]
# checking build system type... x86_64-pc-cygwin
# checking host system type... x86_64-pc-cygwin
# checking target system type... x86_64-pc-cygwin
# checking for ld... no
# checking for link... link
# checking how to print strings... printf
# checking for gcc... no
# checking for cc... no
# checking for cl.exe... no
# configure: error: in `/cygdrive/c/Users/pierre/AppData/Local/opam/roglo_legacy/.opam-switch/build/ocaml-base-compiler.4.10.2':
# configure: error: no acceptable C compiler found in $PATH
# See `config.log' for more details

It is fresh installation with opam 2.5.0 and recent compilers work as expected.

Cygwin packages
Cygwin Package Information
Package                                 Version                 Status
_autorebase                             001091-1                 OK
alternatives                            1.31-1                   OK
base-cygwin                             3.8-2                    OK
base-files                              4.3-3                    OK
bash                                    5.2.21-1                 OK
bzip2                                   1.0.8-2                  OK
ca-certificates                         2025.2.80_v9.0.304-1     OK
coreutils                               9.0-1                    OK
crypto-policies                         20190218-1               OK
cygutils                                1.4.17-4                 OK
cygwin                                  3.6.5-1                  OK
dash                                    0.5.12-5                 OK
diffutils                               3.12-1                   OK
editrights                              1.04-1                   OK
file                                    5.46-1                   OK
findutils                               4.10.0-1                 OK
gawk                                    5.3.2-1                  OK
getent                                  2.18.90-5                OK
grep                                    3.12-1                   OK
groff                                   1.23.0-1                 OK
gzip                                    1.14-1                   OK
hostname                                3.13-1                   OK
info                                    7.1-2                    OK
ipc-utils                               1.1-1                    OK
less                                    668-1                    OK
libargp                                 20250917-2               OK
libattr1                                2.5.2-2                  OK
libblkid1                               2.40.2-2                 OK
libbz2_1                                1.0.8-2                  OK
libcrypt2                               4.5.2-1                  OK
libfdisk1                               2.40.2-2                 OK
libffi6                                 3.2.1-2                  OK
libffi8                                 3.5.2-1                  OK
libgc1                                  8.2.10-1                 OK
libgcc1                                 13.4.0-1                 OK
libgdbm6                                1.26-1                   OK
libgmp10                                6.3.0-1                  OK
libguile3.0_1                           3.0.10-3                 OK
libiconv2                               1.17-1                   OK
libintl8                                0.22.5-1                 OK
libisl23                                0.27-1                   OK
liblastlog2                             2.40.2-2                 OK
liblz4_1                                1.9.4-1                  OK
liblzma5                                5.8.1-1                  OK
libmpc3                                 1.3.1-1                  OK
libmpfr6                                4.2.2-1                  OK
libncursesw10                           6.5+20240427-1           OK
libp11-kit0                             0.23.20-1                OK
libpcre1                                8.45-1                   OK
libpcre2_8_0                            10.47-1                  OK
libpipeline1                            1.5.8-1                  OK
libpopt-common                          1.19-1                   OK
libpopt0                                1.19-1                   OK
libreadline7                            8.2-2                    OK
libreadline8                            8.3-1                    OK
libsmartcols1                           2.40.2-2                 OK
libsqlite3_0                            3.49.1-1                 OK
libssl1.1                               1.1.1w-1                 OK
libssl3                                 3.0.18-1                 OK
libstdc++6                              13.4.0-1                 OK
libtasn1_6                              4.14-1                   OK
libuchardet0                            0.0.8-1                  OK
libunistring5                           1.2-1                    OK
libuuid1                                2.40.2-2                 OK
libxxhash0                              0.8.3-1                  OK
libzstd1                                1.5.7-1                  OK
login                                   1.13-1                   OK
make                                    4.4.1-2                  OK
man-db                                  2.13.1-1                 OK
mingw64-i686-binutils                   2.45.1-1                 OK
mingw64-i686-gcc-core                   13.4.0-1                 OK
mingw64-i686-gcc-g++                    13.4.0-1                 OK
mingw64-i686-headers                    13.0.0-1                 OK
mingw64-i686-runtime                    13.0.0-1                 OK
mingw64-i686-windows-default-manifest   6.4-1                    OK
mingw64-i686-winpthreads                13.0.0-1                 OK
mingw64-x86_64-binutils                 2.45.1-1                 OK
mingw64-x86_64-gcc-core                 13.4.0-1                 OK
mingw64-x86_64-headers                  13.0.0-1                 OK
mingw64-x86_64-runtime                  13.0.0-1                 OK
mingw64-x86_64-windows-default-manifest 6.4-1                    OK
mingw64-x86_64-winpthreads              13.0.0-1                 OK
mintty                                  3.8.1-1                  OK
ncurses                                 6.5+20240427-1           OK
openssl                                 3.0.18-1                 OK
p11-kit                                 0.23.20-1                OK
p11-kit-trust                           0.23.20-1                OK
rebase                                  4.6.6-1                  OK
rsync                                   3.3.0-1                  OK
run                                     1.3.4-2                  OK
sed                                     4.9-1                    OK
tar                                     1.35-2                   OK
terminfo                                6.5+20240427-1           OK
tzcode                                  2025b-1                  OK
tzdata                                  2025b-1                  OK
unzip                                   6.0-18                   OK
util-linux                              2.40.2-2                 OK
vim-minimal                             9.1.1825-1               OK
which                                   2.23-1                   OK
xz                                      5.8.1-1                  OK
zlib0                                   1.3.1-1                  OK
zstd                                    1.5.7-1                  OK

Compilation log

I notice that your CI doesn't test new packages with old OCaml compiler on Windows:

        # TODO Amend this lowerbound as older compiler packages are updated
        run: opam switch set-invariant --formula "`"ocaml`" {>= `"4.13`"}"

Do you have any plans to fix these packages?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions