On Wed, 22 Aug 2018 07:26:24 -0500
Ben Kohler <bkoh...@gentoo.org> wrote:

> For some time now, we've been shipping broken i486 stage3s that do
> not run on pre-i686 hardware [1].  Due to a change in catalyst [2],
> we no longer set CXXFLAGS in the default make.conf, so the x86
> profiles' (imho wrong/broken) defaults [3] kick in.
> 
> I'd like to get this fixed, and I see 3 possible solutions, listed in 
> order of my own preference:
> 
> 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.
> 
> 2) Patch catalyst to start setting CXXFLAGS again.  Rather than roll 
> back to exactly CXXFLAGS="${CFLAGS}" again, it's been suggested that
> we start setting COMMON_FLAGS, and CFLAGS="${COMMON_FLAGS}" 
> CXXFLAGS=${COMMON_FLAGS}" etc.  I prepared such a patch a while back 
> [4], which seems to work but may need a bit of updating.

You do get similar issues with other variables. I recently noticed that
CHOST_arm is sometimes used (by LLVM? can't remember…) instead of just
CHOST. Because we were only setting CHOST_arm="${CHOST}" in the base
arch/arm profile, it was still carrying the original value of
arm-unknown-linux-gnu regardless of what subprofiles or the user had
set. I've explicitly set it in the subprofiles now but this still isn't
great.

> 3) Drop i486 support.  We're only pretending to have support now, we 
> could officially stop building these broken stages completely.
> 
> Personally I think #1 is the most technically correct and least
> amount of work.  The only result will be slightly less optimized
> builds for people who choose not to customize *FLAGS at all in
> make.conf.  But this is correct behavior.  What we have now is akin
> to setting -march=core2 on amd64 stage3 and saying "oops it doesn't
> work on early 64bit AMD cpus, but oh well most people have newer and
> will appreciate the optimization".

I do get nostalgic about this old hardware but I wouldn't expect anyone
to use it now. A year or so ago, I tried to run the latest Linux kernel
in 16MB RAM. I had to use zram just to squeeze out an extra 2MB and
even then, it was at the absolute limit. Bear in mind this was a very
stripped down LEDE installation. 486s can have more RAM but why bother?
The oldest PC I ran Gentoo on in remotely recent times was a Pentium
120 MMX and that was only because the form factor was unusually small.
I would maybe still try it on my Amiga 1200 for laughs but that has the
added novelty factor of not being a PC. On that basis, I would suggest
dropping the stages but that doesn't mean we shouldn't fix things
anyway. Apart from just making it correct, it is possible to install
Gentoo without a stage tarball. I created our bogsucker ppc64le dev box
by cross-compiling @system with the help of my cross-boss tool.

-- 
James Le Cuirot (chewi)
Gentoo Linux Developer

Reply via email to