exists, libtool will add all libraries libB.la refers to (dependency_libs
field) to the linker command line and store them in the dependency_libs
field of libA.la. So everything that subsequently links with libA will also
link to these extra libraries. This causes too much overlinking.
This commit modifies Mk/Uses/libtool.mk so it empties the dependency_libs
field in .la libraries during staging. However, because .la libraries have
very limited use when dependency_libs is empty it makes sense to completely
remove them during staging.
So with this commit USES=libtool is modified to remove .la libraries and a
new form (USES=libtool:keepla) is introduced in case they need to be kept
(dependency_libs is still emptied).
PORTREVISION is bumped on all ports with USES=libtool that install .la
libraries. Most ports are also changed to add :keepla because .la
libraries have to be kept around as long as there are dependent ports with
.la libraries that refer to them in their dependency_libs field. In most
cases :keepla can be removed again as soon as all dependent ports that
install .la libraries have some form of USES=libtool added to their
Makefile.
PR: ports/188759
Exp-run: bdrewery
Approved by: portmgr (bdrewery)
I estimated it would take me 15 minutes to incorporate the PR, but boy
was I wrong. After several HOURS I finally got this port staged,
building on FreeBSD 10+, DragonFly too, and fix accomplished the
intent of the PR (don't clobber conf files, less noisy).
Staging revealed the original port was installing undocumented files.
Clang was having issues with the "inline" directives and I could only
get it to build on clang by removing them (this doesn't mean the
functions won't be inlined, nor does the directive mean that it will.)
Anyway -- a gift. I wouldn't have done this had I know how much work
it was going to be. I also should have overwritten the install
target instead of patch the vendor Makefile, that would have been a
lot easier and faster.
PR: ports/176676
Submitted by: Lawrence Chen
Approved by: maintainer (Raffaele DeLorenzo)
Other work by: marino
MFH: 2014Q2