[LLVMdev] Objective-C code in lli
Eric Brunstad
ericbrunstad at mac.com
Mon Oct 19 05:32:36 PDT 2009
Hi,
What would be an estimate for the amount of work required to implement
this? Where would I get started if I were to implement it?
My goal is to run Objective-C programs in the interpreter so I can
provide an application-sandbox by disallowing the invocation of
certain C-functions and also by disallowing the invocation of certain
Objective-C methods.
Thanks,
Eric
On Oct 19, 2009, at 12:01 AM, Chris Lattner wrote:
>
> On Oct 18, 2009, at 6:32 PM, Eric Brunstad wrote:
>
>> Hi,
>>
>> Is it possible to run Objective-C code in lli? lli does not seem
>> to want to load Foundation.framework.
>
> It is definitely possible, but we're not there yet. LLI would have
> to know about objective-c metadata to register it properly with the
> runtime. This is important for things like classes etc. This isn't
> conceptually hard, but noone has done it yet.
>
> -Chris
>
>>
>> Please see below.
>>
>> Thanks,
>>
>> Eric Brunstad
>>
>> #import <Foundation/Foundation.h>
>>
>> int main(int argc, char *argv[])
>> {
>> NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
>> NSLog(@"test!");
>> [pool drain];
>> return EXIT_SUCCESS;
>> }
>>
>> cmu-351714:llvm-2.5 ericbrunstad$ /Users/ericbrunstad/Downloads/
>> llvm-2.5/Release/bin/lli -force-interpreter=true -stats /Users/
>> ericbrunstad/Desktop/test/test.o -load=/System/Library/Frameworks/
>> Foundation.framework/Foundation
>>
>> Could not resolve external global address:
>> __CFConstantStringClassReference
>> 0 lli 0x0000000100687556 (anonymous
>> namespace)::SignalHandler(int) + 470
>> 1 libSystem.B.dylib 0x00007fff83ee10aa _sigtramp + 26
>> 2 libSystem.B.dylib 0x0000000100a0b4ba _sigtramp + 2092082218
>> 3 lli 0x00000001001e8374
>> llvm::ExecutionEngine::emitGlobals() + 6164
>> 4 lli 0x00000001001dbd69
>> llvm::Interpreter::Interpreter(llvm::ModuleProvider*) + 185
>> 5 lli 0x00000001001dbdd8 llvm::Interpreter::create
>> (llvm::ModuleProvider*, std::string*, bool) + 56
>> 6 lli 0x0000000100010803 main + 243
>> 7 lli 0x00000001000106e8 start + 52
>>
>> _______________________________________________
>> 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/20091019/4184b769/attachment.html>
More information about the llvm-dev
mailing list