May 25, 2026

C code’s messiest family feud

C extensions, portability, and alternative compilers

Why tiny coding quirks turned into a full-blown "works on my machine" meltdown

TLDR: The article says real-world C code often only works with a few favored compilers, which makes building new ones a nightmare. Commenters turned that into a roast of Linux-only assumptions, bad portability, and a software culture still running on hacks and crossed fingers.

A blog post about the hidden mess inside the C programming world somehow turned into a group therapy session for fed-up coders. The author’s basic complaint is simple: lots of so-called “portable” C code only behaves nicely with a few favored tools, especially on Linux, and starts falling apart the moment a different compiler shows up. In plain English, programs are often written as if everyone is using the same setup — and the comments immediately screamed, “Yep, that’s the problem!”

The loudest reaction came from people tired of the classic “works on my machine” excuse. One commenter, using Windows and FreeBSD, practically rolled their eyes through the screen, saying Linux-first projects regularly forget the rest of the world exists. Another veteran compiler maker jumped in to say he’d also had to battle what he memorably called “nutburger nonsense” lurking in system header files — instantly the kind of phrase that steals the thread.

Then came the mini-drama: should system libraries be smarter about checking what a compiler can actually do, instead of just trusting famous names like GCC and Clang? One commenter proposed a cleaner fix, basically asking why the code checks brands instead of features. Others shifted into survival mode, swapping scripts and hacks like disaster-prep supplies for indie compiler developers.

So yes, the article is about compilers. But the real spectacle is the community chorus saying this is less a clean engineering ecosystem and more a ramshackle haunted house held together by duct tape, preprocessor checks, and hope.

Key Points

  • The article argues that strictly ISO C-compliant code is uncommon in practice, because many C codebases rely on compiler extensions and non-standard behavior.
  • The author encountered these issues while developing an alternative C compiler called antcc.
  • glibc headers are presented as a major compatibility obstacle, especially due to preprocessor checks in `sys/cdefs.h` that gate features based on compiler identity.
  • The article uses Linux `sys/epoll.h` and `__attribute__((packed))` to show that some extensions affect ABI and cannot be ignored safely.
  • Compiler builtin headers such as `limits.h` still need platform-specific augmentation because POSIX requires additional definitions beyond standard C.

Hottest takes

"works on my machine" — whizzter
"nutburger nonsense" — WalterBright
"Why would they not do something like?" — meghprkh
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.