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