29

I'm working on llvm OCaml bindings.

I installed llvm package through opam (opam install llvm), when I use llvm in utop, I get the following error:

#require "llvm";;
Error: The external function 'llvm_global_succ' is not available. 

The opam llvm version is 3.2.

I also tried building llvm3.3 from the official site (./configure --with-ocaml-libdir='ocamlc -where'), the build was successful (all the llvm command-line tools are working), but I got the same error in utop.

I'm on Mac OS 10.7.5.


Edit: I solved it..

ocamlmktop -o llvmtop llvm.cma -cc g++

Then launch llvmtop, you can use llvm bindings after open Llvm.

I haven't found an equivalent for utop yet..


Edit2: Now utop is working!

Thanks to the utop documentation here

  1. create a myutop_main.ml file:

    let () = UTop_main.main ()

  2. create a custom utop with llvm bindings:

    ocamlfind ocamlmktop -o llvmutop -thread -linkpkg -package utop -package llvm myutop_main.ml -cc g++

Community
  • 1
  • 1
xysun
  • 1,995
  • 18
  • 18
  • 8
    Since you've solved the problem yourself, please move your solution from the question into an answer and [accept it](http://blog.stackoverflow.com/2009/01/accept-your-own-answers/) so that this question is marked as answered. – Misha Brukman May 18 '14 at 04:55
  • @xysun - can you cut your own answer from your question above, and paste it into an answer, and then mark it as answered? That way it will be removed from the _Unanswered Questions_ list. Many Thanks. :-) – Greenonline Jan 19 '15 at 09:49

1 Answers1

3

(as I'm asked to answer my own question...)

To use system toplevel

ocamlmktop -o llvmtop llvm.cma -cc g++

Then launch llvmtop, you can use llvm bindings after open Llvm.

I haven't found an equivalent for utop yet..


To use utop

Thanks to the utop documentation here

  1. create a myutop_main.ml file:

    let () = UTop_main.main ()

  2. create a custom utop with llvm bindings:

    ocamlfind ocamlmktop -o llvmutop -thread -linkpkg -package utop -package llvm myutop_main.ml -cc g++

Community
  • 1
  • 1
xysun
  • 1,995
  • 18
  • 18