On Sat, 2013-07-06 at 00:08 -0700, Matt Turner wrote:
> On Fri, Jul 5, 2013 at 7:18 PM, Rick "Zero_Chaos" Farina
> <zeroch...@gentoo.org> wrote:
> > When we then move onto stage 2, it uses just the packages built during
> > stage1 (/tmp/stage1root becomes /).  This means, if seed stage has
> > mpc.so.0.1 but portage has since included mpc.so.2 that the gcc in
> > stage2 is linked against mpc.so.0.1 but only mpc.so.0.2 is installed.
> >
> > To combat this kind of failure we are currently running "emerge --update
> > - --deep --newuse --complete-graph --rebuild-if-new-ver gcc" which could
> > just be "emerge --update gcc" if eapi 5 subslots were used properly.
> 
> The best solution to this is, and has always been, just updating gcc's
> deps during update_seed. Or am I misremembering something?
> 
> As far as I know, you don't need to waste time rebuilding the seed
> stage's gcc, since gcc is rebuilt in stage2 and then everything is
> built by it in stage3.
> 

Yes, it does need to be rebuilt if key deps are updated.  The gcc
produced in the stage1 is broken, so won't run to rebuild itself during
the stage2 run.
Also the "--rebuild-if-new-ver gcc" only rebuilds gcc if it's deps are
updated to new versions (likely breaking lib linkage), it is not
unconditional.  It is not as accurate as subslots, so may rebuild more
often than possibly needed.  But it is better than having unreliable
stage builds, not knowing when they may break.
-- 
Brian Dolbec <dol...@gentoo.org>


Reply via email to