Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Maybe it's time to grow up and download binary builds like a normal person. I had my 'let's compile the linux kernel from source for 3.5% hypothetical performance gains' phase but you can't expect professional devs to cater to source-obsessed hobbyists
 help



I doubt this oft-repeated stereotype was every particularly accurate. I'm not aware of any current Gentoo users on the distro specifically for performance reasons. Gentoo users are in it for control over their system and customization.

https://blog.nawaz.org/posts/2023/May/20-years-of-gentoo/#an...

> In the early days, there was much promotion of Gentoo as being “faster”, because you could compile everything based on your particular processor, etc. And you could increase the optimization level for a boost. Their web site still touts this as a reason to use Gentoo.

> In reality, the performance is more or less the same as on any other distribution. The folks who stick to Gentoo tend not to care about performance as much. Unfortunately, this perception of Gentoo remains, and I wish they would remove the verbiage from their site.


A friend of mine got me on Gentoo in 2004. He spent all of his time tweaking compiler flags like -O3 -ffast-math -fomit-frame-pointer -funroll-loops and running into so many issues in the process. I think he only lasted about 9 months on Gentoo. To this day, he's the only person I've ever met that was there for performance.

I'm still on Gentoo 22 years later.


> A friend of mine got me on Gentoo in 2004.

Good timing! If memory serves, you missed the Big Libpng Upgrade that either got the concept of Package Slots into Portage or convinced everyone that they were a _really_ good feature to have and use where appropriate.


> In reality, the performance is more or less the same as on any other distribution.

It is now but in the 32-bit days there was a nontrivial boost form compiling for e.g. a Pentium 4 when most binary distros were still stuck targetting generic i586 or something old like that.


> Unfortunately, this perception of Gentoo remains, and I wish they would remove the verbiage from their site.

Based on what I can see after putting a minute or two into searching, that verbiage being referred to only appears on the About page. [0]

The distro's home page says

  Welcome to Gentoo, a highly flexible, source-based Linux distribution. 
and has used those words since at least January 2023 [1]. Its home page has spoken about flexibility and has not spoken about performance since the big redesign in April 2016... seven years prior to the publication of that guy's blog post. [2][3]

And -speaking as a Gentoo user since 2002- neither the user community nor the maintainer community hold the opinion that Ultimate Maxxximum Performance is the distro's goal. Trouble reports that come from "ricers" pretty much always get told "Set your compiler flags to something sane (try '-O2 -pipe' or '-O2 -pipe -march=native') and rebuild. If you can still repro the problem, file a new report because this one is getting closed INVALID.".

And -while the old Gentoo Wiki burned down so I can't prove it- [4] the advice about GCC optimization in the wiki has always cautioned against using aggressive compiler flags and warned that doing so will -among other things- not substantially improve performance. The advice about reasonable compiler flags has pretty consistently been "Use -O2, -pipe, -march=$THE_CORRECT_SETTING_FOR_YOUR_CPU, and maybe -fomit-frame-pointer"... though the "-fomit-frame-pointer" advice has always come with a warning that doing that may make debugging either extremely difficult or impossible, and the "-march" advice the warning that this may make it impossible to run those binaries on another computer.

Anyway. There's only so much you can do to erase an -allegedly- pervasive myth. The fact that some folks have the belief that Gentoo Linux is all about Maxxximum Performance doesn't change the fact that nearly all of the people who use it and -almost certainly- all of the people who maintain it strongly disagree with that claim. The distro is and always has been about flexibility, user choice, and having fun. And it's a nice bonus if building for -say- -march=athlon-xp instead of -march=i586 happens to get you a bit of extra performance here and there.

[0] <https://www.gentoo.org/get-started/about/>

[1] <https://web.archive.org/web/20230101024843/https://www.gento...>

[2] <https://web.archive.org/web/20150406115846/https://www.gento...>

[3] That year's April 1 redesign was a bit cool, IMO.

[4] The oldest copy that I can easily find is from mid 2013 [5], so you'll just have to trust me that this has been the long-standing opinion of the overwhelming majority of users and maintainers. While you're there, take a minute or two to skim the prose and notice how it consistently warns against using aggressive compiler flags.

