VMKit build error

I’m trying to build the SVN version of VMKit and I’m getting this error while building.
I have llvm and clang built from SVN too.

Any help?

llvm[2]: Building Release+Asserts mmtk-vmkit.jar all
vmjc: JavaClass.cpp:442: j3::JavaObject j3::Class::doNew(j3::Jnjvm ): Assertion `this && “No class when allocating.”’ failed.
0 vmjc 0x0000000000e9c44f
1 vmjc 0x0000000000e9cf8a
2 libpthread.so.0 0x00002ac09794bc60
3 libc.so.6 0x00002ac09874cd05 gsignal + 53
4 libc.so.6 0x00002ac098750ab6 abort + 390
5 libc.so.6 0x00002ac0987457c5 __assert_fail + 245
6 vmjc 0x000000000055772b j3::Class::doNew(j3::Jnjvm
) + 107
7 vmjc 0x000000000056423b j3::JavaString::stringDup(j3::ArrayUInt16 const
const&, j3::Jnjvm*) + 59
8 vmjc 0x000000000054c091 j3::StringMap::lookupOrCreate(j3::ArrayUInt16 const*, j3::Jnjvm*, j3::JavaString* ()(j3::ArrayUInt16 const const&, j3::Jnjvm*)) + 161
9 vmjc 0x0000000000548d49 CreateUnableToLoad(mvm::UTF8 const*, j3::Jnjvm*) + 617
10 vmjc 0x00000000005470a3 j3::Jnjvm::noClassDefFoundError(mvm::UTF8 const*) + 67
11 vmjc 0x000000000054f715 j3::JnjvmClassLoader::loadName(mvm::UTF8 const*, bool, bool, j3::JavaString*) + 277
12 vmjc 0x000000000055813a j3::Class::readParents(j3::Reader&) + 106
13 vmjc 0x0000000000559297 j3::Class::readClass() + 375
14 vmjc 0x000000000054f348 j3::JnjvmClassLoader::constructClass(mvm::UTF8 const*, j3::ClassBytes*) + 360
15 vmjc 0x000000000054f122 j3::JnjvmBootstrapLoader::internalLoad(mvm::UTF8 const*, bool, j3::JavaString*) + 130
16 vmjc 0x000000000054f62e j3::JnjvmClassLoader::loadName(mvm::UTF8 const*, bool, bool, j3::JavaString*) + 46
17 vmjc 0x000000000058f86c extractFiles(j3::ClassBytes*, j3::JavaAOTCompiler*, j3::JnjvmBootstrapLoader*, std::vector<j3::Class*, std::allocatorj3::Class* >&) + 444
18 vmjc 0x000000000058fc64 mainCompilerStart(j3::JavaThread*) + 532
19 vmjc 0x00000000005cfa1e mvm::thread::internalThreadStart(mvm::Thread*) + 126
20 libpthread.so.0 0x00002ac097942d8c
21 libc.so.6 0x00002ac0987ff04d clone + 109
Aborted

Are you running on 64bit (your backtrace addresses suggest you are)?

I'm encountering the same error when trying to use VMKit on 64bit,
which I believe is an unsupported target.

~Will

Hmm, disregard my previous comment (while you might still have issues
with 64bit, that's not what's primarily causing your issue)--your
particular error is when you don't point vmkit to the classpath
libraries properly.

Set it with the configure option
--with-gnu-classpath-glibj=/path/to/classpath-0.97.2/lib/glibj.zip

Good luck!

~Will

Ah yes, thanks, this was one problem, now I hit another:

llvm[2]: Building Release+Asserts mmtk-vmkit.jar all
Thread 0x110000000 received a SIGSEGV: either the VM code or an external
native method is bogus. Aborting…
; 0x5cfeed (0x1100fe410) in _Z14sigsegvHandleriP7siginfoPv
; 0x2b889c232c60 in Unknown method
; 0x561499 (0x1100fe900) in ZN2j310JavaObject7acquireEPS0
; 0x55b464 (0x1100fe920) in _ZN2j35Class7acquireEv
; 0x546d1e (0x1100fe940) in _ZN2j35Class15initialiseClassEPNS_5JnjvmE
; 0x54a649 (0x1100feb30) in _ZN2j35Jnjvm13loadBootstrapEv
; 0x58fd57 (0x1100feb80) in _Z17mainCompilerStartPN2j310JavaThreadE
; 0x5cfa1e (0x1100fed60) in ZN3mvm6Thread19internalThreadStartEPS0
0 vmjc 0x0000000000e9c44f
1 vmjc 0x0000000000e9cf8a
2 libpthread.so.0 0x00002b889c232c60
3 libc.so.6 0x00002b889d033d05 gsignal + 53
4 libc.so.6 0x00002b889d037ab6 abort + 390
5 vmjc 0x00000000005cfef2
6 libpthread.so.0 0x00002b889c232c60
7 vmjc 0x00000000005cd964 mvm::ThinLock::acquire(gc*, mvm::LockSystem&) + 1060
8 vmjc 0x0000000000561499 j3::JavaObject::acquire(j3::JavaObject*) + 41
9 vmjc 0x000000000055b464 j3::Class::acquire() + 52
10 vmjc 0x0000000000546d1e j3::Class::initialiseClass(j3::Jnjvm*) + 110
11 vmjc 0x000000000054a649 j3::Jnjvm::loadBootstrap() + 393
12 vmjc 0x000000000058fd57 mainCompilerStart(j3::JavaThread*) + 775
13 vmjc 0x00000000005cfa1e mvm::thread::internalThreadStart(mvm::Thread*) + 126
14 libpthread.so.0 0x00002b889c229d8c
15 libc.so.6 0x00002b889d0e604d clone + 109
Aborted

I’m running a Linux 2.6.38 x86_64. I configured with:
./configure --with-llvmsrc=/home/user/llvm --with-gnu-classpath-glibj=/home/user/classpath-0.97.2/lib/glibj.zip --with-gnu-classpath-libs=/home/user/classpath-0.97.2/lib --with-llvmobj=/home/user/llvm

I’m not sure where the --with-gnu-classpath-libs should point. Any ideas about the error?

Hi Frederic,

Ah yes, thanks, this was one problem, now I hit another:

llvm[2]: Building Release+Asserts mmtk-vmkit.jar all

Thread 0x110000000 received a SIGSEGV: either the VM code or an external
native method is bogus. Aborting…
; 0x5cfeed (0x1100fe410) in _Z14sigsegvHandleriP7siginfoPv
; 0x2b889c232c60 in Unknown method
; 0x561499 (0x1100fe900) in ZN2j310JavaObject7acquireEPS0
; 0x55b464 (0x1100fe920) in _ZN2j35Class7acquireEv
; 0x546d1e (0x1100fe940) in _ZN2j35Class15initialiseClassEPNS_5JnjvmE
; 0x54a649 (0x1100feb30) in _ZN2j35Jnjvm13loadBootstrapEv
; 0x58fd57 (0x1100feb80) in _Z17mainCompilerStartPN2j310JavaThreadE
; 0x5cfa1e (0x1100fed60) in ZN3mvm6Thread19internalThreadStartEPS0

0 vmjc 0x0000000000e9c44f
1 vmjc 0x0000000000e9cf8a

2 libpthread.so.0 0x00002b889c232c60
3 libc.so.6 0x00002b889d033d05 gsignal + 53
4 libc.so.6 0x00002b889d037ab6 abort + 390
5 vmjc 0x00000000005cfef2
6 libpthread.so.0 0x00002b889c232c60
7 vmjc 0x00000000005cd964 mvm::ThinLock::acquire(gc*, mvm::LockSystem&) + 1060
8 vmjc 0x0000000000561499 j3::JavaObject::acquire(j3::JavaObject*) + 41
9 vmjc 0x000000000055b464 j3::Class::acquire() + 52
10 vmjc 0x0000000000546d1e j3::Class::initialiseClass(j3::Jnjvm*) + 110
11 vmjc 0x000000000054a649 j3::Jnjvm::loadBootstrap() + 393
12 vmjc 0x000000000058fd57 mainCompilerStart(j3::JavaThread*) + 775
13 vmjc 0x00000000005cfa1e mvm::thread::internalThreadStart(mvm::Thread*) + 126
14 libpthread.so.0 0x00002b889c229d8c
15 libc.so.6 0x00002b889d0e604d clone + 109
Aborted

I’m running a Linux 2.6.38 x86_64. I configured with:

Unfortunately, vmkit does not support 64bits architecture :frowning: I plan on working on it, but in the meantime, maybe you can use a 32bit environment?

./configure --with-llvmsrc=/home/user/llvm --with-gnu-classpath-glibj=/home/user/classpath-0.97.2/lib/glibj.zip --with-gnu-classpath-libs=/home/user/classpath-0.97.2/lib --with-llvmobj=/home/user/llvm

I’m not sure where the --with-gnu-classpath-libs should point. Any ideas about the error?

It should point to where the “.so” files generated are from step 2 in http://vmkit.llvm.org/get_started.html.

Nicolas

Hi Nicolas,

Hi Nicolas,

Unfortunately, vmkit does not support 64bits architecture :frowning: I plan on
working on it, but in the meantime, maybe you can use a 32bit environment?

How it does become? Is this because of new incorporation of GC library
not supporting 64bits?
But I remember I was building VMkit with 64bits.

I have changed the build framework and haven’t tested it on 64 bits. I will take a look soon.

Nicolas