Linus Torvalds: "GCC 4.9.0 Seems To Be Terminally Broken"
hypnosec (2231454) writes to point out a pointed critique from Linus Torvalds of GCC 4.9.0. after a random panic was discovered in a load balance function in Linux 3.16-rc6. in an email to the Linux kernel mailing list outlining two separate but possibly related bugs, Linus describes the compiler as "terminally broken," and worse ("pure and utter sh*t," only with no asterisk). A slice: "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 here .... Anyway, this is not a kernel bug. This is your compiler creating
completely broken code. We may need to add a warning to make sure
nobody compiles with gcc-4.9.0, and the Debian people should probably
downgrate their shiny new compiler."
is going to be gunning for an apology...
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
It works better when they do nothing
From Torvalds, that's uncharacteristically friendly.
I'm a sloth and I thought it was funny.
Debian people should probably downgrate their shiny new compiler.
Or upgrade to llvm. Being above to compile with either gcc or llvm would be a nice option.
According to the actual bug report this problem seams to have started in 4.5. They only triggered it in 4.9.
https://gcc.gnu.org/bugzilla/s...
4.8 was even worse.
That's hardly news.
Oh gosh a compiler bug! The world is going to end and GCC is terminally broken for ever and ever and ever. Life happens, and occasionally that includes compiler bugs. I've seen fewer bugs in GCC than any other production compiler ever.
Anyway, it seems like GCC is implementing a very obscure compiler option incorrectly in some circumstances which causes a crash.
But of course this is cue for lamentations of how awful and braindead GCC is and so much drama.
End result, the GCC people will fix this bug in short order (what are GCC point releases for anyway), and distributers will probably have a patch package out for 4.9.0 before 4.9.1 ships (what are distributors for anyway?) and the world will keep turning and GCC will go back from being the buggy broken braindead piece of shit to yet again being the most solid production compiler in existence.
It's a little ironic that the he's so quick to attack the GCC people. The success of Linux is 100% built off the success of GCC. There have been no other credible compilers for Linux throughout the majority of its existence and without GCC being bulletproof, Linux would never have been solid.
SJW n. One who posts facts.
I don't 'like' lima beans, that doesn't mean there is anything wrong with them. In this case your lima beans have been switched out with castor beans and you're dying. Pretty big difference.
If you want to say shit, say shit. We're all grown-ups here.
Circumcision is child abuse.
I don't 'like' lima beans, that doesn't mean there is anything wrong with them. In this case your lima beans have been switched out with castor beans and you're dying. Pretty big difference.
It's a compiler bug, for Pete's sake, not the end of the world.
.
Revert to a known working version of the compiler, submit a bug report and move on. Why the temper tantrums? What is with all the drama?
^^^ Self-hating sloth ^^^
Debian people should probably downgrate their shiny new compiler.
Or upgrade to llvm. Being [able] to compile with either gcc or llvm would be a nice option.
How could you _upgrade_ from GPLv3 to BSD? Sounds like the reverse.
Compiling with a BSD licensed compiler does not change the license of the software being compiled. Linux would remain gpl regardless of whether gcc or llvm is used.
... and they already fixed the bug two weeks ago, see the bug report
rbp is a stack pointer it is negative because it grows down.
...the people who deserve the apology are the people who were subject to an abusive tirade.
You can point out someone made a mistake. There's no obligation to be "nice" when doing so. There is an obligation to not be abusive, which is what Linus repeatedly does. Abuse includes mockery, ridicule, name calling, etc.
He's being a bully, pure and simple - using his popularity to shove around others. That should not be tolerated, full stop.
Please help metamoderate.
So he actually called it, "pure and utter sht"?
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
is going to be gunning for an apology...
Maybe, but it take a while for them to get worked up enough to do anything...
You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
%rpb is the base pointer. The offset is negative because the local variables live below the base pointer (being in-scope only after the base pointer is moved to the current function); -X(%rbp) points to a local variable.
http://stackoverflow.com/quest...
Strawman argument. Nobody except you has posited that "all opinions are valid", and nobody suggested that criticisms can't be made. You invented that position to attack it.
I specifically said: it's fine to tell people they did something wrong. What you may not do is be abusive.
Actually, I can be abusive if I choose to be. It may not win me many friends and it may alienate the ones I do have, but I can certainly do so if I want.
Whether or not Linus advances Linux because of, or in spite of, being abusive is an open question.
As Louis Brandeis (and correctly, IMHO) pointed out, "If there be time to expose through discussion the falsehood and fallacies, to avert the evil by the process of education, the remedy to be applied is more speech, not enforced silence."
No, no, you're not thinking; you're just being logical. --Niels Bohr
Yeah, let's pretend that 80+% of the world isn't using Android, not to mention supercomputers or huge server deployments. What you're missing is not everyone is using an IBM compatible PC and play games whole day in their mom's basement.
Don't worry. The first humans to migrate to North America quickly drove the giant sloths extinct. The remaining sloths are small and harmless.
Nice concern troll.
Linus is quite lenient compared to the leadership at microsoft or apple. The latter are more interested in appearance than they are in technical excellence because appearance is all that matters when appealing to their non-tech customers. The problems lie where these products must be maintained by technical people for the non technical customer who is usually their boss.
If you can make a good case for your position/code, linus will listen to you.. If you're full of shit or crying like a bitch because he wont' accept shitty code, then he'll tear you apart. At apple or microsoft, you can be fired for losing a political battle even when being correct. I'd rather work for linus.
Because every truly competent developer agrrees with him. We all hate incompetence, and Linus speaks for us all when he lays in to some incompetent for sullying the gene pool of software developers everywhere. Linus' approach has a truly wonderful effect. The incompetent people run away crying "Ohh Noze! He was mean to me! Doesn't he know that I have a right to be incompetent and still be treated with kid gloves??!!!". The competent people say "Thank you Linus for saying what we all wanted to say!" and continue to develop. I have no idea if the effect of his tirades is intentional, but make no mistake about it. It is not merely acceptable. It is ideal.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Well, if you RTFP, Linus is abusing the *compiler*'s behavior. At no point does he abuse the compiler authors.
No TRUE Slothman would think that funny, laddie!
(Might as well get the logical fallacies out of the way early...)
http://i2.cdn.turner.com/dr/hl...
Precisely that...it's a compiler bug. People get real tired of "is it my code, or something else" when things go boom after they hit late 20s...To put things in perspective, if Microsoft shipped a VS update that banjaxxed the C++ compiler under certain conditions (well, more often than it probably already does), developers! developers! developers! everywhere would be looking to BBQ someone alive for that mistake. Yes, mistakes happen. Yes, it's a part of technology. But with unit tests and all this other overhead that programmers are forced to write, these problems are supposed to be disappearing. You're not supposed to suddenly be encountering the equivalent of fairies in your garden. So I have sympathy for the man, and those who have to put of with this stuff. This is a problem that should have been caught long before it made its way to him, and the time he spent trying to figure out whether or not it was his code, his compiler settings, some missed update or flag, possibly a vanilla install, etc. before bringing in even more people to do the same and cover all his bases before screaming at the top of his lungs must have been at least several hours of his time, possibly a few days or a week.
I don't understand it anymore. How are we not beyond the need to replace random letters with asterix? I mean honestly, the summary goes on to comment about it. It's a waste of space. Just fucking say it already.
Because if you aren't incompetent, you won't get yelled at.
Unlike a corporate structure, where you don't get yelled if you play the game right.
If you are incompetent, please don't develop linux kernel code. Go work for a corporation.You'll find you're a better fit, and if you play your cards right, you won't get yelled at no matter how bad you are at your job.
Of the winners in computing, those that won because of technical merit are swarmed by those that won for other reasons.
I mean just look at some of the match ups
DOS vs Everything else available ?
Windows vs Everything else
Microsoft office vs Everything else
X86 vs Everything else
ISA bus vs NuBus vs MCA
DirectX vs OpenGL
Technical merit only seems to matter when it completely crushes every other factor as in transistor vs tube, IC vs transistor, CMOS vs TTL.
Your argument applies to itself. You are accusing people of abdicating judgment: your solution is to not judge Linus! Furthermore, you are confusing criticism of the messenger with criticism of the message; as SuperBanana points out, this is a straw man argument.
Not all opinions are valid and equal: nor are all means of expressing them. We have the right to speak freely; we also have the right to judge such speech as invalid or unacceptable. I suggest this right to judge is in fact an obligation. Silence implies consent. Abusive behavior should be called out. You may argue that Linus was not abusive, but to argue that we should never make such judgments in the first place is to fall prey to the false equivalence you decry.
https://gcc.gnu.org/bugzilla/s...
GCC 4.5.0 was released in April 2010, so I wonder how many kernel oops it has caused.
Why would anyone use a new gcc release three months old for critical components?
The bug was introduced in gcc 4.5.0 (which was released in April 2010), so it took 4 years with active use of gcc before kernel developers could pintpoint the cause of some strange kernel crashes.
So how long are we supposed to wait before using a new GCC release?
I'm super tired of this BS argument. I'm sick and tired of high performing professional being criticized for expecting high standards from others. Not every job requires or should have an abstraction layer of "people development," "life coaching," or professional courtesy and pleasantries. Some jobs, the jobs that truly change of course of human events requires breathtaking sacrifice, most significantly of all, putting aside ones ego when called out. If someone calls me an idiot for being wrong, whether justified or not, I'm still wrong and I accept it. If my performance is so shoddy that I get called out as incompetent, than an introspective person should have the maturity to realize that he or she caused such frustration to the other person that such words were uttered. To be able to take this is the sign of a true professional and leader. If you can't take the heat, just GTFO of the way, and go work at a Fortune 500 with regular white collar people with thin skin.
It's not ginned up outrage to waste dozens of man hours for someone else's mistake. GCC can be considered a Teir 1 OSS project. For a major point release to have an issue that, if verified, causes the founder of Linux to call it crap, then raw criticism is warranted. Raw, unfiltered , communication amongst trusted engineers leads to better outcome, I have found in my career. Keep the politically correct crap outside of the engineering room.
You position holds true when dealing with a small child.
If some smears his own feces on a wall and they are:
- 2 years old; you scold them gently and clean them up first, then the wall.
- 20 years old; yeah... not so much. If a little abuse is all you get you're probably lucky.
You've asserted several times that people may not be abusive, and other people have run with some kind of silly argument that Linus isn't, but neither your assertion nor their tangent makes you right.
Linus is right, GCC is braindead. Its code is purposely opaque and has huge maintenance problems. This is not the first time GCC is the source of suffering. I remember the bug in 2.95 causing all sorts of grief.
It would be interesting if the kernel devs switched to clang like FreeBSD has done. Even just the threat of doing so could give at least a good rivalry and competition usually means the one who improves the fastest will survive.
Let's see:
(1) Microsoft had one guy who dumped on people by calling them "random" (kind of a great insult, actually) and another guy who threw chairs. Dipstick score: 2 Results: tops in their industry.
(2) Apple has a massive "motivator", spelled a-s-s-h-o-l-e, tolerating zero garbage and pushing coders harder than Cleopatra pushed rowers. Dipstick score: 1 Results: biggest and most profitable company, period.
(3) Linux exists at all, despite being given away for free, decades after it was introduced. It is ubiquitous, runs on mainframes and thimbles, and more cell phones than iOS. Chief penguinisto occasionally says "This crap tastes like crap." Dipstick score: 0 Results: most improbably popular free code ever.
Seems like 2014 just might have been the year of Linux on the desktop if Linus had taken some chair-throwing, and stock-option-hoarding lessons from his peers.
I'm a sloth and I'm too lazy to demand an apology.
Actually, "in the engineering room" he sang a different tune: https://gcc.gnu.org/bugzilla/s...
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
Does it matter? What matters is that Tridge fucked around and violated the licence and the fallout hit Linus in the form of having to do a lot of unnecessary work. Being only human this appeared to have made him angry.
Try reading the above post entire instead of key words then. It's only three lines long. I can wait.
If you use software it's only fair to stick to the licence the creator wished you to use - if you don't like it use something else.
If someone violates the terms of your licence of course you can.
I'm a laddie and I find your post offensive!
[The Universe] has gone offline.
Seriously, the GCC is a prestige project just like the kernel. You have to have the basics of your particular software development field down, otherwise you have no business whatsoever lost in these projects. I don't know the details and I certainly can't judge them, but from the broad perspective it seems like somebody did something akin to not avalidating and filtering your input or pushing windows-1252 but presenting it as UTF-8 or something in webdevelopment and it passed all the way through evaluation, testing, merging, release management, etc. right into the final GCC release. Which does reflect on to the entire team and project.
Bottom line: When Linus has released rants like these in the past he usually was spot on and dead right. The GCC has gotten some flak for it's shittyness lately, and it looks like they haven't improved their process much yet.
We suffer more in our imagination than in reality. - Seneca
It was never brought to court, but the very real reality is that he accessed a server and explicitly accessed a server after being told not to with the intention of committing a very likely copyright infringement, all in the "name" of Linux. Linus was not happy with this.
You're at the club and some jackass compiler spills variables all over your girlfriend? Of course you're gonna be an asshole and get in their face. It doesn't matter how many optimizations he has turned on.
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff