[OE-core] [PATCH 4/4] base/bbclass: fix missing to replace build dir in debugging info

Hongxu Jia hongxu.jia at windriver.com
Wed Jan 27 08:45:18 UTC 2016


Previously, it missed to replace build dir(${B}).

Compile without this fix:
objdump -g packages-split/lib32-glibc-staticdev/usr/lib/librpcsvc.a
...
 The Directory Table (offset 0x1b):
|  1     /buildarea/raid0/hjia/build-20160119-yocto-buildpath/tmp/work/core2-32-pokymllib32-linux/
lib32-glibc/2.22-r0/build-i686-pokymllib32-linux/sunrpc
|  15    /buildarea/raid0/hjia/build-20160119-yocto-buildpath/tmp/work/core2-32-pokymllib32-linux/
lib32-glibc/2.22-r0/build-i686-pokymllib32-linux/sunrpc/rpcsvc
...

Compile with this fix:
objdump -g packages-split/lib32-glibc-staticdev/usr/lib/librpcsvc.a
...
 The Directory Table (offset 0x1b):
  1     /usr/src/glibc/sunrpc
  15    /usr/src/glibc/sunrpc/rpcsvc
...

[YOCTO #7058]

Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
 meta/classes/base.bbclass | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 5c95cba..afa7dd8 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -88,9 +88,12 @@ THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}"
 def debug_prefix_map(d):
     opts = ""
     if "-g" in (d.getVar("SELECTED_OPTIMIZATION", True) or "").split():
-        buildsrc = d.getVar("S", True)
         targetsrc = "/usr/src/%s" % d.getVar("BPN", True)
-        opts += " -fdebug-prefix-map=%s=%s" % (buildsrc, targetsrc)
+        for var in ["S", "B"]:
+            buildsrc = d.getVar(var, True)
+            opt = " -fdebug-prefix-map=%s=%s" % (buildsrc, targetsrc)
+            if opt not in opts:
+                opts += opt
 
         for var in ["STAGING_DIR_NATIVE", "STAGING_DIR_HOST"]:
             buildinc = d.getVar(var, True)
-- 
1.9.1




More information about the Openembedded-core mailing list