[ITA] ocaml 4.14.0

William Hu purplearmadillo77@proton.me
Thu Jul 14 03:36:51 GMT 2022


Hi David,

> What were the missing symbols? With the OCaml 4.10 package, I hit problems with this:
>
> echo 'print_endline "hello, world"' > hello.ml
>
> ocamlc -custom -runtime-variant _shared -o hello.exe hello.ml
>
> I think that may be an issue upstream (libasmrun_shared.so IIRC is broken on all platforms - on Cygwin, you can just about to persuade it to get to the same symbol errors because of the extra .dll.a file which gets generated).

It's a very long list of missing symbols (~400) so it's included as an
attachment in case the mailing list truncates extremely lengthy emails. Also,
just to note, the .dll.a file doesn't seem to be automatically generated by
upstream OCaml.

> What's the full configuration command and what gets inferred for the build, host and target triplets? fma should work without emulation in Cygwin32 and it should be detecting as failing on Cygwin64 but the emulation should be enabled by default unless you explicitly passed --disable-imprecise-c99-float-ops.

Configuration command:
./configure --prefix=/usr --enable-ocamltest

If it's relevant, I'm compiling on a 64-bit machine with Cygwin32 installed to
compile the 32-bit version. Inferred build/host/target:
configure:2779: Configuring OCaml version 4.14.0
configure:3007: checking build system type
configure:3021: result: i686-pc-cygwin
configure:3041: checking host system type
configure:3054: result: i686-pc-cygwin
configure:3074: checking target system type
configure:3087: result: i686-pc-cygwin

On Cygwin64, the test does fail and emulate by default:

configure:14872: result: no
configure:14896: WARNING: fma does not work; emulation enabled

However, on Cygwin32, I get

configure:14872: result: no
configure:14894: error: fma does not work, enable emulation with --enable-imprecise-c99-float-ops

config.log conveniently includes the program that fails, so I copy-pasted some
very redundant code (attached) and ran it on the different architectures:

Cygwin64:
t264| ans: 0x0p+0   accept: 0x1.0989687cp-1044 0x1.09df287cp-1044 0x1.0ap-1044
t264| pass?: 0
t265| ans: 0x0p+0   accept: 0x1.0988p-1060 0x1.09ep-1060 0x1.0ap-1060
t265| pass?: 0
t266| ans: 0x1p-1074   accept: 0x1p-1073
t266| pass?: 0

Cygwin32:
t264| ans: 0x1.0ap-1044   accept: 0x1.0989687cp-1044 0x1.09df287cp-1044 0x1.0ap-1044
t264| pass?: 1
t265| ans: 0x1.0ap-1060   accept: 0x1.0988p-1060 0x1.09ep-1060 0x1.0ap-1060
t265| pass?: 1
t266| ans: 0x1p-1073   accept: 0x1p-1073
t266| pass?: 1

The numbers look like they agree but configure doesn't think so for some reason.

> The camlheader files are data files and definitely mustn't be installed with a .exe extension (nor do they need to be executable).
>
> Incidentally, OCaml 4.12+ is also likely to run into problems if flexlink is older than 0.39 - I just removed the test mark from the flexdll 0.39 package (which I thought I'd done quite some time ago...)
>
> HTH,
>
>
> David

Yep, these pointers help a ton! Thank you!

William
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fma_configure_test.c
URL: <https://cygwin.com/pipermail/cygwin-apps/attachments/20220714/8c9b444f/attachment-0001.c>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: camlrun_shared_missing_symbols.txt
URL: <https://cygwin.com/pipermail/cygwin-apps/attachments/20220714/8c9b444f/attachment-0001.txt>


More information about the Cygwin-apps mailing list