Get the latest tech news
C Isn't a Programming Language Anymore (2022)
March 16th, 2022 Phantomderp and I have both recently been very aligned on a particular subject: being extremely angry about C ABIs and trying to fix them. Where we’re not aligned is why we’re mad about them.
Like yeah people use rust-bindgen and friends to automate some of this stuff, but a lot of the time the definitions get checked in or hand-tweaked because life is too short to try to get someone’s weird bespoke C build system working portably. The SO name bump in a mixed-ABI environment like debian results in two libc’s being loaded and competing for effectively the same namespace of symbols with resolution (and therefore selection of the ABI) being determined by ELF interposition and scope rules. Sure, libc can properly do symbol versioning tricks to make its APIs work with the new definition, but changing the size of a really basic datatype like intmax_t is begging for chaos in the larger ecosystem for a platform.
Or read this on Hacker News