---
 eclass/autotools-utils.eclass |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/eclass/autotools-utils.eclass b/eclass/autotools-utils.eclass
index 48b39cb..9d7e134 100644
--- a/eclass/autotools-utils.eclass
+++ b/eclass/autotools-utils.eclass
@@ -162,18 +162,28 @@ remove_libtool_files() {
                local archivefile=${f/%.la/.a}
                [[ "${f}" != "${archivefile}" ]] || die 'regex sanity check 
failed'
 
-               # Remove static libs we're not supposed to link against
+               # Remove static libs we're not supposed to link against.
                if [[ ${shouldnotlink} ]]; then
                        einfo "Removing unnecessary ${archivefile#${D%/}}"
                        rm -f "${archivefile}" || die
-                       # We're never going to remove the .la file.
+                       # The .la file may be used by a module loader, so avoid 
removing it
+                       # unless explicitly requested.
                        [[ ${removing_all} ]] || continue
                fi
 
-               # Keep .la files when:
-               # - they have shouldnotlink=yes - likely plugins (handled 
above),
-               # - respective static archive exists.
-               if [[ ${removing_all} || ! -f ${archivefile} ]]; then
+               # Remove .la files when:
+               # - user explicitly wants us to remove all .la files,
+               # - respective static archive doesn't exist,
+               # - they don't provide any new information (no libs & no flags).
+               local removing
+               if [[ ${removing_all} ]]; then removing=1
+               elif [[ ! -f ${archivefile} ]]; then removing=1
+               elif [[ ! $(sed -n -e \
+                       
"s/^\(dependency_libs\|inherited_linker_flags\)='\(.*\)'$/\2/p" \
+                       "${f}") ]]; then removing=1
+               fi
+
+               if [[ ${removing} ]]; then
                        einfo "Removing unnecessary ${f#${D%/}}"
                        rm -f "${f}" || die
                fi
-- 
1.7.6.1


Reply via email to