[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Pan-users] Pan 0.133 refuses to work any longer
From: |
Duncan |
Subject: |
Re: [Pan-users] Pan 0.133 refuses to work any longer |
Date: |
Sun, 26 Aug 2012 00:52:12 +0000 (UTC) |
User-agent: |
Pan/0.139 (Sexual Chocolate; GIT 1f91845 /usr/src/portage/src/egit-src/pan2) |
Rhialto posted on Sat, 25 Aug 2012 15:26:33 +0200 as excerpted:
> Not that there is nothing wrong with pkgconfig. My favourite peeve for
> instance is that often, if a shared library uses some other shared
> library, that dependency is made explicit even when it need not be. That
> results in unnecessary update dependencies: when you're updating some
> lower level library, you are forced to update more than just those
> libraries/programs that actually use it directly.
For that, take a look at the --as-needed linker option (LDFLAGS on many
builds, often seen as -Wl,--as-needed when passed to the linker via gcc),
which has been the default on gentoo for awhile now. That tells the
linker to only link in directly called for dependencies, not any
arbitrary library just because something says it needs it. As such, it
does tend to eliminate much of the over-linking, but it does produce
occasional problems with under-linking (which gentoo obviously had to
patch around before they made it the default, but they do try to be a
good downstream and pass the patches back upstream, so pretty much
everything gentoo packages had been fixed upstream too by now, unless of
course upstream simply doesn't care).
It can make a HUGE difference. Often nearly half the system will try to
link to some common low-level libraries (like exiv) if given the chance,
but they're mostly indirect dependencies thru other, intermediate level
libraries. --as-needed strips those indirect deps out, and an upgrade
that would otherwise require rebuilding as I said nearly half the system
against the new version, only ends up triggering a rebuild on a handful
of packages, maybe a tenth of the system if that, if --as-needed has been
used.
Libtool's perhaps the biggest culprit in overlinking, however, due to all
those *.la files it creates that include all sorts of indirect deps. But
the information contained in all those *.la files is primarily of use for
static linking, not dynamic linking, where it can be obtained using other
methods so the *.la files are redundant. As a consequence, if you choose
to use dynamic linking whereever possible, it's possible to eliminate
most of those *.la files (tho they can still be necessary in certain
instances such as late-linked runtime-loaded plugins), thus eliminating
that problem along with a few others. Here, I have an system-wide
install-mask on *.la files, with a few single-package exceptions where
they're actually necessary, for libtool itself and for a few plugin
packages. That eliminates most of /that/ problem, too.
Between using --as-needed in my LDFLAGS and eliminating nearly all the
*.la files on the system, I've cut down on update triggered reverse-
dependency rebuilds by at LEAST 80%, I'd say, probably closer to 90%.
Most of my rebuilds these days are direct-dep rebuilds due to poppler
(used for pdfs and printing) updates, or various A/V codec updates
triggering rebuilds of stuff like imagemagik, ffmpeg (libav) and mplayer.
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
- Re: [Pan-users] Pan 0.133 refuses to work any longer, (continued)
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Mike Brown, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Mike Brown, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Duncan, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Duncan, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Mike Brown, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Rhialto, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Mike Brown, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, David Shochat, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Mike Brown, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer, Duncan, 2012/08/25
- Re: [Pan-users] Pan 0.133 refuses to work any longer,
Duncan <=