Tomasz Kłoczko wrote:
Long time ago I've been able to gain minimize number of
dependencies by
injecting LDFLAGS="-Wl,--as-needed" into %configure macros. As on mean
time cmake emerged this move will be not so effective as it was decade
ago. Today I think that better solution could apply small change in ld
default behavior to use by default ---as-need (and make -fno-as-needed
optional). This could be done in one few lines patch (few lines .. because
it would be good IMO add printing warning that linking with some libraries
was dropped). Result would be reduction whole distribution rpm REQUIRES
entries by at least 10-20%.
FYI, this is what Mandriva (back then), now Mageia and OpenMandriva, have
been doing for years (and still do).
https://wiki.mageia.org/en/Overlinking_issues_in_packaging
As long as I've done many times full recompilation on the scale
of whole
distribution in the past I know that sometimes is necessary to add small
linker fix when library X is linked with other libraries A and B and only
A is used and linked executable is using libX and libB ABI but has no -lB
in linker options, but majority of those changes have been already merged
to most of the packages source trees.
Indeed, the folks involved in the Mandriva --as-needed migration reported
that the effort required was similar to the one for the "no more transitive
linking" change
https://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking
in Fedora (since Fedora 13) that you are alluding to.
Kevin Kofler