So the part that performs JIT compilation will need to be a part of the libraries so that they may be included by the system (so they can actually JIT compile). So I need to structure the system into two parts, the kernel building part which can output execiutables and the native compiler part. Anything that generates executables does not have to be in the target because anything generated by the JIT compiler will just be marked executable and ran while the kernel has to be bootstrapped within an executable. The compiler just needs to know how the code needs to be compiled (such as target CPU and the byte order for example). This information has to be stored and parsed for the compiler to handle. I would suppose that the JIT class and such be represented in system properties with configuration options for the given JIT. This way, the kernel can initialize the JIT from those properties. So this is similar to how it is before, but perhaps instead without a triplet for the most part. Then the system properties for the architecture and OS will just have their properties set statically in the build. That would be the simplest for the most part.
Can probably move ExecutableClass and ContextClass interfaces and such to the base JIT and have it done that way.