In toolchain edge cases it's possible for the RPATH of a library to be
set to something like "/usr/lib/../lib".  This should be detected as
"/usr/lib" and generate a warning.

Signed-off-by: Andy Ross <andy.r...@windriver.com>
---
 meta/classes/insane.bbclass | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 556a176..b84a89f 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -161,6 +161,10 @@ def package_qa_check_rpath(file,name, d, elf, messages):
             if dir in line:
                 messages.append("package %s contains bad RPATH %s in file %s" 
% (name, line, file))
 
+def rpath_eq(a, b):
+    import os.path
+    return os.path.normpath(a) == os.path.normpath(b)
+
 QAPATHTEST[useless-rpaths] = "package_qa_check_useless_rpaths"
 def package_qa_check_useless_rpaths(file, name, d, elf, messages):
     """
@@ -181,7 +185,7 @@ def package_qa_check_useless_rpaths(file, name, d, elf, 
messages):
        m = rpath_re.match(line)
        if m:
           rpath = m.group(1)
-          if rpath == libdir or rpath == base_libdir:
+          if rpath_eq(rpath, libdir) or rpath_eq(rpath, base_libdir):
              # The dynamic linker searches both these places anyway.  There is 
no point in
              # looking there again.
              messages.append("%s: %s contains probably-redundant RPATH %s" % 
(name, package_qa_clean_path(file, d), rpath))
-- 
1.7.11.2


_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to