1 |
Hi guys, |
2 |
|
3 |
For some time now, we've been shipping broken i486 stage3s that do not |
4 |
run on pre-i686 hardware [1]. Due to a change in catalyst [2], we no |
5 |
longer set CXXFLAGS in the default make.conf, so the x86 profiles' (imho |
6 |
wrong/broken) defaults [3] kick in. |
7 |
|
8 |
I'd like to get this fixed, and I see 3 possible solutions, listed in |
9 |
order of my own preference: |
10 |
|
11 |
1) Adjust x86 profile defaults to drop the problematic -march=i686. |
12 |
This would be more in line with amd64 profiles (et al), which set no |
13 |
-march value so it can run on any hardware for this arch. |
14 |
|
15 |
2) Patch catalyst to start setting CXXFLAGS again. Rather than roll |
16 |
back to exactly CXXFLAGS="${CFLAGS}" again, it's been suggested that we |
17 |
start setting COMMON_FLAGS, and CFLAGS="${COMMON_FLAGS}" |
18 |
CXXFLAGS=${COMMON_FLAGS}" etc. I prepared such a patch a while back |
19 |
[4], which seems to work but may need a bit of updating. |
20 |
|
21 |
3) Drop i486 support. We're only pretending to have support now, we |
22 |
could officially stop building these broken stages completely. |
23 |
|
24 |
Personally I think #1 is the most technically correct and least amount |
25 |
of work. The only result will be slightly less optimized builds for |
26 |
people who choose not to customize *FLAGS at all in make.conf. But this |
27 |
is correct behavior. What we have now is akin to setting -march=core2 |
28 |
on amd64 stage3 and saying "oops it doesn't work on early 64bit AMD |
29 |
cpus, but oh well most people have newer and will appreciate the |
30 |
optimization". |
31 |
|
32 |
Thoughts? |
33 |
|
34 |
-Ben |
35 |
|
36 |
[1] https://bugs.gentoo.org/654080 |
37 |
[2] |
38 |
https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=b409bd9bb4b50f69a555e4e148057ade86a7ed16 |
39 |
[3] |
40 |
https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/arch/x86/make.defaults |
41 |
[4] https://bugs.gentoo.org/575446#c4 |