This is basically a resubmission of [1]. The only changes are because 784fe43e93cdefe1d033195ab43e88d450b5882b added some adjacent code.
The ultimate motivation of these changes is the packaging of GCC I am doing in [2]. These patches (or rather the previous version of them) are already applied there. The wrote about why/how I am repackaging GCC in [3], which might be of interest. The series can be broken down into two pairs of two patches each. The first pair is a pure refactor that, I believe, stands on its own, in that it should be a good idea whether or not the latter pair is accepted. I think therefore the easiest thing to do is discuss (and hopefully land) it first. The second pair is a new feature / slight behavior change. The actual behavior change happens in the 4th commit (the 3rd is another pure refactor, but one that does not stand on its own, and should therefore not be considered independently of the 4th). The 4th commit likewise contains a longer commit message motivation that change. Thanks, John [1]: https://inbox.sourceware.org/gcc-patches/[email protected]/ [2]: https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/compilers/gcc/ng [3]: https://blog.obsidian.systems/compiler-bootstrapping-in-nixpkgs/
