summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-07-20 13:28:03 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-08-17 19:57:32 +0100
commit12bdb5df1ebb4e43900f297e0e94b35553a30999 (patch)
treef10f0672a20621a555996dd6bd59d147c800592c
parent794371ad2da471321bfde494523ee73a10380e0a (diff)
downloadpoky-12bdb5df1ebb4e43900f297e0e94b35553a30999.tar.gz
bitbake.conf: Handle S and B separately for debug mapping
We don't really need to keep S and B separate for debug source purposes and there shouldn't be source references in WORKDIR that isn't S and B either. Separating these out simplifies the shared-work directory handling for gcc and should also help fix external source usage. Therefore handle S and B in DEBUG_PREFIX_MAP separately and clean up other code. Indentation is reduced here as it is introduced on every compiler commandline so minimising it is helpful. (From OE-Core rev: c39b5020b8705d17e3745c41e38d0f99a1ac94cf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/bitbake.conf11
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime.inc13
-rw-r--r--meta/recipes-devtools/gcc/libgcc-common.inc8
3 files changed, 7 insertions, 25 deletions
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index bdfb678437..dd2df8a552 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -645,10 +645,13 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} "
645# Optimization flags. 645# Optimization flags.
646################################################################## 646##################################################################
647# Beware: applied last to first 647# Beware: applied last to first
648DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ 648DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
649 -fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ 649 -fdebug-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
650 -fdebug-prefix-map=${STAGING_DIR_HOST}= \ 650 -fmacro-prefix-map=${B}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
651 -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ 651 -fdebug-prefix-map=${B}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
652 -fdebug-prefix-map=${STAGING_DIR_HOST}= \
653 -fmacro-prefix-map=${STAGING_DIR_HOST}= \
654 -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
652" 655"
653DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}" 656DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}"
654 657
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 35a3077a4a..fa5b048dab 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -50,19 +50,6 @@ RUNTIMETARGET:libc-newlib = "libstdc++-v3"
50# libiberty 50# libiberty
51# libgfortran needs separate recipe due to libquadmath dependency 51# libgfortran needs separate recipe due to libquadmath dependency
52 52
53# Relative path to be repaced into debug info
54DEBUGSOURCE = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
55
56DEBUG_PREFIX_MAP = " \
57 -ffile-prefix-map=${WORKDIR}/${MLPREFIX}recipe-sysroot= \
58 -ffile-prefix-map=${WORKDIR}/recipe-sysroot-native= \
59 -ffile-prefix-map=${B}=${DEBUGSOURCE} \
60 -ffile-prefix-map=${S}=${DEBUGSOURCE} \
61 -fdebug-prefix-map=${B}=${DEBUGSOURCE} \
62 -fdebug-prefix-map=${S}=${DEBUGSOURCE} \
63 -ffile-prefix-map=${B}/${HOST_SYS}/libstdc++-v3/include=${includedir}/c++/${BINV} \
64 "
65
66do_configure () { 53do_configure () {
67 export CXX="${CXX} -nostdinc++ -L${WORKDIR}/dummylib" 54 export CXX="${CXX} -nostdinc++ -L${WORKDIR}/dummylib"
68 # libstdc++ isn't built yet so CXX would error not able to find it which breaks stdc++'s configure 55 # libstdc++ isn't built yet so CXX would error not able to find it which breaks stdc++'s configure
diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc b/meta/recipes-devtools/gcc/libgcc-common.inc
index e813926313..d9084af51a 100644
--- a/meta/recipes-devtools/gcc/libgcc-common.inc
+++ b/meta/recipes-devtools/gcc/libgcc-common.inc
@@ -4,14 +4,6 @@ require gcc-configure-common.inc
4 4
5INHIBIT_DEFAULT_DEPS = "1" 5INHIBIT_DEFAULT_DEPS = "1"
6 6
7DEBUGSOURCE = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
8DEBUG_PREFIX_MAP = " \
9 -fdebug-prefix-map=${WORKDIR}/${MLPREFIX}recipe-sysroot= \
10 -fdebug-prefix-map=${WORKDIR}/recipe-sysroot-native= \
11 -fdebug-prefix-map=${B}=${DEBUGSOURCE} \
12 -fdebug-prefix-map=${S}=${DEBUGSOURCE} \
13 "
14
15do_configure () { 7do_configure () {
16 install -d ${D}${base_libdir} ${D}${libdir} 8 install -d ${D}${base_libdir} ${D}${libdir}
17 mkdir -p ${B}/${BPN} 9 mkdir -p ${B}/${BPN}