[LLVMdev] How to stop symbol searching without aborting

Marcus Zetterquist
Fri, 05 Jun 2009 12:33:38 -0000

Hi!


Today we use Lua to let 3rd party developers add driver-like modules
to our application.

The advantages to using Lua compared to DLL:s etc. are that:

1) the same driver binary can be used on all OS:es and processor
architectures etc.

2) We can provide a small API to the Lua drivers and they _cannot_
call any other external functions.

3) A buggy driver cannot crash our application. (Almost true statement.)


I'm looking into using LLVM and the bitcode format for this instead.
The additional, very important advantages are:

4) 3rd parties can port existing (huge amounts of) C / C++ code much
easier - no need to rewrite all code in Lua.

5) Performance. We will use the LLVM JIT.


Problem: I can't figure out how to do (2) with the LLVM JIT.

It is very important that the driver does not have access to any other
function in the application except those I provide. It's not OK for
our application to abort if a driver calls an undefined function - I
want to just disable _that driver_ in that event.

I can use DisableSymbolSearching() but that causes application to
abort for unknown symbols.


Please advice!


/Marcus