jon.recoil.org

Module Linkenv

module CU := Compilation_unit
type filepath := string
type t

Values of type t are mutable structures.

val create : unit -> Linkenv.t
val extract_crc_interfaces : Linkenv.t -> Import_info.t list
val extract_crc_implementations : Linkenv.t -> Import_info.t list
val lib_ccopts : Linkenv.t -> string list
val lib_ccobjs : Linkenv.t -> Linkenv.filepath list
val make_globals_map : Linkenv.t -> Linkenv.unit_link_info list -> (CU.t * Stdlib.Digest.t option * Stdlib.Digest.t option * Symbol.t list) list
val add_ccobjs : Linkenv.t -> Linkenv.filepath -> Cmx_format.library_infos -> unit
val is_required : Linkenv.t -> Compilation_unit.t -> bool
val add_required : Linkenv.t -> (Linkenv.filepath * CU.Name.t option) -> Import_info.t -> unit
val remove_required : Linkenv.t -> CU.t -> unit
val add_quoted_globals : Linkenv.t -> CU.Name.t list -> unit
val get_quoted_globals : Linkenv.t -> CU.Name.Set.t
val extract_missing_globals : Linkenv.t -> (CU.t * Linkenv.filepath list) list
val check_cmi_consistency : Linkenv.t -> Linkenv.filepath -> Import_info.t array -> unit
val check_cmx_consistency : Linkenv.t -> Linkenv.filepath -> Import_info.t array -> unit
val check_consistency : Linkenv.t -> unit:Linkenv.unit_link_info -> Import_info.t array -> Import_info.t array -> unit
type error =
  1. | File_not_found of Linkenv.filepath
  2. | Not_an_object_file of Linkenv.filepath
  3. | Missing_implementations of (Compilation_unit.t * string list) list
  4. | Inconsistent_interface of Compilation_unit.Name.t * Linkenv.filepath * Linkenv.filepath
  5. | Inconsistent_implementation of Compilation_unit.t * Linkenv.filepath * Linkenv.filepath
  6. | Multiple_definition of Compilation_unit.Name.t * Linkenv.filepath * Linkenv.filepath
  7. | Missing_cmx of Linkenv.filepath * Compilation_unit.t
  8. | Linking_error of int
  9. | Archiver_error of string
  10. | Metaprogramming_not_supported_by_backend of Linkenv.filepath
exception Error of Linkenv.error