Hi Vignesh, Thanks for the patch, a question below.
On Thursday, 17 May 2018 5:50:00 PM NZST Vignesh Rajendran wrote: > The recipes which are using externalsrc method doesn't contain the > debug sources in their -dbg packages. > > Add a handling in copydebugsources function to copy the debugsources for > externalsrc -dbg packages. > > Signed-off-by: Vignesh Rajendran <[email protected]> > --- > meta/classes/externalsrc.bbclass | 3 +++ > meta/classes/package.bbclass | 12 ++++++++++-- > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/meta/classes/externalsrc.bbclass > b/meta/classes/externalsrc.bbclass > index c9f5cf7..135670d 100644 > --- a/meta/classes/externalsrc.bbclass > +++ b/meta/classes/externalsrc.bbclass > @@ -129,6 +129,9 @@ python () { > d.setVar('CONFIGURESTAMPFILE', configstamp) > d.setVar('STAMP', > '${STAMPS_DIR}/work-shared/${PN}/${EXTENDPE}${PV}-${PR}') > d.setVar('STAMPCLEAN', '${STAMPS_DIR}/work-shared/${PN}/*-*') > + > + # set DEBUG_PREFIX_MAP to external source path > + d.appendVar("DEBUG_PREFIX_MAP", > "-fdebug-prefix-map=${EXTERNALSRC}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}") > } > > python externalsrc_configure_prefunc() { > diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass > index edeffa9..f071a2e 100644 > --- a/meta/classes/package.bbclass > +++ b/meta/classes/package.bbclass > @@ -420,6 +420,7 @@ def copydebugsources(debugsrcdir, d): > workdir = d.getVar("WORKDIR") > workparentdir = os.path.dirname(os.path.dirname(workdir)) > workbasedir = os.path.basename(os.path.dirname(workdir)) + "/" + > os.path.basename(workdir) > + externalsrc = d.getVar('EXTERNALSRC', True) > > # If build path exists in sourcefile, it means toolchain did not use > # -fdebug-prefix-map to compile > @@ -444,9 +445,16 @@ def copydebugsources(debugsrcdir, d): > processdebugsrc += "fgrep -zw '%s' | " > # Remove prefix in the source paths > processdebugsrc += "sed 's#%s##g' | " > - processdebugsrc += "(cd '%s' ; cpio -pd0mlL --no-preserve-owner > '%s%s' 2>/dev/null)" > + # handle external sources to provide sources in -dbg packages > + if externalsrc: > + localsrc_prefix = "/usr/src/debug/" > + processdebugsrc += "sed 's#%s/##g' | " > + processdebugsrc += "(cd '%s' ; cpio -pd0mlL --no-preserve-owner > '%s%s/%s' 2>/dev/null)" > + cmd = processdebugsrc % (sourcefile, workbasedir, > localsrc_prefix, workbasedir, externalsrc, dvar, debugsrcdir, workbasedir) > + else: > + processdebugsrc += "(cd '%s' ; cpio -pd0mlL --no-preserve-owner > '%s%s' 2>/dev/null)" > + cmd = processdebugsrc % (sourcefile, workbasedir, > localsrc_prefix, workparentdir, dvar, debugsrcdir) > > - cmd = processdebugsrc % (sourcefile, workbasedir, localsrc_prefix, > workparentdir, dvar, debugsrcdir) > (retval, output) = oe.utils.getstatusoutput(cmd) > # Can "fail" if internal headers/transient sources are attempted > #if retval: > Is there a way we can fix this without adding a reference to externalsrc in package.bbclass? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
