Linus Torvalds has called GCC 4.9.0 compiler ‘pure and utter sh*t’ and ‘terminally broken’ after a random panic was discovered in a load balance function in Linux 3.16-rc6.
“Ok, so I’m looking at the code generation and your compiler is pure and utter *shit*”, in one of the mails on Linux kernel mailing list. “…gcc-4.9.0 seems to be terminally broken”, he added further.
The issue that invited such comments from Torvalds is to do with the compiler apparently spilled a constant and incorrect stack red-zoning on x86-64 code generation.
“Lookie here, your compiler does some absolutely insane things with the spilling, including spilling a *constant*. For chrissake, that compiler shouldn’t have been allowed to graduate from kindergarten. We’re talking “sloth that was dropped on the head as a baby” level retardation levels”, he added.
Dwelling onto the technical bits, Torvalds went onto say that a bug report needs to be filed as it “is some seriously crazy shit.”
Torvalds rules out kernel bug in the load balance random panic claiming that the compiler is creating broken code while also warning that those testing the kernel shouldn’t compile it with gcc-4.9.0.
Torvalds has already filed a bug report (Bug 61904) regarding incorrect stack red-zoning on x86-64 code generation for gcc-4.9.0.
The issue hasn’t been observed with gcc version 4.8 and it would be safest bet for now. Also, we are not sure if the kernel’s code compiles perfectly with gcc-4.9.1 which was released recently.