//===---------------------------------------------------------------------===//
// General notes
//===---------------------------------------------------------------------===//

VMKit is the composition of three libraries:
1) MVM: mostly a garbage collector
2) JnJVM: a Java Virtual Machine implemented with MVM and LLVM
3) N3: a CLI implementation with MVM and LLVM

JnJVM and N3 work on Linux/x86 (note that you may have to disable SSE on some 
architecture), and mostly work on Linux/PPC (there are some errors with
floating points). Portage to Darwin needs to investigate why exceptions
do not work.

JnJVM and N3 use GCC's unwinding library (libgcc_s.so).

These are the options you should pass to the ./configure script
--with-llvmsrc: the source directory of LLVM
--with-llvmobj: the object directory of LLVM
--with-gnu-classpath-local-prefix: the local build of GNU classpath
--with-pnet-local-prefix: the local build of PNET

There's also:
--with-gc: user either boehm or single-mmap

Running make on the root tree will produce two "tools":
1) Debug|Release/bin/jnjvm: running the JnJVM like any other JVM
2) Debug|Release/bin/n3: running N3 like CLR

JnJVM and N3 have their own README notes.


//===---------------------------------------------------------------------===//
// Target specific LLVM patches (not required)
//===---------------------------------------------------------------------===//

If you experience problems, you can apply the patches for your corresponding 
arch. I'd be interested to get some info on your specific problem if the 
patch fixes it.

Patch for PowerPC:
- Bugfix for handling some external symbols (FIXME: does this still happen?)
- Thread safety when doing native code patching (TODO: submit to llvm-dev)
- CFI instructions for callbacks (TODO: find a correct macro to enable this)
- Emit a hand-made frame table for stubs (TODO: submit to llvm-dev)

Patch for X86
- Disable SSE (It can sigsegv on some x86 archs. Having test cases would be 
  nice)
- Enable CFI instructions for callbacks (TODO: find a correct macro to enable
  by default)


//===---------------------------------------------------------------------===//
// TODOs
//===---------------------------------------------------------------------===//

- A compiler/system dependency interface
- Port to Darwin

