An operating system has an ABI. Programs compiled from C source use the OS's ABI. There is no "C ABI".
The very premise of TFA is fundamentally incorrect, and there is no way to reach a valid conclusion from an incorrect premise.
The very premise of TFA is fundamentally incorrect, and there is no way to reach a valid conclusion from an incorrect premise.
> An operating system has an ABI. Programs compiled from C source use the OS's ABI. There is no "C ABI".
I'm having difficulty getting these two ideas to reconcile.
Linux is unique in that you can hand-write assembly to perform a system call and have it work across OS upgrades. FreeBSD does not have stable syscall numbers: open() must be a libc call.
The OS-provided API for the tasks are libc and Security.framework. Do you have any suggestions for a better API?