[ITA] ocaml 4.14.0

William Hu purplearmadillo77@proton.me
Wed Jul 13 02:56:18 GMT 2022


Apologies, meant to click reply-all.

Hi Jon,

Thanks for all of the detailed feedback - I'll test the package more
thoroughly next time.

1) libcamlrun: Oops, that's another oversight, forgot to look at the old
patches. The other 3 patches seem unnecessary, but I had trouble linking
 either libcamlrun_shared.so or libcamlrun_shared.dll.a into a program
(unresolved symbol errors). Added but it possibly needs further patching.
I'll keep on digging.

1.5) I checked for other differences between the cygports to make sure I
didn't miss anything else. I made some edits to src_install: I removed `dodoc
 Updating` since there doesn't seem to be a file named "Updating". I also
removed symlinking header files to /usr/include.  From what I understood, the
 OCaml documentation says the headers should "reside in the caml/ subdirectory
 of the OCaml standard library directory, which is returned by the command
ocamlc -where (usually /usr/local/lib/ocaml or /usr/lib/ocaml)". Obviously the
 symlink doesn't move anything, but since their location is well documented I
 didn't see a reason to have the extra symlinks. Please let me know if this is
 too large of a change or there's a Cygwin (or non-Cygwin) convention that
precludes this - I'm still getting the hang of this.

2) fma on x86: I'm actually getting the same error, but the tests should
ostensibly pass on Cygwin32. I'll also look into this.

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/096f27644bd3b28f29d7522e816bebd327cf24cb/lib/src_postinst.cygpart#L1010

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?

4) Thanks for the catch. Added --enable-ocamltest to the cygport.

William

------- Original Message -------
On Tuesday, July 5th, 2022 at 3:44 PM, Jon Turney <jon.turney@dronecode.org.uk> wrote:


> On 05/07/2022 01:42, William Hu via Cygwin-apps wrote:
>
> > Hi Jon,
> >
> > Oops, sorry about that. The patch and updated cygport are now attached.
> > Sending SSH key shortly.
>
>
> Thanks.
>
> Firstly, I notice that you dropped 4.10.0-libcamlrun_shared.patch. Can
> you explain the reasoning behind that?
>
> (After a bit of digging, I found this mail
> https://cygwin.com/pipermail/cygwin/2010-October/191524.html which
> explains the rationale behind it)
>
> Next, when I try to build this:
>
> on x86:
>
> > checking whether fma works... no
> > configure: error: fma does not work, enable emulation with --enable-imprecise-c99-float-ops
>
>
> I guess perhaps that configure option needs to be conditionally used on x86?
>
> > > > > ocaml-runtime-4.14.0-1.tar.xz
> > > > > usr/bin/ocamlrun.exe
> > > > > usr/bin/ocamlrund.exe
> > > > > usr/bin/ocamlruni.exe
> > > > > tar: usr/lib/ocaml/camlheader[di].exe: Cannot stat: No such file or directory
>
> [...]
>
> > tar: Exiting with failure status due to previous errors
> > *** ERROR: Binary package creation failed: ocaml-runtime
>
>
> camlheader[di] are made without the .exe extensions (you've changed the
> cygport to add the exe, so maybe this was wrong before as they are
> executables)
>
> I'm not sure if that's a missing bit of patching or something different
> in your environment?
>
> > $ cygport ocaml.cygport test
> >
> > > > > Testing ocaml-4.14.0-1.x86_64
> > > > > Makefile:162: *** ocamltest not found in ../ocamltest. Stop.
> > > > > make: *** [Makefile:156: all] Error 2
> > > > > *** ERROR: make failed
>
>
> Seems like this requires the --enable-ocamltest configure option?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ocaml.cygport
Type: application/octet-stream
Size: 2183 bytes
Desc: not available
URL: <https://cygwin.com/pipermail/cygwin-apps/attachments/20220713/513482ba/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 4.14.0-libcamlrun_shared.patch
Type: application/octet-stream
Size: 1526 bytes
Desc: not available
URL: <https://cygwin.com/pipermail/cygwin-apps/attachments/20220713/513482ba/attachment-0001.obj>


More information about the Cygwin-apps mailing list