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...)

Reply via email to