This brings me back to what I mentioned about a modern runtime.
Also, there’s issues with initialising data at compile time, e.g. I recently mentioned having strings be both C and Ada, so it has a dope vector at the start and a null at the end, that way copying strings about between C and Ada is unnecessary, To_C for example cannot be made static.