Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 528088 - sys-devel/binutils-libs: new package for providing libs to the system for linking against
Summary: sys-devel/binutils-libs: new package for providing libs to the system for lin...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 558902
  Show dependency tree
 
Reported: 2014-11-03 09:39 UTC by Agostino Sarubbo
Modified: 2015-12-15 08:29 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2014-11-03 09:39:14 UTC
After binutils update, revdep-rebuild catches problem with cairo.

Maybe we need := into cairo ebuilds
Comment 1 Pacho Ramos gentoo-dev 2014-11-10 10:02:00 UTC
This is a bit special case as it's due binutils-config running -> bug 459038
Comment 2 Alexandre Rostovtsev (RETIRED) gentoo-dev 2015-02-18 14:48:04 UTC
I have never experienced this issue. Are you using clang? What USE flags do you have on cairo (and which version of cairo)?
Comment 3 Matt Turner gentoo-dev 2015-02-18 18:32:50 UTC
I've experienced it a few times, always with gcc.

The cause is libcairo-trace.so, which links against libbfd from binutils.

I don't know much more.
Comment 4 Nikoli 2015-04-08 03:46:58 UTC
Also binutils is missing in deps:
$ check-deps.sh cairo
 * Checking "x11-libs/cairo-1.12.18-r1"
 * Missing in RDEPEND and DEPEND:
        sys-devel/binutils
                X86_64;libbfd-2.24.so
                        /usr/lib64/cairo/libcairo-trace.so.0.0.0


'qgrep -N sys-devel/binutils' indicates that a lot packages have it in deps, please add it to cairo too.
Comment 5 Agostino Sarubbo gentoo-dev 2015-09-21 07:55:08 UTC
It happened another time with the last binutils update. Are you able to reproduce it? which info do you need?
Comment 6 Pacho Ramos gentoo-dev 2015-09-25 14:23:13 UTC
This also affects grive:
 * Checking dynamic linking consistency
[ 14% ]  *   broken /usr/bin/grive (requires libbfd-2.24.so)
[ 44% ]  *   broken /usr/lib64/cairo/libcairo-trace.so.0.0.0 (requires libbfd-2.24.so)
[ 100% ]                 
 * Generated new 3_broken.rr
 * Assigning files to packages


@toolchain, how are we expected to deal with this? In summary, when binutils gets updated, some tools are broken without either preserved-rebuilds or automatic rebuilds being triggered by subslots. Should binutils:0 start setting a subslot and reverse deps starting to RDEPEND on binutils:0= ?
Comment 7 SpanKY gentoo-dev 2015-09-25 17:36:57 UTC
i don't think any dep on binutils is going to work.  we've long allowed people to install multiple versions and switch them on the fly.  portage can't pin to a specific binutils version unless it queries for the active version (and even then it's not a 100% guarantee since you can pass custom toolchain settings via env vars).

probably the only way for packages to depend on binutils libs would be to decouple the libraries linked against from the ones binutils uses internally.  binutils would no longer mess with the shared library path, and we'd have a new package (binutils-libs?) that'd install the bfd/iberty/opcodes libraries and headers, and that'd be SLOT-ed for packages to depend on.

binutils programs already have rpaths set on their own programs, so removing their internal libs from the system search should be fine.  if it weren't, you couldn't execute an older version with a newer one active today.
Comment 8 SpanKY gentoo-dev 2015-09-26 18:16:56 UTC
binutils-libs is now in the tree.  you should be able to update packages to depend on it (including subslot) now.

new package:
http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c2963c4795822d443a0128e5ec47d1418f6b2a1

update binutils-config & gdb to handle it:
http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b851bfe6001dc7abd01ab28d6b569f51c85b3c5e
http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21049b7dd9e07fc5320d8e28348d8e1b46dc5bc5
Comment 9 PV 2015-10-04 04:06:13 UTC
Guys, please make binutils optional dep. My system works perfectly with cairo and without binutils.
Comment 10 SpanKY gentoo-dev 2015-10-04 22:43:12 UTC
(In reply to PV from comment #9)

i doubt that's true when binutils is required to compile/link code
Comment 11 Fabian Groffen gentoo-dev 2015-12-14 21:10:11 UTC
On Darwin we use non-binutils to link, so we need to exclude the dep there too.
Comment 12 SpanKY gentoo-dev 2015-12-14 22:42:23 UTC
(In reply to Fabian Groffen from comment #11)

the linker used is orthogonal to the libs linked.  binutils-libs will be the latest version in normal Linux systems, even if you are using older versions of binutils to link.  the programs (cairo/mysql/whatever) will use the binutils-libs at runtime.
Comment 13 Fabian Groffen gentoo-dev 2015-12-15 08:29:44 UTC
(In reply to SpanKY from comment #12)
> the programs (cairo/mysql/whatever) will use the
> binutils-libs at runtime.

Ok, binutils-libs indeed compiles and installs on darwin.  Will test and keyword.