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

Reply via email to