[LLVMdev] Z3 and loadable optimization
John Criswell
criswell at illinois.edu
Fri Apr 5 13:32:52 PDT 2013
On 4/5/13 3:16 PM, Giacomo Tagliabue wrote:
> I created a loadable optimization following the tutorial at
> http://llvm.org/docs/WritingAnLLVMPass.html. I want to use the Z3
> library, installed in my system, in my optimization. When I include
> z3++.h (the name of the library) in the code and use its classes, it
> compiles well, but when I try to run it it says:
>
> opt: symbol lookup error:
> /home/giacomo/llvm/Debug+Asserts/lib/Acsl.so: undefined symbol:
> Z3_mk_config
>
> What's the issue?
If the Z3 library is a dynamically linked library, then it's probably
not being loaded into opt. You might be able to force loading of it
with the -load option or by setting your LD_LIBRARY_PATH environment
variable to include the location of the Z3 library.
If the Z3 library is a statically linked library (a .a file on Linux),
then it might be the case that not all of the symbols in libz3.a are
being linked into your pass's .so file (because the linker doesn't think
those symbols are used). LLVM has similar problems with its .a files
and uses LinkAllPasses.h to trick the compiler into including all the
functions that it needs for .a files. A similar hack should fix the
problem that you're seeing.
-- John T.
> Thanks
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130405/94904585/attachment.html>
More information about the llvm-dev
mailing list