llvm-project/llvm/bindings/ocaml
Michal Gorny 83012b4721 [OCaml] Fix undefined reference to LLVMDumpType() with NDEBUG
Account for the possibility of LLVMDumpType() not being available with
NDEBUG in the OCaml bindings. If it is not built into LLVM, make
the dump function raise an exception.

Since rL293359, the dump functions are built only if either NDEBUG is
not defined, or LLVM_ENABLE_DUMP is defined. As a result, if the dump
functions are not built in LLVM, the dynamic OCaml libraries fail to
load due to undefined LLVMDumpType symbol.

Differential Revision: https://reviews.llvm.org/D35899

llvm-svn: 309321
2017-07-27 21:13:25 +00:00
..
all_backends Remove autoconf support 2016-01-26 21:29:08 +00:00
analysis [OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise 2016-04-01 07:56:17 +00:00
backends cmake: Install the OCaml libraries into a more correct path 2016-09-30 18:34:23 +00:00
bitreader [OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise 2016-04-01 07:56:17 +00:00
bitwriter Remove autoconf support 2016-01-26 21:29:08 +00:00
executionengine Silence warnings in OCaml bindings 2016-03-31 08:39:42 +00:00
irreader Remove autoconf support 2016-01-26 21:29:08 +00:00
linker [OCaml] Use LLVMCreateMessage with constant strings when calling llvm_raise 2016-04-01 07:56:17 +00:00
llvm [OCaml] Fix undefined reference to LLVMDumpType() with NDEBUG 2017-07-27 21:13:25 +00:00
target [NFC] Remove multiple semicolons 2017-06-28 23:15:16 +00:00
transforms Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
CMakeLists.txt
README.txt [CMake] [OCaml] Allow building OCaml bindings out of tree. 2016-09-05 01:42:22 +00:00

README.txt

This directory contains LLVM bindings for the OCaml programming language
(http://ocaml.org).

Prerequisites
-------------

* OCaml 4.00.0+.
* ctypes 0.4+.
* oUnit 2+ (only required for tests).
* CMake (to build LLVM).

Building the bindings
---------------------

If all dependencies are present, the bindings will be built and installed
as a part of the default CMake configuration, with no further action.
They will only work with the specific OCaml compiler detected during the build.

The bindings can also be built out-of-tree, i.e. targeting a preinstalled
LLVM. To do this, configure the LLVM build tree as follows:

    $ cmake -DLLVM_OCAML_OUT_OF_TREE=TRUE \
            -DCMAKE_INSTALL_PREFIX=[OCaml install prefix] \
            [... any other options]

then build and install it as:

    $ make ocaml_all
    $ cmake -P bindings/ocaml/cmake_install.cmake