Skip to content
  • tijl's avatar
    When linking a library libA with a library libB using libtool, if libB.la · 55e5c34e
    tijl authored
    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)
    55e5c34e