Post Syndicated from corbet original https://lwn.net/Articles/983965/
Like many projects written in C, the kernel makes extensive use of the C
preprocessor; indeed, the kernel’s use is rather more extensive than most.
The preprocessor famously has a number of sharp edges associated with it.
One might not normally think of increased compilation time as one of them,
though. It turns out that some changes to a couple of conceptually simple
preprocessor macros — min() and max() — led to some truly
pathological, but hidden, behavior where those macros were used.