* [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location @ 2024-01-30 16:20 Khem Raj 2024-02-02 22:58 ` [OE-core] " Richard Purdie 0 siblings, 1 reply; 11+ messages in thread From: Khem Raj @ 2024-01-30 16:20 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> --- v2: Fix build on mingw 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..004deb6e41f 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++*-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] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-01-30 16:20 [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location Khem Raj @ 2024-02-02 22:58 ` Richard Purdie 2024-02-03 0:23 ` Khem Raj 0 siblings, 1 reply; 11+ messages in thread From: Richard Purdie @ 2024-02-02 22:58 UTC (permalink / raw) To: Khem Raj, openembedded-core On Tue, 2024-01-30 at 08:20 -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> > --- > v2: Fix build on mingw > > 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..004deb6e41f 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++*-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" https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio Missing or unbuildable dependency chain was: ['selftest-ed', 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 Cheers, Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-02 22:58 ` [OE-core] " Richard Purdie @ 2024-02-03 0:23 ` Khem Raj 2024-02-03 7:53 ` Richard Purdie 0 siblings, 1 reply; 11+ messages in thread From: Khem Raj @ 2024-02-03 0:23 UTC (permalink / raw) To: Richard Purdie; +Cc: openembedded-core On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Tue, 2024-01-30 at 08:20 -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> > > --- > > v2: Fix build on mingw > > > > 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..004deb6e41f 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++*-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" > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > Missing or unbuildable dependency chain was: ['selftest-ed', > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 Hmm, so I wonder if using RRECOMMEND is better here. Where is bash being pulled from ? > > Cheers, > > Richard > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-03 0:23 ` Khem Raj @ 2024-02-03 7:53 ` Richard Purdie 2024-02-04 3:55 ` Tim Orling 0 siblings, 1 reply; 11+ messages in thread From: Richard Purdie @ 2024-02-03 7:53 UTC (permalink / raw) To: Khem Raj; +Cc: openembedded-core On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > <richard.purdie@linuxfoundation.org> wrote: > > > > On Tue, 2024-01-30 at 08:20 -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> > > > --- > > > v2: Fix build on mingw > > > > > > 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..004deb6e41f 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++*-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" > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > being pulled from ? bash appears to be a dependency of python3-datetime. I don't think a RRECOMMEND will help unfortunately. Cheers, Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-03 7:53 ` Richard Purdie @ 2024-02-04 3:55 ` Tim Orling 2024-02-04 10:28 ` Richard Purdie 0 siblings, 1 reply; 11+ messages in thread From: Tim Orling @ 2024-02-04 3:55 UTC (permalink / raw) To: Richard Purdie; +Cc: Khem Raj, openembedded-core [-- Attachment #1: Type: text/plain, Size: 4824 bytes --] On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie < richard.purdie@linuxfoundation.org> wrote: > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > On Tue, 2024-01-30 at 08:20 -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> > > > > --- > > > > v2: Fix build on mingw > > > > > > > > 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..004deb6e41f 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++*-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" > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > > being pulled from ? > > bash appears to be a dependency of python3-datetime. I don't think a > RRECOMMEND will help unfortunately. > It seems to be required for tests/ (test_venv.py, test_subprocess.py and test_zipfile/test_core.py are the obvious ones) https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code I didn’t see any hard requirement in Lib/datetime.py nor its test cases. But searching on a phone can lead to missing things… > Cheers, > > Richard > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#194830): > https://lists.openembedded.org/g/openembedded-core/message/194830 > Mute This Topic: https://lists.openembedded.org/mt/104056687/924729 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > ticotimo@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > > [-- Attachment #2: Type: text/html, Size: 7547 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-04 3:55 ` Tim Orling @ 2024-02-04 10:28 ` Richard Purdie 2024-02-04 16:36 ` Tim Orling 0 siblings, 1 reply; 11+ messages in thread From: Richard Purdie @ 2024-02-04 10:28 UTC (permalink / raw) To: Tim Orling; +Cc: Khem Raj, openembedded-core On Sat, 2024-02-03 at 19:55 -0800, Tim Orling wrote: > > > On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > > > On Tue, 2024-01-30 at 08:20 -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> > > > > > --- > > > > > v2: Fix build on mingw > > > > > > > > > > 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..004deb6e41f 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++*-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" > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > > > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > > > being pulled from ? > > > > bash appears to be a dependency of python3-datetime. I don't think a > > RRECOMMEND will help unfortunately. > > > > > It seems to be required for tests/ (test_venv.py, test_subprocess.py and test_zipfile/test_core.py are the obvious ones) > https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code > > I didn’t see any hard requirement in Lib/datetime.py nor its test cases. But searching on a phone can lead to missing things… The dependency is definitely coming from the python3 tests. It looks like whilst the python3-ptest is conditional on enabling ptests, the python3-tests package is not, and it is that which contains the bash dependency. Cheers, Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-04 10:28 ` Richard Purdie @ 2024-02-04 16:36 ` Tim Orling 2024-02-04 18:00 ` Khem Raj 2024-02-04 19:09 ` Richard Purdie 0 siblings, 2 replies; 11+ messages in thread From: Tim Orling @ 2024-02-04 16:36 UTC (permalink / raw) To: Richard Purdie, Trevor Gamblin; +Cc: Khem Raj, openembedded-core [-- Attachment #1: Type: text/plain, Size: 5237 bytes --] On Sun, Feb 4, 2024 at 2:28 AM Richard Purdie < richard.purdie@linuxfoundation.org> wrote: > On Sat, 2024-02-03 at 19:55 -0800, Tim Orling wrote: > > > > > > On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie < > richard.purdie@linuxfoundation.org> wrote: > > > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > > > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > > > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > > > > > On Tue, 2024-01-30 at 08:20 -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> > > > > > > --- > > > > > > v2: Fix build on mingw > > > > > > > > > > > > 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..004deb6e41f 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++*-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" > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > > > > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', > 'bash'] > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > > > > > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > > > > being pulled from ? > > > > > > bash appears to be a dependency of python3-datetime. I don't think a > > > RRECOMMEND will help unfortunately. > > > > > > > > > It seems to be required for tests/ (test_venv.py, test_subprocess.py and > test_zipfile/test_core.py are the obvious ones) > > > https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code > > > > I didn’t see any hard requirement in Lib/datetime.py nor its test cases. > But searching on a phone can lead to missing things… > > The dependency is definitely coming from the python3 tests. > > It looks like whilst the python3-ptest is conditional on enabling > ptests, the python3-tests package is not, and it is that which contains > the bash dependency. > > So perhaps we should rework python3 recipe to package tests/ into -ptest? > Cheers, > > Richard > > [-- Attachment #2: Type: text/html, Size: 7936 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-04 16:36 ` Tim Orling @ 2024-02-04 18:00 ` Khem Raj 2024-02-04 19:04 ` Richard Purdie 2024-02-04 19:09 ` Richard Purdie 1 sibling, 1 reply; 11+ messages in thread From: Khem Raj @ 2024-02-04 18:00 UTC (permalink / raw) To: Tim Orling; +Cc: Richard Purdie, Trevor Gamblin, openembedded-core On Sun, Feb 4, 2024 at 8:37 AM Tim Orling <ticotimo@gmail.com> wrote: > > > > On Sun, Feb 4, 2024 at 2:28 AM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: >> >> On Sat, 2024-02-03 at 19:55 -0800, Tim Orling wrote: >> > >> > >> > On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: >> > > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: >> > > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie >> > > > <richard.purdie@linuxfoundation.org> wrote: >> > > > > >> > > > > On Tue, 2024-01-30 at 08:20 -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> >> > > > > > --- >> > > > > > v2: Fix build on mingw >> > > > > > >> > > > > > 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..004deb6e41f 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++*-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" >> > > > > >> > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio >> > > > > >> > > > > Missing or unbuildable dependency chain was: ['selftest-ed', >> > > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] >> > > > > >> > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 >> > > > >> > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash >> > > > being pulled from ? >> > > >> > > bash appears to be a dependency of python3-datetime. I don't think a >> > > RRECOMMEND will help unfortunately. >> > > >> > >> > >> > It seems to be required for tests/ (test_venv.py, test_subprocess.py and test_zipfile/test_core.py are the obvious ones) >> > https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code >> > >> > I didn’t see any hard requirement in Lib/datetime.py nor its test cases. But searching on a phone can lead to missing things… >> >> The dependency is definitely coming from the python3 tests. >> >> It looks like whilst the python3-ptest is conditional on enabling >> ptests, the python3-tests package is not, and it is that which contains >> the bash dependency. >> > So perhaps we should rework python3 recipe to package tests/ into -ptest? if test package is pulling in bash and imposing it on non ptest builds then it would be good to fix that. > >> >> Cheers, >> >> Richard >> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-04 18:00 ` Khem Raj @ 2024-02-04 19:04 ` Richard Purdie 2024-02-04 19:06 ` Khem Raj 0 siblings, 1 reply; 11+ messages in thread From: Richard Purdie @ 2024-02-04 19:04 UTC (permalink / raw) To: Khem Raj, Tim Orling; +Cc: Trevor Gamblin, openembedded-core On Sun, 2024-02-04 at 10:00 -0800, Khem Raj wrote: > On Sun, Feb 4, 2024 at 8:37 AM Tim Orling <ticotimo@gmail.com> wrote: > > > > > > > > On Sun, Feb 4, 2024 at 2:28 AM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > > > > > On Sat, 2024-02-03 at 19:55 -0800, Tim Orling wrote: > > > > > > > > > > > > On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > > > > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > > > > > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > > > > > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > > > > > > > > > On Tue, 2024-01-30 at 08:20 -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> > > > > > > > > --- > > > > > > > > v2: Fix build on mingw > > > > > > > > > > > > > > > > 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..004deb6e41f 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++*-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" > > > > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > > > > > > > > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > > > > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > > > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > > > > > > > > > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > > > > > > being pulled from ? > > > > > > > > > > bash appears to be a dependency of python3-datetime. I don't think a > > > > > RRECOMMEND will help unfortunately. > > > > > > > > > > > > > > > > > It seems to be required for tests/ (test_venv.py, test_subprocess.py and test_zipfile/test_core.py are the obvious ones) > > > > https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code > > > > > > > > I didn’t see any hard requirement in Lib/datetime.py nor its test cases. But searching on a phone can lead to missing things… > > > > > > The dependency is definitely coming from the python3 tests. > > > > > > It looks like whilst the python3-ptest is conditional on enabling > > > ptests, the python3-tests package is not, and it is that which contains > > > the bash dependency. > > > > > So perhaps we should rework python3 recipe to package tests/ into -ptest? > > if test package is pulling in bash and imposing it on non ptest builds > then it would be good to > fix that. I've sent a couple of patches which create a common "no-gplv3" include file and move configuration there which works around this. Cheers, Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-04 19:04 ` Richard Purdie @ 2024-02-04 19:06 ` Khem Raj 0 siblings, 0 replies; 11+ messages in thread From: Khem Raj @ 2024-02-04 19:06 UTC (permalink / raw) To: Richard Purdie; +Cc: Tim Orling, Trevor Gamblin, openembedded-core On Sun, Feb 4, 2024 at 11:04 AM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Sun, 2024-02-04 at 10:00 -0800, Khem Raj wrote: > > On Sun, Feb 4, 2024 at 8:37 AM Tim Orling <ticotimo@gmail.com> wrote: > > > > > > > > > > > > On Sun, Feb 4, 2024 at 2:28 AM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > > > > > > > On Sat, 2024-02-03 at 19:55 -0800, Tim Orling wrote: > > > > > > > > > > > > > > > On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > > > > > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > > > > > > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > > > > > > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > > > > > > > > > > > On Tue, 2024-01-30 at 08:20 -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> > > > > > > > > > --- > > > > > > > > > v2: Fix build on mingw > > > > > > > > > > > > > > > > > > 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..004deb6e41f 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++*-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" > > > > > > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > > > > > > > > > > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > > > > > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > > > > > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > > > > > > > > > > > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > > > > > > > being pulled from ? > > > > > > > > > > > > bash appears to be a dependency of python3-datetime. I don't think a > > > > > > RRECOMMEND will help unfortunately. > > > > > > > > > > > > > > > > > > > > > It seems to be required for tests/ (test_venv.py, test_subprocess.py and test_zipfile/test_core.py are the obvious ones) > > > > > https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code > > > > > > > > > > I didn’t see any hard requirement in Lib/datetime.py nor its test cases. But searching on a phone can lead to missing things… > > > > > > > > The dependency is definitely coming from the python3 tests. > > > > > > > > It looks like whilst the python3-ptest is conditional on enabling > > > > ptests, the python3-tests package is not, and it is that which contains > > > > the bash dependency. > > > > > > > So perhaps we should rework python3 recipe to package tests/ into -ptest? > > > > if test package is pulling in bash and imposing it on non ptest builds > > then it would be good to > > fix that. > > I've sent a couple of patches which create a common "no-gplv3" include > file and move configuration there which works around this. > ah thanks Richard. So ignore v3 of this patch and take this one ( v2 ) instead. > Cheers, > > Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [OE-core] [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location 2024-02-04 16:36 ` Tim Orling 2024-02-04 18:00 ` Khem Raj @ 2024-02-04 19:09 ` Richard Purdie 1 sibling, 0 replies; 11+ messages in thread From: Richard Purdie @ 2024-02-04 19:09 UTC (permalink / raw) To: Tim Orling, Trevor Gamblin; +Cc: Khem Raj, openembedded-core On Sun, 2024-02-04 at 08:36 -0800, Tim Orling wrote: > > > On Sun, Feb 4, 2024 at 2:28 AM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Sat, 2024-02-03 at 19:55 -0800, Tim Orling wrote: > > > > > > > > > On Fri, Feb 2, 2024 at 11:53 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > > > On Fri, 2024-02-02 at 16:23 -0800, Khem Raj wrote: > > > > > On Fri, Feb 2, 2024 at 2:58 PM Richard Purdie > > > > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > > > > > > > On Tue, 2024-01-30 at 08:20 -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> > > > > > > > --- > > > > > > > v2: Fix build on mingw > > > > > > > > > > > > > > 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..004deb6e41f 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++*-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" > > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6381/steps/14/logs/stdio > > > > > > > > > > > > Missing or unbuildable dependency chain was: ['selftest-ed', > > > > > > 'virtual/x86_64-poky-linux-compilerlibs', 'python3-datetime', 'bash'] > > > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/8533 > > > > > > > > > > Hmm, so I wonder if using RRECOMMEND is better here. Where is bash > > > > > being pulled from ? > > > > > > > > bash appears to be a dependency of python3-datetime. I don't think a > > > > RRECOMMEND will help unfortunately. > > > > > > > > > > > > > It seems to be required for tests/ (test_venv.py, test_subprocess.py and test_zipfile/test_core.py are the obvious ones) > > > https://github.com/search?q=repo%3Apython%2Fcpython+%28%22bash%22+OR+%22bash+required%22%29+path%3A%2F%5ELib%5C%2Ftest%5C%2F%2F&type=code > > > > > > I didn’t see any hard requirement in Lib/datetime.py nor its test cases. But searching on a phone can lead to missing things… > > > > The dependency is definitely coming from the python3 tests. > > > > It looks like whilst the python3-ptest is conditional on enabling > > ptests, the python3-tests package is not, and it is that which contains > > the bash dependency. > > > > > > So perhaps we should rework python3 recipe to package tests/ into -ptest? ptests are packaged conditionally so it all gets a bit messy. I've worked around it in a no-gplv3 inc file for now. Cheers, Richard ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-02-04 19:09 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-01-30 16:20 [PATCH v2] gcc-runtime: Move gdb pretty printer file to auto-load location Khem Raj 2024-02-02 22:58 ` [OE-core] " Richard Purdie 2024-02-03 0:23 ` Khem Raj 2024-02-03 7:53 ` Richard Purdie 2024-02-04 3:55 ` Tim Orling 2024-02-04 10:28 ` Richard Purdie 2024-02-04 16:36 ` Tim Orling 2024-02-04 18:00 ` Khem Raj 2024-02-04 19:04 ` Richard Purdie 2024-02-04 19:06 ` Khem Raj 2024-02-04 19:09 ` Richard Purdie
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox