4 ms·
What do you mean?
by marwis 3y ago
What do you mean?
- grishka 3y agoYou only specify the function signatures and structs. The JVM then figures out how to put arguments and return values into registers/stack/whatever at runtime, depending on which OS and CPU it's running on. That's what the `CLinker` class is responsible for. It's like regular dynamic linking, but taken a bit further.
- marwis 3y agoThe problem is structs and function signatures of standard APIs can have differences for each os/version combination.
- grishka 3y agoThen you have to take care of making sure you call the right thing. But I suppose this doesn't happen very often because OS APIs usually maintain backwards compatibility. Also a well-designed API would take complex structs by pointer, thus allowing the addition of fields at the end without breaking the ABI.