On Tuesday, December 27, 2016 02:20:20 PM Dale wrote:
> J. Roeleveld wrote:
> > On December 27, 2016 6:55:31 PM GMT+01:00, Dale <rdalek1...@gmail.com> 
wrote:
> >> Alan Grimes wrote:
> >>> Holger Hoffstätte wrote:
> >>>> ..indicates a mismatch in C++11 ABI which changed in gcc5. What
> >> 
> >> happens is that one the
> >> 
> >>>> dependencies of openimageio was built against the old C++11
> >> 
> >> std::string ABI (hence the
> >> 
> >>>> link errors), and needs to be rebuilt. It looks to be "Imf" aka
> >> 
> >> libIlmImf,
> >> 
> >>>> whatever that is. Try to rebuild it with --oneshot and it should
> >> 
> >> work.
> >> 
> >>>> If a similar error pops up for a different dependency, repeat. :)
> >>>> 
> >>>> -h
> >>> 
> >>> Yeah, I emptytree world my system after each Y in X.Y.Z compiler
> >> 
> >> version
> >> 
> >>> bump. Since I sad it, everyone will tell you it's bad advice but
> >> 
> >> really
> >> 
> >>> not. The binary distros will compile everything with the same
> >> 
> >> compiler
> >> 
> >>> so crap doesn't happen. Now it's not super important but then you
> >> 
> >> have
> >> 
> >>> no idea how many other abi link errors are hiding out there.
> >> 
> >> I do the same here.  When I switch to a new version of gcc, I do a
> >> emerge -e world.  If I've read that it really changes some things, like
> >> this one appears to do, I do it twice.  The second time may be overkill
> >> but I'd rather have overkill than some weird problem that is difficult
> >> to figure out the solution.  I don't think anyone would say doing that
> >> is bad.  A ounce of prevention is always better than a pound of cure.
> >> ;-)
> >> 
> >> There's another upgrade that I do that after too.  I can't recall the
> >> name right now but maybe it is glibc or something????
> >> 
> >> Dale
> >> 
> >> :-)  :-)
> > 
> > I usually do (if encountering weird issues):
> > # emerge -1 gcc
> > # emerge -1 glibc
> > # emerge -e @system
> > # emerge -e @world
> > 
> > If there is a better method requiring less time, please let me know.
> > 
> > A full rebuild like this into binary packages using a chroot is a good way
> > to prepare for a toolchain update. That way all the packages are already
> > prepared and the downtime will be minimized.
> > 
> > --
> > Joost
> 
> Giving it some thought, I would think your way would be the fastest.
> When you emerge -e system, that should rebuild everything toolchain
> wise.  Then when you go back and do world, that should rebuild
> everything with the new toolchain.  I have ran emerge -e world twice in
> the past but that requires more time than your way.  Your way should
> guarantee success and be the quickest.

There is a way that might even be quicker:
- Temporarily switch to the most basic profile (desktop-profiles have a lot of 
additional USE-flags causing extra stuff in the @system set)
- Temporarily move all "package.use" entries out of the way

After "emerge -e @system" reset the correct profile and move all your 
package.use flags back.

> I might add, in the past when I run into something weird, even with no
> gcc or glibc changes, I would do a emerge -e world.  Sometimes there can
> be a change that doesn't get picked up on by emerge or even the devs.
> Even the logs from a build failure may not give any real clue.  That
> said, it has been a while since I've had that sort of problem.  I run a
> mix of unstable and stable and still have a pretty sane system.  I think
> that says a lot about how portage/emerge/etc does its job now.  The devs
> have really worked out some serious kinks.

I don't often have to do an "emerge -e" either. Only when something 
"important" changes. Like a profile, kde -> plasma, major gcc/glibc-version or 
similar.
Can't really remember the last time, apart from when I updated my parents 
laptop after nearly 2 years in one go. (binaries compiled on a fast machine 
really helped there)
The laptop functions as a simple media-player.

> Now that I said that, something will come along pretty soon and just
> bork everything up.  LOL

Tempting murphy?

--
Joost

Reply via email to