Hi, I'm new to VMKit and I'm trying to use its AOT Java compiler but I'm immediately getting an error message which I don't understand. Everything was compiler as suggested in the Getting Started tutorial, using GNU Classpath. I try to run: llcj ../../tools/trainer/Release+Asserts/HelloWorld.class and get the following output: Can not materiale a function in AOT mode.0 vmjc 0x0000000000f2cea5 llvm::sys::PrintStackTrace(_IO_FILE*) + 37 1 vmjc 0x0000000000f2d363 2 libpthread.so.0 0x00007f4fbbe83880 3 libc.so.6 0x00007f4fbb0e2389 gsignal + 57 4 libc.so.6 0x00007f4fbb0e3788 abort + 328 5 vmjc 0x000000000052f6f9 6 vmjc 0x00000000005739cc 7 vmjc 0x0000000000573795 8 vmjc 0x0000000000572d24 j3::JavaMethod::invokeIntStatic(j3::Jnjvm*, j3::Class*, ...) + 116 9 vmjc 0x0000000000587c9e j3::Class::initialiseClass(j3::Jnjvm*) + 574 10 vmjc 0x0000000000574c82 11 vmjc 0x0000000000574a45 12 vmjc 0x00000000005735a4 j3::JavaMethod::invokeJavaObjectStatic(j3::Jnjvm*, j3::Class*, ...) + 116 13 vmjc 0x000000000058a921 j3::Jnjvm::noClassDefFoundError(j3::Class*, vmkit::UTF8 const*) + 1665 14 vmjc 0x000000000056c2bb j3::Class::readClass() + 427 15 vmjc 0x0000000000591a78 j3::JnjvmClassLoader::constructClass(vmkit::UTF8 const*, j3::ClassBytes*) + 360 16 vmjc 0x0000000000591743 j3::JnjvmBootstrapLoader::internalLoad(vmkit::UTF8 const*, bool, j3::JavaString*) + 131 17 vmjc 0x0000000000591d76 j3::JnjvmClassLoader::loadName(vmkit::UTF8 const*, bool, bool, j3::JavaString*) + 38 18 vmjc 0x000000000052b43a mainCompilerStart(j3::JavaThread*) + 586 19 vmjc 0x00000000005b0300 vmkit::Thread::internalThreadStart(vmkit::Thread*) + 528 20 libpthread.so.0 0x00007f4fbbe7c0a2 21 libc.so.6 0x00007f4fbb192d1d clone + 109 This is produced inside the JavaAOTCompiler.h, in method materializeFunction which is called from JavaMethod::compiledPtr. What am I doing wrong? Cheers, David -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140307/5b93a76e/attachment.html>
Hi David, I don't know where is the problem, but I'm investigating that :) Basically, I never had to use llcj and I don't know how and if it works... I send you a mail as soon as I understand how llcj should work. Gaël 2014-03-07 15:06 GMT+01:00 David Brazdil <david.brazdil at gmail.com>:> Hi, > I'm new to VMKit and I'm trying to use its AOT Java compiler but I'm > immediately getting an error message which I don't understand. > > Everything was compiler as suggested in the Getting Started tutorial, using > GNU Classpath. I try to run: > > llcj ../../tools/trainer/Release+Asserts/HelloWorld.class > > and get the following output: > > Can not materiale a function in AOT mode.0 vmjc > 0x0000000000f2cea5 llvm::sys::PrintStackTrace(_IO_FILE*) + 37 > 1 vmjc 0x0000000000f2d363 > 2 libpthread.so.0 0x00007f4fbbe83880 > 3 libc.so.6 0x00007f4fbb0e2389 gsignal + 57 > 4 libc.so.6 0x00007f4fbb0e3788 abort + 328 > 5 vmjc 0x000000000052f6f9 > 6 vmjc 0x00000000005739cc > 7 vmjc 0x0000000000573795 > 8 vmjc 0x0000000000572d24 > j3::JavaMethod::invokeIntStatic(j3::Jnjvm*, j3::Class*, ...) + 116 > 9 vmjc 0x0000000000587c9e > j3::Class::initialiseClass(j3::Jnjvm*) + 574 > 10 vmjc 0x0000000000574c82 > 11 vmjc 0x0000000000574a45 > 12 vmjc 0x00000000005735a4 > j3::JavaMethod::invokeJavaObjectStatic(j3::Jnjvm*, j3::Class*, ...) + 116 > 13 vmjc 0x000000000058a921 > j3::Jnjvm::noClassDefFoundError(j3::Class*, vmkit::UTF8 const*) + 1665 > 14 vmjc 0x000000000056c2bb j3::Class::readClass() + 427 > 15 vmjc 0x0000000000591a78 > j3::JnjvmClassLoader::constructClass(vmkit::UTF8 const*, j3::ClassBytes*) + > 360 > 16 vmjc 0x0000000000591743 > j3::JnjvmBootstrapLoader::internalLoad(vmkit::UTF8 const*, bool, > j3::JavaString*) + 131 > 17 vmjc 0x0000000000591d76 > j3::JnjvmClassLoader::loadName(vmkit::UTF8 const*, bool, bool, > j3::JavaString*) + 38 > 18 vmjc 0x000000000052b43a mainCompilerStart(j3::JavaThread*) > + 586 > 19 vmjc 0x00000000005b0300 > vmkit::Thread::internalThreadStart(vmkit::Thread*) + 528 > 20 libpthread.so.0 0x00007f4fbbe7c0a2 > 21 libc.so.6 0x00007f4fbb192d1d clone + 109 > > This is produced inside the JavaAOTCompiler.h, in method materializeFunction > which is called from JavaMethod::compiledPtr. What am I doing wrong? > > Cheers, > David > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- ------------------------------------------------------------------- Gaël Thomas, Associate Professor, UPMC http://pagesperso-systeme.lip6.fr/Gael.Thomas/ -------------------------------------------------------------------
Hi Gaël Thanks for looking into this. I've made a little progress myself. "llcj" must be run from the root directory of the compiled Java class files, i.e. the "tools/trainer/Release+Asserts" directory. Then its call to "vmjc" succeeds, it calls "opt", but then it fails again when it tries to run "llc", saying that it cannot find the vmkit garbage collector. So I added the "static-gc-printer.so" with a "-load" option. Now it finds the GC, but that still fails with: llc: VmkitGCPrinter.cpp:270: llvm::Constant *FindMetadata(const llvm::Function &): Assertion `0 && "Should have found a JavaMethod"' failed. 0 llc 0x0000000000ff1295 llvm::sys::PrintStackTrace(_IO_FILE*) + 37 1 llc 0x0000000000ff1753 2 libpthread.so.0 0x00007fce83f1b880 3 libc.so.6 0x00007fce8317a389 gsignal + 57 4 libc.so.6 0x00007fce8317b788 abort + 328 5 libc.so.6 0x00007fce831734a6 6 libc.so.6 0x00007fce83173552 7 static-gc-printer.so 0x00007fce82f41a7e 8 static-gc-printer.so 0x00007fce82f41fe2 9 llc 0x0000000000b58781 llvm::AsmPrinter::doFinalization(llvm::Module&) + 1217 10 llc 0x0000000000f8fa1e llvm::FPPassManager::doFinalization(llvm::Module&) + 94 11 llc 0x0000000000f8fd2e llvm::MPPassManager::runOnModule(llvm::Module&) + 686 12 llc 0x0000000000f904df llvm::PassManagerImpl::run(llvm::Module&) + 543 13 llc 0x0000000000524f2a main + 6506 14 libc.so.6 0x00007fce83166b05 __libc_start_main + 245 15 llc 0x00000000005234f3 Stack dump: 0. Program arguments: /home/db538/vmkit/llvm-3.3.src/Release+Asserts/bin/llc /tmp/llvm_xJHwnR/HelloWorld.bc -disable-fp-elim -load /home/db538/vmkit/vmkit/Release+Asserts/lib/static-gc-printer.so -o /tmp/llvm_xJHwnR/HelloWorld.s I checked and the method it's looking for is "JnJVM_HelloWorld_main___3Ljava_lang_String_2". Thoughts? Thanks, Dave On Fri, Mar 7, 2014 at 6:55 PM, Gaël Thomas <gael.thomas at lip6.fr> wrote:> Hi David, > > I don't know where is the problem, but I'm investigating that :) > Basically, I never had to use llcj and I don't know how and if it > works... I send you a mail as soon as I understand how llcj should > work. > > Gaël > > > 2014-03-07 15:06 GMT+01:00 David Brazdil <david.brazdil at gmail.com>: > > Hi, > > I'm new to VMKit and I'm trying to use its AOT Java compiler but I'm > > immediately getting an error message which I don't understand. > > > > Everything was compiler as suggested in the Getting Started tutorial, > using > > GNU Classpath. I try to run: > > > > llcj ../../tools/trainer/Release+Asserts/HelloWorld.class > > > > and get the following output: > > > > Can not materiale a function in AOT mode.0 vmjc > > 0x0000000000f2cea5 llvm::sys::PrintStackTrace(_IO_FILE*) + 37 > > 1 vmjc 0x0000000000f2d363 > > 2 libpthread.so.0 0x00007f4fbbe83880 > > 3 libc.so.6 0x00007f4fbb0e2389 gsignal + 57 > > 4 libc.so.6 0x00007f4fbb0e3788 abort + 328 > > 5 vmjc 0x000000000052f6f9 > > 6 vmjc 0x00000000005739cc > > 7 vmjc 0x0000000000573795 > > 8 vmjc 0x0000000000572d24 > > j3::JavaMethod::invokeIntStatic(j3::Jnjvm*, j3::Class*, ...) + 116 > > 9 vmjc 0x0000000000587c9e > > j3::Class::initialiseClass(j3::Jnjvm*) + 574 > > 10 vmjc 0x0000000000574c82 > > 11 vmjc 0x0000000000574a45 > > 12 vmjc 0x00000000005735a4 > > j3::JavaMethod::invokeJavaObjectStatic(j3::Jnjvm*, j3::Class*, ...) + 116 > > 13 vmjc 0x000000000058a921 > > j3::Jnjvm::noClassDefFoundError(j3::Class*, vmkit::UTF8 const*) + 1665 > > 14 vmjc 0x000000000056c2bb j3::Class::readClass() + 427 > > 15 vmjc 0x0000000000591a78 > > j3::JnjvmClassLoader::constructClass(vmkit::UTF8 const*, > j3::ClassBytes*) + > > 360 > > 16 vmjc 0x0000000000591743 > > j3::JnjvmBootstrapLoader::internalLoad(vmkit::UTF8 const*, bool, > > j3::JavaString*) + 131 > > 17 vmjc 0x0000000000591d76 > > j3::JnjvmClassLoader::loadName(vmkit::UTF8 const*, bool, bool, > > j3::JavaString*) + 38 > > 18 vmjc 0x000000000052b43a > mainCompilerStart(j3::JavaThread*) > > + 586 > > 19 vmjc 0x00000000005b0300 > > vmkit::Thread::internalThreadStart(vmkit::Thread*) + 528 > > 20 libpthread.so.0 0x00007f4fbbe7c0a2 > > 21 libc.so.6 0x00007f4fbb192d1d clone + 109 > > > > This is produced inside the JavaAOTCompiler.h, in method > materializeFunction > > which is called from JavaMethod::compiledPtr. What am I doing wrong? > > > > Cheers, > > David > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > > -- > ------------------------------------------------------------------- > Gaël Thomas, Associate Professor, UPMC > http://pagesperso-systeme.lip6.fr/Gael.Thomas/ > ------------------------------------------------------------------- >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140308/fca90ed8/attachment.html>
Reasonably Related Threads
- [LLVMdev] VMKit is retired (but you can help if you want!)
- [LLVMdev] vmkit2 core dump after building mmtk
- [LLVMdev] vmkit2 core dump after building mmtk
- [LLVMdev] vmkit2 core dump after building mmtk
- [LLVMdev] VMKit is retired (but you can help if you want!)