[5] <https://web.archive.org/web/20130829083155/https://wiki.gent...>


In the about page:

> Extreme configurability, performance, and a top-notch user and developer community are all hallmarks of the Gentoo experience.

It's the performance part I was referring to.

Going back to when I started using it:

> Gentoo Linux is a high-performance ports-based Linux metadistribution

Regarding -O2 vs -O3, in the early days, -O3 was considered quite safe (I don't recall if it was recommended, but it wasn't discouraged). I think only after a certain GCC upgrade did they start discouraging -O3. I vaguely recall them announcing that quite a few of the -O3 benefits were now part of -O2, and that some (new?) -O3 stuff was unstable.

At the time, I knew little about compiler flags. I went with -O3 because of guidance from the Gentoo folks.


-O3 is still quite safe and the rare cases where it causes issues have always been due to bugs in the source code being compiled from my experience. It isn't guaranteed to produce codue faster than -O2 though.

> Going back to when I started using it:

Yep, when I started using it in _2002_ that was on the home page. Ten years ago, it stopped being on the home page because folks finally got the motivation to do a bunch of work to it. As I said:

  Its home page has spoken about flexibility and has not spoken about performance since the big redesign in *April 2016*... seven years prior to the publication of that guy's blog post.
  
  There's only so much you can do to erase an -allegedly- pervasive myth. The fact that some folks have the belief that Gentoo Linux is all about Maxxximum Performance doesn't change the fact that nearly all of the people who use it and -almost certainly- all of the people who maintain it strongly disagree with that claim.
> Regarding -O2 vs -O3, in the early days, -O3 was considered quite safe (I don't recall if it was recommended, but it wasn't discouraged). ... I went with -O3 because of guidance from the Gentoo folks.

