[OE-core] [PATCH 3/4] insane.bbclass: fix package_qa_check_buildpaths

Robert Yang liezhi.yang at windriver.com
Wed Sep 16 02:28:47 UTC 2015


* Ignore elf files because they usually contain build path:
  - The path of the source file such as .c, these are usually happen
    when separate B and S since we use absolute path to run configure
    script, and then VPATH in Makefile will be an absolute path and
    contains build path, we can use relative path in autotools.bbclass
    to fix the problem, but we don't have to since they are harmless.
  - The configure options such as "configure --with-libtool-sysroot"
  - The compile options such as "gcc --sysroot"
  These are harmless usually, so ignore elf files.

* Ignore "-dbg" and "-staticdev" package since symbols and .a files
  usually contain buildpath.

* Ignore .a files too since they contain buildpath, this mainly for
  ignoring:
  glibc-2.21: glibc-dev/usr/lib/libc_nonshared.a
  libgcc-4.9.3: libgcc-dev/usr/lib/x86_64-poky-linux/4.9.3/libgcc_eh.a
  gcc-runtime-4.9.3: libssp-dev/usr/lib/libssp_nonshared.a

* Use full path rather than package_qa_clean_path() when report issue,
  this makes it easier to find the file and fix the problem.

Then we will verify other warings and fix one be one.

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 meta/classes/insane.bbclass |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 5c8629a..943ada8 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -571,8 +571,14 @@ def package_qa_check_buildpaths(path, name, d, elf, messages):
     """
     Check for build paths inside target files and error if not found in the whitelist
     """
-    # Ignore .debug files, not interesting
-    if path.find(".debug") != -1:
+
+    # Ignore staticdev and debug files since symbols and .a usually
+    # contain buildpath.
+    if name.endswith("-dbg") or name.endswith("-staticdev"):
+        return
+
+    # Ignore elf and .a files
+    if elf or path.endswith('.a'):
         return
 
     # Ignore symlinks
@@ -583,7 +589,7 @@ def package_qa_check_buildpaths(path, name, d, elf, messages):
     with open(path) as f:
         file_content = f.read()
         if tmpdir in file_content:
-            messages["buildpaths"] = "File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d)
+            messages["buildpaths"] = "File %s in package contained reference to tmpdir" % path
 
 
 QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi"
-- 
1.7.9.5




More information about the Openembedded-core mailing list