Linux has always relied heavily on GCC extensions, though -- it makes no attempt to actually be C89-compliant portable code. What it actually has is a minimum supported gcc version, which in turn governs whether particular features can be used. In this case the minimum gcc version has for other reasons finally got big enough that C99 and C11 support is definitely present -- the ladder was already this high.
(You can also build with clang, but only because clang deliberately aims to support most gcc extensions.)
(You can also build with clang, but only because clang deliberately aims to support most gcc extensions.)