The OS specific support should not contain the JIT code but only the OS support code.
The question is though, when it comes to the OS initialization (so the JVM can be initialized), do I call a static method or create an instance? Static might be best despite everything not being potentially fully initialized. It can be thought up of as a kind of early bootstrap to jump into Java code, where that Java code then performs more initialization. So this means that JVM main entry points cannot rely on objects and must use lots of JIT magic to perform logic and such.
Did not figure I would be writing C code again.
I should add more things to the readme, such as my goals.
Now my C code compiles without errors and feels more typesafe.
Need a way to setup good string placement and possible binding the generated C code, that is run-time linking using pointers. For fields and methods I will need a basic table of them for the most part. They are very similar though although methods have code associated with them also.