VMKit Boehm MMTk Compilation

Hello,

I've been able to get J3 working with the single and multimap garbage collectors but have hit several snags with Boehm and MMTk.

For MMTk I get here:
Buildfile: /cs/student/kyleklein/vmkit/mmtk/java/build.xml

main:
     [mkdir] Created dir: /cs/student/kyleklein/vmkit/mmtk/java/classes
     [javac] Compiling 373 source files to /cs/student/kyleklein/vmkit/mmtk/java/classes
     [javac] Note: Some input files use or override a deprecated API.
     [javac] Note: Recompile with -Xlint:deprecation for details.
       [jar] Building jar: /cs/student/kyleklein/vmkit/mmtk/java/mmtk-vmkit.jar

BUILD SUCCESSFUL
Total time: 6 seconds
llvm[2]: Building Debug+Asserts mmtk-vmkit.jar all
/cs/student/kyleklein/llvm-source/Debug+Asserts/bin/opt: /cs/student/kyleklein/vmkit/Debug+Asserts/lib/MMTKAlloc.bc: Could not open input file: No such file or directory
make[2]: *** [all] Error 1
make[2]: Leaving directory `/cs/student/kyleklein/vmkit/mmtk/java'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/cs/student/kyleklein/vmkit/mmtk'
make: *** [all] Error 1

For Boehm the following error causes a large stream of errors and a fail:

make[1]: Entering directory `/cs/student/kyleklein/vmkit/lib'
make[2]: Entering directory `/cs/student/kyleklein/vmkit/lib/Mvm'
make[3]: Entering directory `/cs/student/kyleklein/vmkit/lib/Mvm/Allocator'
llvm[3]: Compiling gcalloc.cpp for Debug+Asserts build
In file included from /cs/student/kyleklein/vmkit/include/mvm/Allocator.h:19,
                  from /cs/student/kyleklein/vmkit/include/mvm/VirtualMachine.h:18,
                  from gcchunk.h:13,
                  from gcalloc.h:15,
                  from gcalloc.cpp:10:
/cs/student/kyleklein/vmkit/include/mvm/Threads/Locks.h:17:26: error: ObjectHeader.h: No such file or directory

Lastly whenever I configure with the --with-llvmgcc option, regardless of which of the four collectors I use I see this:

/cs/student/kyleklein/llvm-source/Makefile.rules:1042: Modules require LLVM capable compiler but none is available ****

I believe this has something to do with having installed llvm before llvm-gcc. I'm not sure if this is causing my MMTk issues since it says in the configure file that llvm-gcc is required.

Thanks for the help,
Kyle

Hi Kyle,

The Boehm GC configuration of VMKit hasn’t been tested/run for a while, and I plan to remove it in the next release. So either choose MMTk or GCMmap2 for the GC.

For MTMk, maybe the build system is not clever enough to fail when MMTk is specified but not llvm-gcc. And at runtime, MMTk won’t work wihtout llvm-gcc. VMkit gets llvm-gcc from LLVM, so you need to configure llvm with a link to llvm-gcc.

Let me know if you run into more trouble.

Nicolas

For anyone who encounters this issue in the future, my issue was the configuration of llvm-gcc.

Configure with --with-llvmgccdir=YOUR/PATH doesn't work, instead you are supposed to use --with-llvmgcc=PATH/TO/llvm-gcc and --with-llvmgxx=/PATH/TO/llvm-g++

That will at least get you past my error.

Best,
Kyle

Quoting nicolas geoffray <nicolas.geoffray@gmail.com>: