One of the main reasons for emerging -e world is a major change of gcc and/or glibc, but currently, gcc and glibc are not the first packages to be emerged (with its primary deps). What I suggest is to force glibc and gcc to be built as soon as possible to gain benefits from recompiling all, and avoiding recompile them manually prior to emptytree. For example, what's desired for example: emerge -e world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] ( gcc main deps) [ebuild R ] ( glibc main deps - linux-headers specially) [ebuild R ] sys-libs/glibc-XXXX [ebuild R ] sys-devel/gcc-XXXX (all the rest packages). In my case, I ran emptytree rebuild, and glibc and gcc were emerged after almost 500 packages! So I had to rebuild again. Reproducible: Always Steps to Reproduce: 1. emerge -e world Actual Results: glibc and gcc are emerged in random order (tipically near the last ones) Expected Results: glibc, gcc, linux-headers and friends to be emerged as soon as possible. using portage-2.2.0_alpha26
I forgot to add, that they will be built anyway, so a change in its order will not harm anyone, but will benefit.
I gets messy hardcoding logic like this into the merge order calculations. We already have some special code for glibc version changes, since it's needed to avoid broken systems (bug #303567). Note that you can get similar results like this: emerge gcc glibc && emerge -e world --exclude gcc --exclude glibc
how is this any different from Bug 283422 which you already filed ?
*** This bug has been marked as a duplicate of bug 283422 ***