vmkit compile error when "compile into a dynamic library the core Java libs"

I followed the instructions to compile vmkit step by step.
it worked until “Compile into a dynamic library the core Java libs”. After “make ENABLE_OPTIMIZED=1”, I didn’t go get coffee because of these errors:
llc -relocation-model=pic -disable-fp-elim glibj-optimized.zip.bc -o glibj.zip.s
unsupported GC: vmkit
0 llc 0x0000000000e40e4f
1 llc 0x0000000000e41647
2 libpthread.so.0 0x000000372560e7c0
3 libc.so.6 0x0000003dc9e30265 gsignal + 53
4 libc.so.6 0x0000003dc9e31d10 abort + 272
5 llc 0x0000000000e2e9b0 llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 384
6 llc 0x0000000000a680f9 llvm::GCModuleInfo::getOrCreateStrategy(llvm::Module const*, std::string const&) + 265
7 llc 0x0000000000a683a7 llvm::GCModuleInfo::getFunctionInfo(llvm::Function const&) + 263
8 llc 0x0000000000a6919e
9 llc 0x0000000000d872c6 llvm::FPPassManager::doInitialization(llvm::Module&) + 54
10 llc 0x0000000000d8ef5c llvm::FPPassManager::runOnModule(llvm::Module&) + 44
11 llc 0x0000000000d8eb3f llvm::MPPassManager::runOnModule(llvm::Module&) + 527
12 llc 0x0000000000d8ec22 llvm::PassManagerImpl::run(llvm::Module&) + 114
13 llc 0x0000000000d8ecbd llvm::PassManager::run(llvm::Module&) + 13
14 llc 0x000000000051aab7 main + 4471
15 libc.so.6 0x0000003dc9e1d994 __libc_start_main + 244
16 llc 0x00000000005181a9
Stack dump:
0. Program arguments: llc -relocation-model=pic -disable-fp-elim glibj-optimized.zip.bc -o glibj.zip.s

  1. Running pass ‘Function Pass Manager’ on module ‘glibj-optimized.zip.bc’.

I was confused by this error, didn’t know how to go on, could someone give me some hints.
I did these job on LLVM-2.9 and vmkit-0.29


Hi Lu Lu,

I should have read this post before pointing you to VMKit in the other post!

I’m not sure about your problem. The ahead of time compiler in VMKit has quite bitrotted and is now only used to compile the MMTk framework written in Java to llvm IR. I’m in the process of cleaning that up, and hopefully getting it done before llvm 3.0.

Compiling the core Java libs was a nice feature at some point, but

  1. It didn’t support precise GC
  2. It took ages to compile
  3. The memory footprint of the resulting library was huge (~70MB) and couldn’t work without having also loaded the Java classes (~45MB).

There are ways to improve the three issues, but I haven’t had time to work on it.