On 13/07/2022 16:41, David Allsopp wrote:
3) Interesting - on my machine, the camlheader[di] files had the .exe
extensions. I did some digging around and found the files are *built*
without the .exe suffix, and even *initially installed* without the .exe
suffix, but ultimately come out with the .exe suffix. I ran cyport in
debug mode and apparently the files are being renamed with the suffix
post-install:
+ case "${exe##*/}" in
+ mv usr/lib/ocaml/camlheaderd usr/lib/ocaml/camlheaderd.exe
+ exe+=.exe
and did a little more digging and I think these lines in cygport are the
cause:
https://github.com/cygwin/cygport/blob/096f27644bd3b28f29d7522e816bebd327c
f24cb/lib/src_postinst.cygpart#L1010
Yeah, that seems plausible, but I'm not clear why we are seeing
different behaviour...
On the topic of "testing more thoroughly", I attempted to use
ocamlc to compile a simple program and it fails with "Cannot find
file camlheader" but works when I remove the ".exe", so it seems
that the presence of the .exe suffixes breaks the compiler. Is
there a way to prevent cygport from adding it?
The camlheader files are data files and definitely mustn't be
installed with a .exe extension (nor do they need to be executable).
I'm confused here: /usr/lib/ocaml/camlheaderd[di] look like executables
(according to file etc.)
If they genuinely aren't, then perhaps they shouldn't have execute
permission (which is I think what is causing them to be caught by that
piece of code in cygport...)