Summary: | revdep-rebuild: support gcc std::__cxx11 symbol transition | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | gent_bz |
Component: | Current packages | Assignee: | Portage Tools Team <tools-portage> |
Status: | RESOLVED OBSOLETE | ||
Severity: | enhancement | CC: | dev-portage, herrtimson, kredba, O01eg, pacho, pete_dawgg, tb, toolchain |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=547788 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 536984, 542482, 547788 | ||
Attachments: | Simplistic gcc-5 upgrade support for revdep-rebuild |
Description
gent_bz
2015-05-26 05:31:34 UTC
Created attachment 403986 [details, diff]
Simplistic gcc-5 upgrade support for revdep-rebuild
This adds an option -u that will scan each target found by revdep-rebuild and very naively look for references to std::basic_stream in the output of nm -C.
It will return some results that need not be rebuilt e.g. sys-devel/gcc and cross-compilers. These could be filtered with files in /etc/revdep-rebuild similar to other special cases.
Binary files referencing the older symbol will be wrongly reported as requiring a rebuild.
A package that legitimately uses _GLIBCXX_USE_CXX11_ABI=0 will be wrongly reported as requiring a rebuild.
> - Just rebuild everything on the system. I have 1500 packages installed on my
> primary machine - this is a highly unappealing option as only a small number
> of those packages require a rebuild.
This is pretty much mandatory after a major version bump of gcc anyways, and especially so with this version. I'm sure we'll be putting out a news item when we unmask it recommending emerge -e @world.
I'll leave this open as an enhancement request in case anyone wants to look into your changes for revdep-rebuild.
cc'ing tools-portage for the revdep-rebuild enhancement. It looks simple enough, but will require porting to the newer python version. *** Bug 568614 has been marked as a duplicate of this bug. *** edge case: some packages only provide static libs (like libplatform), but revdep rebuild does not detect that currently (In reply to Jonathan Adamczewski from comment #1) > Created attachment 403986 [details, diff] [details, diff] > Simplistic gcc-5 upgrade support for revdep-rebuild > > This adds an option -u that will scan each target found by revdep-rebuild > and very naively look for references to std::basic_stream in the output of > nm -C. > > It will return some results that need not be rebuilt e.g. sys-devel/gcc and > cross-compilers. These could be filtered with files in /etc/revdep-rebuild > similar to other special cases. > > Binary files referencing the older symbol will be wrongly reported as > requiring a rebuild. > > A package that legitimately uses _GLIBCXX_USE_CXX11_ABI=0 will be wrongly > reported as requiring a rebuild. i adapted this to revdep-rebuild.sh from newer 0.3.2 (had to use -z, because -u is already present in 0.3.2), however when update happened in fresh chroot (4.9.3 to 5.3.0), revdep-rebuild.sh unable to find packages with std::basic_string; grep pattern or it doesn't trigger rebuild. This bug is pretty much obsolete since the transition is now behind us. |