In debugging information, it uses target paths rather than build ones as compile dir. ... -fdebug-prefix-map=old=new When compiling files in directory old, record debugging information describing them as in new instead. ...
Compile without this fix: objdump -g git/test.o ... The Directory Table (offset 0x1b): | 1 /buildarea/raid0/hjia/build-20160119-yocto-buildpath/tmp/sysroots/x86_64-linux/usr/lib/ i686-pokymllib32-linux.lib32-gcc-cross-initial-i686/gcc/i686-pokymllib32-linux/5.3.0/include | 2 /buildarea/raid0/hjia/build-20160119-yocto-buildpath/tmp/sysroots/lib32-qemux86-64/usr/include/bits | 3 /buildarea/raid0/hjia/build-20160119-yocto-buildpath/tmp/sysroots/lib32-qemux86-64/usr/include ... Compile with this fix: objdump -g git/test.o ... The Directory Table (offset 0x1b): | 1 /usr/lib/i686-pokymllib32-linux.lib32-gcc-cross-initial-i686/gcc/i686-pokymllib32-linux/ 5.3.0/include | 2 /usr/include/bits | 3 /usr/include ... [YOCTO #7058] Signed-off-by: Hongxu Jia <hongxu....@windriver.com> --- meta/classes/base.bbclass | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 5fc9271..3a43661 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -85,6 +85,24 @@ FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${ # in the context of the location its used (:=) THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}" +def debug_prefix_map(d): + opts = "" + if "-g" in (d.getVar("SELECTED_OPTIMIZATION", True) or "").split(): + targetsrc = "/usr/src/%s" % d.getVar("BPN", True) + 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) + opts += " -fdebug-prefix-map=%s=" % (buildinc) + + return opts + +TARGET_CFLAGS += "${@debug_prefix_map(d)}" + def extra_path_elements(d): path = "" elements = (d.getVar('EXTRANATIVEPATH', True) or "").split() -- 1.9.1 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core