llvm_linker.mli revision 9d33bf70c228a5c3b57b1d9bf86ea5949bb77293
19d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov(*===-- llvm_linker.mli - LLVM OCaml Interface -----------------*- OCaml -*-===*
29d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *
39d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *                     The LLVM Compiler Infrastructure
49d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *
59d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov * This file is distributed under the University of Illinois Open Source
69d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov * License. See LICENSE.TXT for details.
79d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *
89d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov *===----------------------------------------------------------------------===*)
99d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
109d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov(** Linker.
119d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
129d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov    This interface provides an OCaml API for LLVM bitcode linker,
139d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov    the classes in the Linker library. *)
149d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
159d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovexception Error of string
169d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
179d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov(** Linking mode. *)
189d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovmodule Mode : sig
199d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov  type t =
209d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov  | DestroySource
219d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov  | PreserveSource
229d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovend
239d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov
249d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov(** [link_modules dst src mode] links [src] into [dst], raising [Error]
259d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov    if the linking fails. *)
269d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotovexternal link_modules : Llvm.llmodule -> Llvm.llmodule -> Mode.t -> unit
279d33bf70c228a5c3b57b1d9bf86ea5949bb77293Peter Zotov                      = "llvm_link_modules"