Recently I enhanced the rpm package dependencies to cover also cmx files. (In retrospection: The title and summary is misleading, it really meant just cmx/cmxa …). It turned out: cmxs files need to be handled differently, most likely not at all.
My question is: what runtime dependency information is actually contained in a cmxs file, and in an application that loads a cmxs file?
ocamlobjinfo bigarray.cmxs shows imported Interfaces and Implementations, I think this means what is compiled into the cmxs, not what such cmxs would depend on.
An application does apparently not expose required runtime hashes, at least nothing obvious is shown in
readelf -Wa coqtop. But they seem to exist internally. While fixing the PR mentioned above,
coqtop complained about a hash mismatch in
Stdarg while loading one of the Coq cmxs files (I did not make a note of the exact error message). I think as long as the application and the used cmxs files come from the same build (like
coq.git), there will be no runtime mismatches.