It's the compiler too. I recently found out that kernel 6.6 can't be compiled by gcc 15. So, even if you have the source, unless it's extremely simple, at some point the current toolchain will refuse to build it.