Gentoo Archives: gentoo-dev

From: Kent Fredric <kentnl@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Gentoo i486 support
Date: Fri, 24 Aug 2018 14:40:42
Message-Id: 20180825024009.03bf8ce3@katipo2.lan
In Reply to: Re: [gentoo-dev] Gentoo i486 support by Rich Freeman
1 On Fri, 24 Aug 2018 10:13:42 -0400
2 Rich Freeman <rich0@g.o> wrote:
3
4 > I think an exp arch is also overkill. How many packages simply can't
5 > be built for i486? I think a profile+masking makes a lot more sense
6 > than an entire new level of QA that touches every ebuild in the tree
7 > because there might be a few packages that don't work on 25 year old
8 > hardware.
9
10 In response to other conversations on #gentoo-x86, I think neither are
11 needed any more.
12
13 All that's needed to target this set is as follows:
14
15 1. Focus on the problem in terms of CPU instruction feature sets and
16 memory limitations.
17
18 2. Make sure packages that don't work on i586 natively due to lack of
19 instructions, and require adjustment, utilize CPU_FLAGS_X86 to
20 expose this issue, ( eg: sse, mmx, cmov )
21
22 3. Make the CPU_FLAGS_X86 generator tool emits the ideal values when
23 run locally on a given processor.
24
25 4. For people targeting minimal should-at-least-work-on-i586/i486
26 binary images, setting CPU_FLAGS_X86="-*" should be recommended.
27
28 5. For people targeting physically ancient platforms with binary media,
29 it might be pertinent to standardize on some sort of USE flag to
30 indicate to applicable packages to optimize for
31 runtime-memory-constrained environments.
32
33
34 Or something along those lines. This should avoid all the downsides
35 of new-arches/new profiles, while still allowing ebuilds to introspect
36 and customize themselves as needed.
37
38 Additionally, the features not being bound to a profile means they can
39 be mixed and matched across profiles, so a memory-constrained
40 environment targeting i686/mips/arm can use the same controls.
41
42 And users who have, for example, CPUs' *with* the cmov instruction, but
43 an inferior/slow implementation, can opt-out of using that instruction.
44
45 And then using these tools we can throw minimal-flag-sets and
46 minimal-memory at stage builds.