Suppose though, that libc was written in such a way that the FILE* returned always required a version field or a pointer to a vtable containing the implementation of fclose (and other functions) and every version of libc agreed on this so that it could always call the correct one across this ABI boundary.

and every version of libc agreed on this

I feel you just increased abstraction but hit the same problem lol

0

If you have a fediverse account, you can quote this note from your own instance. Search https://catgirl.farm/objects/8fc8160e-9db6-4908-bb1c-42c91fb1f34c on your instance and quote it. (Note that quoting is not supported in Mastodon.)