OCaml cmxs files are static libraries, which can be loaded at runtime
via the Dynlink module. They apparently do not provide any useful
runtime dependency information to be stored into the packages
Provides/Requires list. Therefore just skip them.
Adjust attr, remove extension and ELF magic
Adjust ocamldeps, do nothing with cmxs files.
Fixes: a6fe37c39b
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Dependencies between OCaml files containing native code are also tracked
by hashes, just like their bytecode counter parts.
OCaml native code files end with cmx, the relevent info is in cmx, cmxa
and cmxs files. Unlike all other OCaml files, cmxs files have ELF format.
OCaml has two variants of dependency tracking:
Interfaces, which are already tracked via "ocaml(MODULE) = HASH"
They are included in cmi, cma, cmo, cmx, cmxa and cmxs files.
Implementations, which are now tracked via "ocamlx(MODULE) = HASH"
They are included in cmx, cmxa and cmxs files.
Just like Interfaces can be excluded from the dependency list with the
option -i MODULE, Implementations are excluded with the option -x MODULE.
Previously the final rpm package also got an extra dependency to the
used ocaml runtime version. This is not strictly required because the
hashes are unique. Therefore this dependency is no longer created. The
option -c, which excluded this dependency, is still recognized.
Fixes#913
Signed-off-by: Olaf Hering <olaf@aepfle.de>