fdopen / opam-repository-mingw

windows package repository for OPAM (mingw and msvc)
https://fdopen.github.io/opam-repository-mingw/
Creative Commons Zero v1.0 Universal
96 stars 34 forks source link

32 bit executable runs on Windows XP without error, but does nothing. #66

Closed johnwhitington closed 4 years ago

johnwhitington commented 4 years ago

A customer reports:

https://github.com/johnwhitington/cpdf-source/issues/180

This may not be an OCaml issue at all, but can you give any hints on how to help him (and me) debug this? The 32 bit builds in questions work fine on Windows 10 (and are built with it).

The older builds mentioned were built using an older OCaml-on-Windows system.

fdopen commented 4 years ago

XP support has been dropped by various tools involved during the compilation step (OCaml itself, the mingw-w64 C runtime, flexdll, ...). The executable file is dynamically linked against various dlls provided by Microsoft (advapi32.dll, msvcrt.dll,....) and depend on an ABI that is only available through the dlls shipped by Windows Vista or later.

If you need something that works on xp, you can try to install an old version of Cygwin: http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html (You actually don't need an old version of Cygwin, just the old old versions of mingw64-i686-runtime, mingw64-i686-gcc, mingw64-i686-gcc-core, etc that are also provided by the link above). And then install an older OCaml version from source: opam switch create ocaml-variants.4.05.0+mingw32 (not ocaml-variants.4.05.0+mingw32c).

johnwhitington commented 4 years ago

Thanks for the explanation!

Given the complexity, I think I'll probably just point users of XP to the old version, at least until a paying customer needs it.