It has been too long for me to remember what -O level my first Gentoo box ended up using (and I can't be bothered to pull it out of the closet and power it on to see), but the box I installed in ~2007 is using -O2. A random sampling of the few Gentoo forum posts from the early days that are in the Wayback Machine [0], as well as a handful of Bugzilla reports from the 2002->2005 era _suggests_ that most folks in the early days were using -O2. I'm certain that I played with all of the optimization levels on my first box, didn't notice any performance difference, and then settled on one that I can no longer remember.

And like, you say that -O3 wasn't discouraged. Well, -O3 isn't really discouraged today. The advice about -O3 gives you a summary of the facts and trusts you to make the choice that's right for you [1][2]

  WARNING: Using `-O3` may cause some packages to break either during the compilation or misbehave at runtime, although `-O3` retains standard conformance, hence any breakage is either undefined behaviour in the application, or (very rarely) a compiler bug.
  
  <irrelevant stuff elided>
  
  `-O3`: enables `-O2` as well as optimizations that are expensive in terms of compile time and memory usage. Compiling with `-O3` is likely to improve performance (although not guaranteed). While historically `-O3` could expose compiler bugs, nowadays issues with `-O3` are almost always instances of undefined behavior (UB) and the code is at fault and should be fixed. Some packages are still known-broken with `-O3`. Using `-O3` is not recommended unless running test suites for packages.
(I'm pretty sure that "unless running test suites" thing means "you shouldn't use this optimization level unless you're also using FEATURES="test" to run the package's tests".)

FWIW, it's my maybe-incorrect understanding that many (most? all?) packages that are known-broken with specific flags get those flags filtered out and replaced with known-good ones... unless they're nutball "ricer" flags, in which case the user gets told "Don't do that!".

[0] <https://web.archive.org/web/20020922020122/https://forums.ge...>

[1] <https://wiki.gentoo.org/wiki/GCC_optimization#-O>

[2] Even the advice from a decade ago [3] is substantially similar: «This makes compilation take longer, and it not only might not make things faster, it may make things slower and is known to break things sometimes.»

[3] <https://wiki.gentoo.org/index.php?title=GCC_optimization&old...>


There's a long history of people telling Linux users "to grow up" and "do what normal people do."

Linux wouldn't exist if people submitted to that argument.


The vast majority of desktop Linux users run Ubuntu (initial motto: Linux for human beings). So one may argue the literal opposite of what you wrote, in that if Canonical didn't invest into making a Linux distro that's accessible to normal people, it wouldn't have the relevance it now does. On top of that, Linux has (or had) a number of clear advantages over Windows that dwarf the presumed upsides of compiling everything from source vs. downloading builds.

There's not much of an argument for adopting obscure niche practices for their own sake


The rather large giant collosal planet sized argument that you somehow missed despite that, is that every single thing that you consider good and normal today doesn't exist except for the fact that at one point it was the obscure niche thing that annoyed intolerant "normal" people.

You, like the other commenter, disregarded the core argument of the matter in favor of contrarianness for its own sake: are you trying to argue that building literally everything from source is cool and good because it's niche and weird, whereas Linux was niche and weird once but it's cool and good now? As I said, Linux had and still has clear advantages over Windows to the point that Microsoft felt threatened by it fairly soon (cue Ballmer's chair throwing, cancer remark, etc.) and tried to undermine it before giving up with Nadella. What, exactly, are the obvious and objective upsides of compiling everything from source? Many posters in the thread dispelled performance-maxxing as a meme so it can't be that. You are comparing apples to oranges here.

I feel like I'm trying to explain a shade of colour to a blind person.

building from source has uses which you believe are worthless and other people don't think are worthless.

Anyone who uses cargo or installs a module for golang is building from source. But that, probably, is considered useful. It's only people who build C code from source who are niche and wierd. ....


Linux was obscure and niche for a very long time before Ubuntu existed and Ubuntu only existed because someone bothered to use and develop Linux when it wasn't normal.

The Ubuntu users are only there because after they had told the rest of us how silly we were for using Linux they eventually had to use it themselves for work.

Now we're going to listen to that sort of stuff again without rolling our eyes? ....


> The Ubuntu users are only there because

I started using linux in 1994 with slackware. Nowadays I use ubuntu, I've spent too many hours of my life tweaking my linux installs.


SLS for me. haha. :-) But now at least you have the choice! It's great really. I can use Artix because I like being nearer the bleeding edge but even that is really a lot easier to use than Linux was in the days when I had to compile my kernel.

Nevertheless I remember lots of my friends who started off saying Linux was hopeless and ended up using it and Ubuntu was their gateway. The Linux world now is full of people who are fairly conformist and don't care about how it all began and who don't value the idea that open source has margins from which who knows what world beating things might eventually come. The fact that margins can exist is what makes open source great.


And the vast amount corporations that invest into it, and related userspace projects like C and C++ compilers, otherwise it would be another GNU Hurd.

Gentoo’s decision to support source builds seems eminently reasonable to me, and I don’t think we should reward it with condescension.

The bigger problem, to me, is that it’s not really clear why this is actually a problem for Gentoo. I am glad they perform user-facing source builds, however, because they see things that other distributors don’t.


Or adopt the Nix approach of caching common binary artifacts in a content addressable store and rebuild from source only when needed.

Firefox built from source is sufficiently sped up that I can notice it starting up at least 1-2 seconds faster. Not that I use the distro for speed, but I'm not complaining about a faster browser.

If you insist on acting like a normal person, no one stops you from using something normal.


Gentoo made a lot of sense WAY back in a pre-docker world, where you had to run the whole world on the host OS. Being able to compile it all meant you could link it all together with whatever weird combination of optional libraries you wanted. Things like getting sendmail to auth over LDAP, that nobody packaged in the base distro, become possible. And with Gentoo's tooling, you could build a coherent distro to your own unique demands.

Now though? It's way easier to have a herd of unicorn docker containers running that each handle one weird thing in isolation.


The herd of docker containers would in practice share almost nothing apart from the kernel and waste a lot of RAM. Didn't matter when RAM was cheap, but nowadays...

Time to grow up and use Windows like a normal person. The bulk of professional work is done on Windows.

Less and less with the ongoing ads, taskbar issues, and RAM eaating bloatware.

By just adding

          preempt=full 
to most GNU/Linux distros to the grub kernel boot options (trivial even for Fedora Silverblue, just run

          sudo rpm-ostree kargs --editor
) and append at the end of these boot flags you are seeing the mentioned string. Done, multimedia ready desktop for tons of tasks outperforming Windows 11.

I think someone has failed to recognise that whiff of sarcasm in the air



Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: