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.
Is there some kind of law where if you are an Open Source Super Star you have to be a complete dick when you open your pie hole?
Yes, Torvalds is great isn’t he?
I don’t see what the big deal is. Someone wrote some bad code, he called them out on it. This is how the dev world works.
Because it caused a kernel panic. Something that wouldn’t happen with gcc-4.8. That is a serious problem.
And also because his report seems rather immature. Just explain what the issue is, there is no need for such childish attitude towards it.
dude. it threw a fit on a CONSTANT. on a freaking CONSTANT!? seriously GCC 4.9.0 has some serious flaws.
But my real question: why hasn’t anybody else spotted this before?
It is best to be honest and understand when you have serious problem and know its scope. I appreciate the honesty.
Congratulations on publishing an article 2 days after the bug was filled and corrected 😉 That’s just ridiculous -_-“
The bug is in gcc4.5 through gcc4.9.
For most of us, it’s not a big deal: it uses a “red zone” on the stack when it shouldn’t (can’t do that safely in the kernel). In user land, using the red zone is safe, so it won’t cause problems for the vast majority of code.