(below I’m going to make a fake distinction between ‘userland’ (bash, python) and ‘toolchain’ (compilers))
Well, you end up building the toolchain. Things that you don’t end up building (I think?) include curl, python, cmake and git (more things to be added over time I’m sure), so I’m not sure “almost everything” is quite right. At the moment we’re building both the userland miscellanea and bits of the toolchain - why not just build the toolchain? (yes, I’m simplifying just a little for effect )
In the end, we will move off CentOS 5 at some point. I see the options as 1) CentOS 6 now/later and we get a new toolchain/environment with a new set of bugs and, independently, we’re adding new necessary hacks to both toolchain and userland as technology changes over time) or 2) get us off CentOS 5 now, make the dist builders look like the other builders, give us a rolling userland environment (so we don’t have to caretake) independent of the actual toolchain and make the toolchain version choices more explicit and controlled.
The only reason I can really see to avoid 2 is if you want to build rustc on RHEL 5. Right now you can just follow the dockerfile instructions and it’ll probably work. Given a world where 2 is implemented, you’re probably out of luck. I don’t find this particularly compelling given you’ll be able to build anywhere you have Docker and send it to your RHEL 5 machine, but I could be convinced.
I’m more referring to crates in the wider ecosystem that may (I don’t really know how much it happens) use interesting syscalls for performance, not expecting to be run on old Linuxes. It’ll just need PRs, but it’s still a speedbump.