From 593ffffc3baf064b982891d61dacebd08aed3e96 Mon Sep 17 00:00:00 2001 From: Juro Bystricky Date: Thu, 19 Apr 2018 11:04:10 -0700 Subject: bitbake.conf: re-order DEBUG_PREFIX_MAP When specifying several -fdebug-prefix-map command line options to gcc, they are evaluated right to left (last one first). Normally, the order is irrelevant. However, when we try to map both: recipe-sysroot-native recipe-sysroot the order matters. With the original order most of our debug packages contain incorrect debug symbols. Take for example /usr/bin/.debug/setfacl from acl-dbg: $ strings setfacl | grep native ... -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include -native/usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include Reordering the fdebug-prefix-map arguments will give us the correct paths: /usr/lib/x86_64-poky-linux/gcc/x86_64-poky-linux/7.3.0/include Note there may be additional an incorrect paths, such as: /usr/src/debug/glibc/2.27-r0/recipe-sysroot-native/usr/lib/x86_64-poky-linux.gcc-cross-initial-x86_64/gcc/x86_64-poky-linux/7.3.0/include But that one needs to be fixed in the recipe for glibc. Signed-off-by: Juro Bystricky Signed-off-by: Ross Burton --- meta/conf/bitbake.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 92aa944b91..a21b7282fb 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -600,9 +600,10 @@ EXTRA_OEMAKE_prepend_task-install = "${PARALLEL_MAKEINST} " ################################################################## # Optimization flags. ################################################################## +# Beware: applied last to first DEBUG_PREFIX_MAP ?= "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ -fdebug-prefix-map=${STAGING_DIR_HOST}= \ + -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ " DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}" -- cgit 1.2.3-korg