On Wed, Aug 22, 2018 at 8:26 AM Ben Kohler <bkoh...@gentoo.org> wrote: > > 1) Adjust x86 profile defaults to drop the problematic -march=i686. > This would be more in line with amd64 profiles (et al), which set no > -march value so it can run on any hardware for this arch. >
My knee-jerk reaction was that this is a bad idea, but after a bit of thought there are some arguments in favor of this: First, the argument against: i386 is VERY old. Most distros moved their defaults to i686 because it had significant improvements, and i686 was still mainstream but i386 was ancient. In contrast with amd64 the entire architecture is fairly new and the baseline doesn't suffer from many of the issues i386 suffers compared to i686. This is a really short synopsis - if you go to any distro list archive you can find long passionate arguments from ~10 years ago that elaborated on this. In that sense, going back to i386 is turning back the clock. HOWEVER, I think there is an argument for i386 that wasn't so valid back then. x86 in general is starting to look a bit like i386. What are the main use cases for it in this day and age? I don't use x86, so I'm not the best person to answer that. However, I'd broadly split it into two categories (mostly by tautology): 1. Museum hardware. People have systems that are running simply BECAUSE they are old, not because they are cost-effective/etc. I'm not sure I'd even lump used hardware into this category any longer, as I'm sure there are plenty of i686+ used PCs at rock-bottom prices already out there, and maintaining pre-Y2K hardware is going to be fairly painful. For this use case i386 as the baseline makes a LOT of sense. 2. Non-museum hardware. People have x86 hardware because it is the most cost-effective solution for a task, and not merely because it is old. IMO for this use case i686 makes a lot more sense as a baseline. However, I'm honestly not sure in this day and age what these use cases even are, unless it is something you can buy for $10 at a flea market. Even if you're talking about a container running one application that only needs 500kB of RAM, is there really that much benefit to not building it for amd64? The other argument for i386 would be that in Gentoo nobody is stuck with the defaults. So, a default that works more widely as an entry point makes a lot of sense, since anybody can set CFLAGs and do an emerge -e world to get the benefits. Then again, if we're talking about older but not ancient hardware that is still quite a bit of build time. IMO the best thing here would be for people to actually RUN x86 to chime in. I've been amd64-only on Gentoo since not long after I started using Gentoo (and that was back when mplayer barely could be made to work on amd64). Once upon a time I could have bought the pointer size argument around RAM use, but if that were really a big concern I think more people would be running x32. Is there a large population that actually runs x86 on modern hardware, or is ancient hardware a significant use case? -- Rich