* [PATCH] gcc-runtime: Move gdb pretty printer file to auto-load location
@ 2024-01-29 22:32 Khem Raj
2024-01-30 8:01 ` [OE-core] " Alexandre Belloni
0 siblings, 1 reply; 2+ messages in thread
From: Khem Raj @ 2024-01-29 22:32 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
When debugging a C++ program on target using libcstdc++, gdb does not
find the pretty printer python support, this is because the init file is
installed into /usr/lib which is excluded from gdb's default list of
directories to load config's from, where as defaults to load from
datadir is still on, it therefore does not load this file
warning: File "/usr/lib/libstdc++.so.6.0.33-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
This leaves the libstdc++ pretty-printers disabled even though added via
IMAGE_INSTALL += "gcc-runtime-dbg"
Add missing runtime dependency on datetime python module for the pretty
printer to work/load successfully.
Once the pretty-printer gdb file is moved out of libdir, it may become
empty therefore delete it if its empty.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-devtools/gcc/gcc-runtime.inc | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 64b6168ba76..403ad76b5f2 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -85,6 +85,8 @@ do_install () {
cd ${B}/${TARGET_SYS}/$d/
oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install
done
+ install -d ${D}${datadir}/gdb/auto-load/${libdir}
+ mv ${D}${libdir}/libstdc++.so.*-gdb.py ${D}${datadir}/gdb/auto-load/${libdir}
if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include ]; then
install -d ${D}${libdir}/${TARGET_SYS}/${BINV}/include
mv ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/* ${D}${libdir}/${TARGET_SYS}/${BINV}/include
@@ -99,6 +101,9 @@ do_install () {
if [ -d ${D}${infodir} ]; then
rmdir --ignore-fail-on-non-empty -p ${D}${infodir}
fi
+ if [ -d ${D}${libdir} ]; then
+ rmdir --ignore-fail-on-non-empty -p ${D}${libdir}
+ fi
}
do_install:append:class-target () {
@@ -182,9 +187,11 @@ RRECOMMENDS:${PN}-dbg = ""
# include python debugging scripts
FILES:${PN}-dbg += "\
- ${libdir}/libstdc++.*-gdb.py \
${datadir}/gcc-${BINV}/python/libstdcxx \
+ ${datadir}/gdb/auto-load \
"
+# Needed by libstdcxx pretty printer
+RDEPENDS:${PN}-dbg += "python3-datetime"
FILES:libg2c = "${target_libdir}/libg2c.so.*"
SUMMARY:libg2c = "Companion runtime library for g77"
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [OE-core] [PATCH] gcc-runtime: Move gdb pretty printer file to auto-load location
2024-01-29 22:32 [PATCH] gcc-runtime: Move gdb pretty printer file to auto-load location Khem Raj
@ 2024-01-30 8:01 ` Alexandre Belloni
0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Belloni @ 2024-01-30 8:01 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core
This breaks on mingw:
https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8517/steps/12/logs/stdio
On 29/01/2024 14:32:50-0800, Khem Raj wrote:
> When debugging a C++ program on target using libcstdc++, gdb does not
> find the pretty printer python support, this is because the init file is
> installed into /usr/lib which is excluded from gdb's default list of
> directories to load config's from, where as defaults to load from
> datadir is still on, it therefore does not load this file
>
> warning: File "/usr/lib/libstdc++.so.6.0.33-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
>
> This leaves the libstdc++ pretty-printers disabled even though added via
> IMAGE_INSTALL += "gcc-runtime-dbg"
>
> Add missing runtime dependency on datetime python module for the pretty
> printer to work/load successfully.
>
> Once the pretty-printer gdb file is moved out of libdir, it may become
> empty therefore delete it if its empty.
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> meta/recipes-devtools/gcc/gcc-runtime.inc | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
> index 64b6168ba76..403ad76b5f2 100644
> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
> @@ -85,6 +85,8 @@ do_install () {
> cd ${B}/${TARGET_SYS}/$d/
> oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install
> done
> + install -d ${D}${datadir}/gdb/auto-load/${libdir}
> + mv ${D}${libdir}/libstdc++.so.*-gdb.py ${D}${datadir}/gdb/auto-load/${libdir}
> if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include ]; then
> install -d ${D}${libdir}/${TARGET_SYS}/${BINV}/include
> mv ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/* ${D}${libdir}/${TARGET_SYS}/${BINV}/include
> @@ -99,6 +101,9 @@ do_install () {
> if [ -d ${D}${infodir} ]; then
> rmdir --ignore-fail-on-non-empty -p ${D}${infodir}
> fi
> + if [ -d ${D}${libdir} ]; then
> + rmdir --ignore-fail-on-non-empty -p ${D}${libdir}
> + fi
> }
>
> do_install:append:class-target () {
> @@ -182,9 +187,11 @@ RRECOMMENDS:${PN}-dbg = ""
>
> # include python debugging scripts
> FILES:${PN}-dbg += "\
> - ${libdir}/libstdc++.*-gdb.py \
> ${datadir}/gcc-${BINV}/python/libstdcxx \
> + ${datadir}/gdb/auto-load \
> "
> +# Needed by libstdcxx pretty printer
> +RDEPENDS:${PN}-dbg += "python3-datetime"
>
> FILES:libg2c = "${target_libdir}/libg2c.so.*"
> SUMMARY:libg2c = "Companion runtime library for g77"
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#194483): https://lists.openembedded.org/g/openembedded-core/message/194483
> Mute This Topic: https://lists.openembedded.org/mt/104038368/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-01-30 8:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-29 22:32 [PATCH] gcc-runtime: Move gdb pretty printer file to auto-load location Khem Raj
2024-01-30 8:01 ` [OE-core] " Alexandre Belloni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox