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