Hi All,
Thanks Nicolas for pointing out that I needed --enable-targets=x86,cpp for my
llvm config to get vmkit to build. The process gets a lot farther but fails in
different places depending upon the vmkit config (Can you please see the three
case below?).
My machine is a intel core i7 running ubuntu karmic and gcc 4.4.1.
What arch/OS/distro/gcc do you all have VMKit working on?
thanks for your help.
-ZK
-
For any configuration with (pnet and pnetlib build successfully):
–with-pnet-local-prefix=/home/zoewolk/RESEARCH/pnet-0.8.0 --with-pnetlib=/home/zoewolk/RESEARCH/pnetlib-0.8.0
I get that TRACER is undefined. I messed with this some but there are two tracer functions depending on the gc
(tracer() and tracer(…)). I’m not sure about the authors intent.
I tried with llvm-gcc/mmtk and without it, any config with pnet-based N3 fails
in this way. I didn’t try via mono.
…
make[3]: Entering directory `/home/zoewolk/RESEARCH/vmkit/lib/N3/VMCore’
llvm[3]: Compiling Assembly.cpp for Release build (bytecode)
In file included from Assembly.cpp:15:
Assembly.h:140: error: variable or field ‘TRACER’ declared void
In file included from Assembly.cpp:19:
N3.h:81: error: invalid use of incomplete type ‘struct mvm::VirtualMachine’
/home/zoewolk/RESEARCH/vmkit/include/mvm/Threads/Thread.h:39: error: forward declaration of ‘struct mvm::VirtualMachine’
N3.h:109: error: variable or field ‘TRACER’ declared void
In file included from Assembly.cpp:21:
VMClass.h:56: error: variable or field ‘TRACER’ declared void
VMClass.h:140: error: variable or field ‘TRACER’ declared void
… -
For
./configure --with-llvmsrc=/home/zoewolk/RESEARCH/LLVMSystem/llvm --with-llvmobj=/home/zoewolk/RESEARCH/LLVMSystem/llvm
–with-gnu-classpath-glibj=/home/zoewolk/RESEARCH/classpath-0.97.2/lib --with-gnu-classpath-libs=/home/zoewolk/RESEARCH/classpath-0.97.2/lib
–with-llvmgcc=/home/zoewolk/RESEARCH/LLVMSystem --with-gc=mmtk
It makes it much farther but stops here:
…
make[2]: Leaving directory /home/zoewolk/RESEARCH/vmkit/mmtk/java' make[1]: Leaving directory
/home/zoewolk/RESEARCH/vmkit/mmtk’
make[1]: Entering directory /home/zoewolk/RESEARCH/vmkit/tools' make[2]: Entering directory
/home/zoewolk/RESEARCH/vmkit/tools/vmkit’
make[2]: *** No rule to make target /home/zoewolk/RESEARCH/vmkit/Release/lib/FinalMMTk.bc', needed by
vmkit.bc’. Stop.
make[2]: Leaving directory /home/zoewolk/RESEARCH/vmkit/tools/vmkit' make[1]: *** [vmkit/.makeall] Error 2 make[1]: Leaving directory
/home/zoewolk/RESEARCH/vmkit/tools’
make: *** [all] Error 1
ls Release/lib/
Allocator.bc J3.bc MMTKAlloc.bc MMTKRuntime.bc StaticGCPass.so
Classpath.bc J3Compiler.bc MMTk.bc Mvm.bc
CommonThread.bc JITGCPass.so MMTKMagic.so MvmCompiler.bc
-
For
./configure --with-llvmsrc=/home/zoewolk/RESEARCH/LLVMSystem/llvm --with-llvmobj=/home/zoewolk/RESEARCH/LLVMSystem/llvm
–with-gnu-classpath-glibj=/home/zoewolk/RESEARCH/classpath-0.97.2/lib --with-gnu-classpath-libs=/home/zoewolk/RESEARCH/classpath-0.97.2/lib
I get:
llvm[1]: Compiling vmjc.cpp for Release build
llvm[1]: Linking Release executable vmjc (without symbols)
/home/zoewolk/RESEARCH/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In functionmvm::Collector::destroy()': gcinit.cpp:(.text+0x24): undefined reference to
GCAllocator::~GCAllocator()’
gcinit.cpp:(.text+0x2c): undefined reference toGCAllocator::operator delete(void*)' /home/zoewolk/RESEARCH/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In function
mvm::Collector::initialise()’:
gcinit.cpp:(.text+0x93): undefined reference toGCAllocator::operator new(unsigned long)' gcinit.cpp:(.text+0x9e): undefined reference to
GCAllocator::GCAllocator()’
collect2: ld returned 1 exit status
make[1]: *** [/home/zoewolk/RESEARCH/vmkit/Release/bin/vmjc] Error 1
make[1]: Leaving directory `/home/zoewolk/RESEARCH/vmkit/tools/vmjc’
make: *** [all] Error 1 -
This is the only build that I can get to finish without error (just fyi):
./configure --with-llvmsrc=/home/zoewolk/RESEARCH/LLVMSystem/llvm
–with-llvmobj=/home/zoewolk/RESEARCH/LLVMSystem/llvm
–with-gnu-classpath-glibj=/home/zoewolk/RESEARCH/classpath-0.97.2/lib
–with-gnu-classpath-libs=/home/zoewolk/RESEARCH/classpath-0.97.2/lib
–with-llvmgcc=/home/zoewolk/RESEARCH/LLVMSystem
However j3 segfaults immediately for j3 --help.
vmjc, vmkit, llcj with the -version flag, give the version. I’ve not tested beyond this.