Slashdot Mirror


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."

32 of 739 comments (clear)

  1. Great. Now the sloth community... by jpellino · · Score: 5, Funny

    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."
  2. gcc is like congress by NemoinSpace · · Score: 5, Funny

    It works better when they do nothing

  3. "pointed" by Arancaytar · · Score: 5, Funny

    From Torvalds, that's uncharacteristically friendly.

  4. Re:Great. Now the sloth community... by Anonymous Coward · · Score: 5, Funny

    I'm a sloth and I thought it was funny.

  5. Oe noes! A compiler bug! by serviscope_minor · · Score: 5, Interesting

    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.
    1. Re:Oe noes! A compiler bug! by mvdwege · · Score: 5, Funny

      Claiming the GCC crew will 'fix this bug in short order' is like claiming Obama is leading the charge in transparent government.

      Since the bug has already been fixed, I suppose this means you'll be wholeheartedly endorsing Obama now?

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    2. Re:Oe noes! A compiler bug! by Jesus_666 · · Score: 5, Informative

      Care to take a wager that it will be fixed in 4.9.1?

      You'd lose that wager. The bug was fixed in the trunk before Linus even reported it but the fix didn't make it into 4.9.1.

      For those who didn't bother reading through the LKML discussion and GCC bug reports: GCC 4.5.0 started doing bad things when a certain combination of flags was set, causing it to potentially use the stack pointer red zone even if explicitly told not to. This usually didn't lead to problems because the most programs can afford not to care about whether the red zone is used. The kernel can't; if you use the red zone in the wrong place your system crashes. This was only noticed in 4.9.0 because that version changed around some unrelated code which now caused the kernel to be compiled in such a way that the bug became relevant.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  6. Compiler doesn't change the license ... by perpenso · · Score: 5, Informative

    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.

  7. Re: What is rbp anyway? by Anonymous Coward · · Score: 5, Informative

    rbp is a stack pointer it is negative because it grows down.

  8. Strange censorship by evilviper · · Score: 5, Funny

    "pure and utter sh*t," only with no asterisk

    So he actually called it, "pure and utter sht"?

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  9. Re:I know you're trying to be funny, but... by HornWumpus · · Score: 5, Funny

    This is abuse, arguments are in the next article.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  10. Re:Or upgrade to llvm ... by maccodemonkey · · Score: 5, Insightful

    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.

    It's amazed me how attitudes from LLVM in the last few years has gone from:
    "OMG WTF why is Apple doing their own compiler why can't they contribute to GCC they want to make everything proprietary"
    To:
    "Hey, LLVM is a pretty great tool."

    I'm happy to see LLVM making such great strides.

  11. Re:I know you're trying to be funny, but... by epyT-R · · Score: 5, Insightful

    The only way to cajole passive aggressives into taking action is to shame them publicly. That's why they whine like little babies and play the victim role. Unfortunately, passive aggressive dynamics run so much of society nowadays that they've been codified into law as 'rights', and the bluntness/truth that contradicts them, 'hate crimes.'

    A well placed 'Fuck you!' can save years and years of mountainous, expensive political tugs of war.

  12. Why does anyone work with this guy? by voltorb · · Score: 5, Insightful

    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.

  13. Re:I know you're trying to be funny, but... by Bing+Tsher+E · · Score: 5, Insightful

    Nobody cares what code you committed. Butthurt v. 2.1 was working fine before your 'improvements.' Just cut out the 'abusive' crap. You sound like some sort of social worker.

  14. Re:Or upgrade to llvm ... by Bing+Tsher+E · · Score: 5, Interesting

    Yes. Choice is nice. That's why I've migrated away from all of Apple's 'flagship' products, which are proprietary closed off dead ends.

  15. Re:I know you're trying to be funny, but... by sumdumass · · Score: 5, Insightful

    But you couldn't ignore Mussolini and move on if you did not like his leadership. Here you can.

  16. Re:I know you're trying to be funny, but... by johnjaydk · · Score: 5, Informative

    And Mussolini made the trains run on time?

    Actually, he didn't. That myth have been repeatedly busted my historians.

    --
    TCAP-Abort
  17. Re:I know you're trying to be funny, but... by brianerst · · Score: 5, Informative

    To be fair, the tirade occurred on the Linux Kernel mailing list and was intra-kernel team bitching. This wasn't directed at the gcc devs personally - he was telling another kernel dev that the output of from his version of gcc was crap. It's a snapshot of a mailing list conversation, not an official statement.

    His actual bug report was professional and courteous. He thanked the gcc devs for quickly coming up with a fix.

  18. Fuckin' C*nsorship by Kremmy · · Score: 5, Insightful

    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.

  19. Re:I know you're trying to be funny, but... by Zero__Kelvin · · Score: 5, Insightful

    The fact that you don't know what does and does not constitute the kernel is a tribute to your cluelessness. Extra points for not knowing that Linus always openly acknowleges that he doesn't do most of the work but still gets most of the credit. Linus is actually a very humble guy. He just doesn't suffer fools well, which explains your butthurt completely, of course.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  20. Technical Merit really overrated by Crashmarik · · Score: 5, Insightful

    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.

  21. Re:I know you're trying to be funny, but... by oji-sama · · Score: 5, Informative

    His manner is coarse

    It's not "coarse", it's abusive. Namecalling, mocking, ridicule, hyperbole. That's abuse.

    If you read the message, you may have noticed that he called the code shit, not any person coding it. Same with all other colorful language. I wouldn't get offended.

    --
    It is what it is.
  22. Re:I know you're trying to be funny, but... by Anonymous Coward · · Score: 5, Informative

    If you'd actually read the linked mailing list post (or even just read the quotes of it in the summary) you'd see that none of the abusive comments are aimed at people, they're aimed at the code. He calls the code a bunch of mean, nasty, insulting things, but he doesn't say anything about the people who worked or released that code. I think the distinction is important here. It's not abuse if there's nobody to be abused.

    Secondarily: if you read the rest of the thread, he goes on to work with everyone very productively on tracking down the exact nature of the underlying bugs, posts deep analyses of the code generation differences, proposes a patch for his own kernel to work around this GCC bug, and goes and files the upstream Bugzilla report with the GCC team himself. On the whole I'd say this is pretty responsible and cooperative behavior.

  23. Re:I know you're trying to be funny, but... by Forever+Wondering · · Score: 5, Informative

    Perhaps. But, if you cared to look at the other posts on the thread, you'd see how calm and rationale he was. Or look at the gcc bug report he filed. The gcc bug has gotten fixed

    I've met Linus in the flesh a number of years back and he is truly a calm and mellow guy. He only does the "bullying" for the "shock effect" to get people [with strong egos] to actually start _thinking_.

    And there is some precedent for this. A number of years back, gcc was doing an illegal code motion optimization across a spinlock. After literally hundreds of posts on the gcc mailing list about how this wasn't a bug, Linus started using muscle. I would have, too, at that point. When somebody finally pointed out that the optimization was actually violating requirements in the memory model of the [then] upcoming ISO C spec, it took another hundred or so posts before they actually believed one of their own [gcc people].

    Since that time, the gcc folks have become more receptive to [rather than dismissive of] bugs filed by the kernel people--which is a good thing.

    --
    Like a good neighbor, fsck is there ...
  24. Re:I know you're trying to be funny, but... by EdmundSS · · Score: 5, Insightful

    How else do you make the trains run on time...?

    You adjust the timetable to match reality. The trains aren't any faster, but the timetable no longer lies.

  25. Re:I know you're trying to be funny, but... by Trepidity · · Score: 5, Insightful

    He didn't get the job done in this case, though. He sent an abusive email about a bug that had already been patched, with a tirade about register spills that aren't even related to the bug.

  26. Re:I was moderately amused by the typos by VTBlue · · Score: 5, Insightful

    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.

  27. Re:I know you're trying to be funny, but... by walshy007 · · Score: 5, Informative

    From a prior discussion from linus.

    Oh, I'll be polite when it's called for. But when people who know better send me crap, I'll curse at them. I suspect you'll notice me cursing *way* more at top developers than random people on the list. I expect more from them, and conversely I'll be a lot more upset when they do something that I really think was not great. For example, my latest cursing explosion was for the x86 maintainers, and it comes from the fact that I *know* they know to do better. The x86 tip pulls have generally been through way more testing than most other pulls I get (not just compiling, but even booting randconfigs etc). So when an x86 pull request comes in that clearly missed that expected level of quality, I go to town. Similarly, you will see fireworks if some long-term maintainer makes excuses for breaking user space etc. That will make me go into incoherent rages. The "polite Linus" example that you point to? That was a maintainer asking for direction for when things went wrong and *before* sending me something dubious. Of course I'm polite then. Sarah, I don't have Tourettes syndrome. You seem to think that my cursing is uncontrolled and random. I argue that it has causes. Big difference.

    Yes. And I do it partly (mostly) because it's who I am, and partly because I honestly despise being subtle or "nice". The fact is, people need to know what my position on things are. And I can't just say "please don't do that", because people won't listen. I say "On the internet, nobody can hear you being subtle," and I mean it. And I definitely am not willing to string people along, either. I've had that happen too—not telling people clearly enough that I don't like their approach, they go on to re-architect something, and get really upset when I am then not willing to take their work. Sarah, first off, I don't have that many tools at hand. Secondly, I simply don't believe in being polite or politically correct. And you can point at all those cultural factors where some cultures are not happy with confrontation (and feel free to make it about gender too—I think that's almost entirely cultural too). And please bring up "cultural sensitivity" while at it. And I'll give you back that same "cultural sensitivity". Please be sensitive to _my_ culture too.

    some people don't believe in going "oh I'm sorry dear, you are an awesome sugar plum fairy but your performance in this little area was below expectations, especially when it is quite clear said person should know far better given their position of responsibility.

    He is clear, to the point, and gets things done.

    This is not abuse, this is quite clearly saying that it is screwed, and how it is screwed. It is productive conversation.

    All of linus' tirades are followed by an in-depth message detailing in what way they are wrong, being direct and to the point is his style, which he is entitled to.

    If calling for standards of quality in a very direct way is abuse.. well.. start a new kernel where you accept any old tripe and see how it goes? And only interact/depend on with projects who have a similar standard and means of management.

    Linus is a very pragmatic, practical engineer. Don't let feelings get in the way of practical needs people. His style works far better than most.

  28. Re:I know you're trying to be funny, but... by walshy007 · · Score: 5, Insightful

    From linus at a prior time

    Oh, I'll be polite when it's called for. But when people who know better send me crap, I'll curse at them. I suspect you'll notice me cursing *way* more at top developers than random people on the list. I expect more from them, and conversely I'll be a lot more upset when they do something that I really think was not great. For example, my latest cursing explosion was for the x86 maintainers, and it comes from the fact that I *know* they know to do better. The x86 tip pulls have generally been through way more testing than most other pulls I get (not just compiling, but even booting randconfigs etc). So when an x86 pull request comes in that clearly missed that expected level of quality, I go to town. Similarly, you will see fireworks if some long-term maintainer makes excuses for breaking user space etc. That will make me go into incoherent rages. The "polite Linus" example that you point to? That was a maintainer asking for direction for when things went wrong and *before* sending me something dubious. Of course I'm polite then. Sarah, I don't have Tourettes syndrome. You seem to think that my cursing is uncontrolled and random. I argue that it has causes. Big difference.

    Yes. And I do it partly (mostly) because it's who I am, and partly because I honestly despise being subtle or "nice". The fact is, people need to know what my position on things are. And I can't just say "please don't do that", because people won't listen. I say "On the internet, nobody can hear you being subtle," and I mean it. And I definitely am not willing to string people along, either. I've had that happen too—not telling people clearly enough that I don't like their approach, they go on to re-architect something, and get really upset when I am then not willing to take their work. Sarah, first off, I don't have that many tools at hand. Secondly, I simply don't believe in being polite or politically correct. And you can point at all those cultural factors where some cultures are not happy with confrontation (and feel free to make it about gender too—I think that's almost entirely cultural too). And please bring up "cultural sensitivity" while at it. And I'll give you back that same "cultural sensitivity". Please be sensitive to _my_ culture too.

    In effect you are whining that calling a crap code submission crap is not professional. Linus is a very pragmatic and practical man. That so many people want everything to go smoothly and politely even when shitty things are submitted/done reflects poorly on that "everyone is a winner" kind of culture that propagates that mentality.

    We should not prioritize peoples feelings over code quality. If something horribly break things that we've known for a while and know they are capable of better, we should be able to tell people that that was crap and we expect more of them without them whinging to the political correctness police yelling "abuse".

    This mentality seems to keep on spreading amongst the new generations, and I fear for what the software development industry will look like in fifty years with all of the pragmatic people thrown out by those more concerned of peoples feelings.

  29. Let's see by Anonymous Coward · · Score: 5, Insightful

    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.

  30. Re: I know you're trying to be funny, but... by Anonymous Coward · · Score: 5, Insightful

    A guy in charge of a big open source project swears at a specific version of a compiler in a development related mail list, and that triggers an article + 418 comments?

    Nobody at the mail thread complained and he filed a bug at the gcc tracker with the specific details and no swearing.

    Is it really worth to make a big deal out of every thing this guy says?