| Message ID | 20250630172224.18568-1-wen.yang@linux.dev |
|---|---|
| State | Accepted |
| Headers | show |
| Series | [meta-oe] pstack: add recipe | expand |
It fails to build with clang - https://errors.yoctoproject.org/Errors/Details/868022/ On Mon, Jun 30, 2025 at 10:40 AM Wen Yang via lists.openembedded.org <wen.yang=linux.dev@lists.openembedded.org> wrote: > > This recipe provides pstack for C/C++, Go, Rust, and Python. > > Signed-off-by: Wen Yang <wen.yang@linux.dev> > --- > ...e-issue-of-cross-compilation-failure.patch | 28 +++++++++++++ > meta-oe/recipes-devtools/pstack/pstack.inc | 39 +++++++++++++++++++ > .../recipes-devtools/pstack/pstack_2.10.bb | 33 ++++++++++++++++ > meta-oe/recipes-devtools/pstack/pstack_git.bb | 8 ++++ > 4 files changed, 108 insertions(+) > create mode 100644 meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > create mode 100644 meta-oe/recipes-devtools/pstack/pstack.inc > create mode 100644 meta-oe/recipes-devtools/pstack/pstack_2.10.bb > create mode 100644 meta-oe/recipes-devtools/pstack/pstack_git.bb > > diff --git a/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > new file mode 100644 > index 0000000000..2b54750e7a > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > @@ -0,0 +1,28 @@ > +From a8c3996d3f8d9b8f3a2888b7062c1139263c5aba Mon Sep 17 00:00:00 2001 > +From: Wen Yang <yellowriver2010@hotmail.com> > +Date: Mon, 23 Jun 2025 02:06:53 +0800 > +Subject: [PATCH] tests: fix the issue of cross compilation failure > + > +By replacing objcopy with MAKE_OBJCOPY, pstack could support both > +native and cross compilation. > + > +Upstream-Status: Backport [https://github.com/peadar/pstack/pull/38] > +--- > + tests/CMakeLists.txt | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt > +index 71a62a7..bf11a04 100644 > +--- a/tests/CMakeLists.txt > ++++ b/tests/CMakeLists.txt > +@@ -38,7 +38,7 @@ SET_TARGET_PROPERTIES(noreturn PROPERTIES COMPILE_FLAGS "-O2 -g") > + > + add_custom_command( > + OUTPUT basic-no-unwind-gen > +- COMMAND objcopy --strip-debug --remove-section .eh_frame basic basic-no-unwind > ++ COMMAND ${CMAKE_OBJCOPY} --strip-debug --remove-section .eh_frame basic basic-no-unwind > + VERBATIM ) > + > + add_custom_target(basic-no-unwind ALL DEPENDS basic basic-no-unwind-gen) > +-- > +2.25.1 > diff --git a/meta-oe/recipes-devtools/pstack/pstack.inc b/meta-oe/recipes-devtools/pstack/pstack.inc > new file mode 100644 > index 0000000000..9831a74d1a > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/pstack.inc > @@ -0,0 +1,39 @@ > +SUMMARY = "A utility to print stack traces of running processes" > +DESCRIPTION = "A from-scratch implementation of pstack using DWARF debugging and unwind information. \ > +Works for C/C++, Go, Rust, and Python. A traditional pstack command can generally print a backtrace \ > +of each thread in a running program, and sometimes from a core file. This version of pstack uses its \ > +own self contained ELF and DWARF parsing library, libdwelf to parse the DWARF debug and unwind \ > +information, to get a stack trace." > +HOMEPAGE = "https://github.com/peadar/pstack" > +SECTION = "devel" > +LICENSE = "BSD-2-Clause" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=671019a96ba80415b696240ed2ca5e80" > + > +inherit cmake > + > +S = "${UNPACKDIR}/${BPN}-${PV}" > +DEPENDS += "zlib xz libunwind elfutils" > + > +RDEPENDS:${PN} += "elfutils" > + > +do_install() { > + install -d ${D}${bindir} > + install -m 0755 ${B}/pstack ${D}${bindir}/pstack > + > + install -d ${D}${libdir} > + install -m 0755 ${B}/libprocman.so.${PV} ${D}${libdir}/libprocman.so.${PV} > + ln -sf libprocman.so.${PV} ${D}${libdir}/libprocman.so > + install -m 0755 ${B}/libdwelf.so.${PV} ${D}${libdir}/libdwelf.so.${PV} > + ln -sf libdwelf.so.${PV} ${D}${libdir}/libdwelf.so > +} > + > +PACKAGES = "${PN}" > +FILES:${PN} = "${bindir}/pstack" > +FILES:${PN} += "${libdir}/libprocman.so.${PV}" > +FILES:${PN} += "${libdir}/libdwelf.so.${PV}" > + > +PACKAGES += "${PN}-dbg" > +FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" > + > +PACKAGES += "${PN}-dev" > +FILES:${PN}-dev += "${base_libdir}/*.so" > diff --git a/meta-oe/recipes-devtools/pstack/pstack_2.10.bb b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb > new file mode 100644 > index 0000000000..cebc13d36c > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb > @@ -0,0 +1,33 @@ > +SUMMARY = "A from-scratch implementation of pstack using DWARF debugging \ > +and unwind information. Works for C/C++, Go, Rust, and Python." > + > +HOMEPAGE = "https://github.com/peadar/pstack" > +SECTION = "devel/pstack" > + > +LICENSE = "BSD-2-Clause" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=ea061f8731d5e6a5761dfad951ef5f5f" > + > +DEPENDS = "tcl virtual/libx11 libxt zip-native" > + > +SRC_URI = "git://github.com/peadar/pstack;branch=master;tag=v${PV};protocol=https" > +SRCREV = "a310df637d74917a1d3570c540bf3aef899d7e63" > + > +S = "${WORKDIR}/${BPN}${PV}" > + > +PACKAGES =+ "${PN}-lib" > + > +SOLIBS = ".so" > +FILES_SOLIBSDEV = "" > + > +# isn't getting picked up by shlibs code > +RDEPENDS:${PN} += "tk-lib" > +RDEPENDS:${PN}:class-native = "" > + > +BBCLASSEXTEND = "native nativesdk" > + > +inherit binconfig > + > +SYSROOT_DIRS += "${bindir_crossscripts}" > + > +# Fix some paths that might be used by Tcl extensions > +BINCONFIG_GLOB = "*Config.sh" > diff --git a/meta-oe/recipes-devtools/pstack/pstack_git.bb b/meta-oe/recipes-devtools/pstack/pstack_git.bb > new file mode 100644 > index 0000000000..cc6721f9e3 > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/pstack_git.bb > @@ -0,0 +1,8 @@ > +require pstack.inc > + > +SRCREV = "1e1734be3adb6d9c81b57c5cc3d0c8fbc43bdee3" > +PV = "2.11" > + > +SRC_URI = "git://github.com/peadar/pstack.git;branch=master;protocol=https \ > + file://0001-tests-fix-the-issue-of-cross-compilation-failure.patch \ > + " > -- > 2.25.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#118182): https://lists.openembedded.org/g/openembedded-devel/message/118182 > Mute This Topic: https://lists.openembedded.org/mt/113912625/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
libxt and libx11 are available only with x11 in DISTRO_FEATURES, this should declare the REQUIRED_DISTRO_FEATURES as well. Will send a fix later. On Mon, Jun 30, 2025 at 7:40 PM Wen Yang via lists.openembedded.org <wen.yang=linux.dev@lists.openembedded.org> wrote: > > This recipe provides pstack for C/C++, Go, Rust, and Python. > > Signed-off-by: Wen Yang <wen.yang@linux.dev> > --- > ...e-issue-of-cross-compilation-failure.patch | 28 +++++++++++++ > meta-oe/recipes-devtools/pstack/pstack.inc | 39 +++++++++++++++++++ > .../recipes-devtools/pstack/pstack_2.10.bb | 33 ++++++++++++++++ > meta-oe/recipes-devtools/pstack/pstack_git.bb | 8 ++++ > 4 files changed, 108 insertions(+) > create mode 100644 meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > create mode 100644 meta-oe/recipes-devtools/pstack/pstack.inc > create mode 100644 meta-oe/recipes-devtools/pstack/pstack_2.10.bb > create mode 100644 meta-oe/recipes-devtools/pstack/pstack_git.bb > > diff --git a/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > new file mode 100644 > index 0000000000..2b54750e7a > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > @@ -0,0 +1,28 @@ > +From a8c3996d3f8d9b8f3a2888b7062c1139263c5aba Mon Sep 17 00:00:00 2001 > +From: Wen Yang <yellowriver2010@hotmail.com> > +Date: Mon, 23 Jun 2025 02:06:53 +0800 > +Subject: [PATCH] tests: fix the issue of cross compilation failure > + > +By replacing objcopy with MAKE_OBJCOPY, pstack could support both > +native and cross compilation. > + > +Upstream-Status: Backport [https://github.com/peadar/pstack/pull/38] > +--- > + tests/CMakeLists.txt | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt > +index 71a62a7..bf11a04 100644 > +--- a/tests/CMakeLists.txt > ++++ b/tests/CMakeLists.txt > +@@ -38,7 +38,7 @@ SET_TARGET_PROPERTIES(noreturn PROPERTIES COMPILE_FLAGS "-O2 -g") > + > + add_custom_command( > + OUTPUT basic-no-unwind-gen > +- COMMAND objcopy --strip-debug --remove-section .eh_frame basic basic-no-unwind > ++ COMMAND ${CMAKE_OBJCOPY} --strip-debug --remove-section .eh_frame basic basic-no-unwind > + VERBATIM ) > + > + add_custom_target(basic-no-unwind ALL DEPENDS basic basic-no-unwind-gen) > +-- > +2.25.1 > diff --git a/meta-oe/recipes-devtools/pstack/pstack.inc b/meta-oe/recipes-devtools/pstack/pstack.inc > new file mode 100644 > index 0000000000..9831a74d1a > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/pstack.inc > @@ -0,0 +1,39 @@ > +SUMMARY = "A utility to print stack traces of running processes" > +DESCRIPTION = "A from-scratch implementation of pstack using DWARF debugging and unwind information. \ > +Works for C/C++, Go, Rust, and Python. A traditional pstack command can generally print a backtrace \ > +of each thread in a running program, and sometimes from a core file. This version of pstack uses its \ > +own self contained ELF and DWARF parsing library, libdwelf to parse the DWARF debug and unwind \ > +information, to get a stack trace." > +HOMEPAGE = "https://github.com/peadar/pstack" > +SECTION = "devel" > +LICENSE = "BSD-2-Clause" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=671019a96ba80415b696240ed2ca5e80" > + > +inherit cmake > + > +S = "${UNPACKDIR}/${BPN}-${PV}" > +DEPENDS += "zlib xz libunwind elfutils" > + > +RDEPENDS:${PN} += "elfutils" > + > +do_install() { > + install -d ${D}${bindir} > + install -m 0755 ${B}/pstack ${D}${bindir}/pstack > + > + install -d ${D}${libdir} > + install -m 0755 ${B}/libprocman.so.${PV} ${D}${libdir}/libprocman.so.${PV} > + ln -sf libprocman.so.${PV} ${D}${libdir}/libprocman.so > + install -m 0755 ${B}/libdwelf.so.${PV} ${D}${libdir}/libdwelf.so.${PV} > + ln -sf libdwelf.so.${PV} ${D}${libdir}/libdwelf.so > +} > + > +PACKAGES = "${PN}" > +FILES:${PN} = "${bindir}/pstack" > +FILES:${PN} += "${libdir}/libprocman.so.${PV}" > +FILES:${PN} += "${libdir}/libdwelf.so.${PV}" > + > +PACKAGES += "${PN}-dbg" > +FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" > + > +PACKAGES += "${PN}-dev" > +FILES:${PN}-dev += "${base_libdir}/*.so" > diff --git a/meta-oe/recipes-devtools/pstack/pstack_2.10.bb b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb > new file mode 100644 > index 0000000000..cebc13d36c > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb > @@ -0,0 +1,33 @@ > +SUMMARY = "A from-scratch implementation of pstack using DWARF debugging \ > +and unwind information. Works for C/C++, Go, Rust, and Python." > + > +HOMEPAGE = "https://github.com/peadar/pstack" > +SECTION = "devel/pstack" > + > +LICENSE = "BSD-2-Clause" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=ea061f8731d5e6a5761dfad951ef5f5f" > + > +DEPENDS = "tcl virtual/libx11 libxt zip-native" > + > +SRC_URI = "git://github.com/peadar/pstack;branch=master;tag=v${PV};protocol=https" > +SRCREV = "a310df637d74917a1d3570c540bf3aef899d7e63" > + > +S = "${WORKDIR}/${BPN}${PV}" > + > +PACKAGES =+ "${PN}-lib" > + > +SOLIBS = ".so" > +FILES_SOLIBSDEV = "" > + > +# isn't getting picked up by shlibs code > +RDEPENDS:${PN} += "tk-lib" > +RDEPENDS:${PN}:class-native = "" > + > +BBCLASSEXTEND = "native nativesdk" > + > +inherit binconfig > + > +SYSROOT_DIRS += "${bindir_crossscripts}" > + > +# Fix some paths that might be used by Tcl extensions > +BINCONFIG_GLOB = "*Config.sh" > diff --git a/meta-oe/recipes-devtools/pstack/pstack_git.bb b/meta-oe/recipes-devtools/pstack/pstack_git.bb > new file mode 100644 > index 0000000000..cc6721f9e3 > --- /dev/null > +++ b/meta-oe/recipes-devtools/pstack/pstack_git.bb > @@ -0,0 +1,8 @@ > +require pstack.inc > + > +SRCREV = "1e1734be3adb6d9c81b57c5cc3d0c8fbc43bdee3" > +PV = "2.11" > + > +SRC_URI = "git://github.com/peadar/pstack.git;branch=master;protocol=https \ > + file://0001-tests-fix-the-issue-of-cross-compilation-failure.patch \ > + " > -- > 2.25.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#118182): https://lists.openembedded.org/g/openembedded-devel/message/118182 > Mute This Topic: https://lists.openembedded.org/mt/113912625/3617156 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [martin.jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On Fri, Jul 11, 2025 at 1:20 PM Martin Jansa via lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> wrote: > > libxt and libx11 are available only with x11 in DISTRO_FEATURES, this > should declare the REQUIRED_DISTRO_FEATURES as well. > > Will send a fix later. > Thanks > On Mon, Jun 30, 2025 at 7:40 PM Wen Yang via lists.openembedded.org > <wen.yang=linux.dev@lists.openembedded.org> wrote: > > > > This recipe provides pstack for C/C++, Go, Rust, and Python. > > > > Signed-off-by: Wen Yang <wen.yang@linux.dev> > > --- > > ...e-issue-of-cross-compilation-failure.patch | 28 +++++++++++++ > > meta-oe/recipes-devtools/pstack/pstack.inc | 39 +++++++++++++++++++ > > .../recipes-devtools/pstack/pstack_2.10.bb | 33 ++++++++++++++++ > > meta-oe/recipes-devtools/pstack/pstack_git.bb | 8 ++++ > > 4 files changed, 108 insertions(+) > > create mode 100644 meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > > create mode 100644 meta-oe/recipes-devtools/pstack/pstack.inc > > create mode 100644 meta-oe/recipes-devtools/pstack/pstack_2.10.bb > > create mode 100644 meta-oe/recipes-devtools/pstack/pstack_git.bb > > > > diff --git a/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > > new file mode 100644 > > index 0000000000..2b54750e7a > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch > > @@ -0,0 +1,28 @@ > > +From a8c3996d3f8d9b8f3a2888b7062c1139263c5aba Mon Sep 17 00:00:00 2001 > > +From: Wen Yang <yellowriver2010@hotmail.com> > > +Date: Mon, 23 Jun 2025 02:06:53 +0800 > > +Subject: [PATCH] tests: fix the issue of cross compilation failure > > + > > +By replacing objcopy with MAKE_OBJCOPY, pstack could support both > > +native and cross compilation. > > + > > +Upstream-Status: Backport [https://github.com/peadar/pstack/pull/38] > > +--- > > + tests/CMakeLists.txt | 2 +- > > + 1 file changed, 1 insertion(+), 1 deletion(-) > > + > > +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt > > +index 71a62a7..bf11a04 100644 > > +--- a/tests/CMakeLists.txt > > ++++ b/tests/CMakeLists.txt > > +@@ -38,7 +38,7 @@ SET_TARGET_PROPERTIES(noreturn PROPERTIES COMPILE_FLAGS "-O2 -g") > > + > > + add_custom_command( > > + OUTPUT basic-no-unwind-gen > > +- COMMAND objcopy --strip-debug --remove-section .eh_frame basic basic-no-unwind > > ++ COMMAND ${CMAKE_OBJCOPY} --strip-debug --remove-section .eh_frame basic basic-no-unwind > > + VERBATIM ) > > + > > + add_custom_target(basic-no-unwind ALL DEPENDS basic basic-no-unwind-gen) > > +-- > > +2.25.1 > > diff --git a/meta-oe/recipes-devtools/pstack/pstack.inc b/meta-oe/recipes-devtools/pstack/pstack.inc > > new file mode 100644 > > index 0000000000..9831a74d1a > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/pstack/pstack.inc > > @@ -0,0 +1,39 @@ > > +SUMMARY = "A utility to print stack traces of running processes" > > +DESCRIPTION = "A from-scratch implementation of pstack using DWARF debugging and unwind information. \ > > +Works for C/C++, Go, Rust, and Python. A traditional pstack command can generally print a backtrace \ > > +of each thread in a running program, and sometimes from a core file. This version of pstack uses its \ > > +own self contained ELF and DWARF parsing library, libdwelf to parse the DWARF debug and unwind \ > > +information, to get a stack trace." > > +HOMEPAGE = "https://github.com/peadar/pstack" > > +SECTION = "devel" > > +LICENSE = "BSD-2-Clause" > > +LIC_FILES_CHKSUM = "file://LICENSE;md5=671019a96ba80415b696240ed2ca5e80" > > + > > +inherit cmake > > + > > +S = "${UNPACKDIR}/${BPN}-${PV}" > > +DEPENDS += "zlib xz libunwind elfutils" > > + > > +RDEPENDS:${PN} += "elfutils" > > + > > +do_install() { > > + install -d ${D}${bindir} > > + install -m 0755 ${B}/pstack ${D}${bindir}/pstack > > + > > + install -d ${D}${libdir} > > + install -m 0755 ${B}/libprocman.so.${PV} ${D}${libdir}/libprocman.so.${PV} > > + ln -sf libprocman.so.${PV} ${D}${libdir}/libprocman.so > > + install -m 0755 ${B}/libdwelf.so.${PV} ${D}${libdir}/libdwelf.so.${PV} > > + ln -sf libdwelf.so.${PV} ${D}${libdir}/libdwelf.so > > +} > > + > > +PACKAGES = "${PN}" > > +FILES:${PN} = "${bindir}/pstack" > > +FILES:${PN} += "${libdir}/libprocman.so.${PV}" > > +FILES:${PN} += "${libdir}/libdwelf.so.${PV}" > > + > > +PACKAGES += "${PN}-dbg" > > +FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" > > + > > +PACKAGES += "${PN}-dev" > > +FILES:${PN}-dev += "${base_libdir}/*.so" > > diff --git a/meta-oe/recipes-devtools/pstack/pstack_2.10.bb b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb > > new file mode 100644 > > index 0000000000..cebc13d36c > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb > > @@ -0,0 +1,33 @@ > > +SUMMARY = "A from-scratch implementation of pstack using DWARF debugging \ > > +and unwind information. Works for C/C++, Go, Rust, and Python." > > + > > +HOMEPAGE = "https://github.com/peadar/pstack" > > +SECTION = "devel/pstack" > > + > > +LICENSE = "BSD-2-Clause" > > +LIC_FILES_CHKSUM = "file://LICENSE;md5=ea061f8731d5e6a5761dfad951ef5f5f" > > + > > +DEPENDS = "tcl virtual/libx11 libxt zip-native" > > + > > +SRC_URI = "git://github.com/peadar/pstack;branch=master;tag=v${PV};protocol=https" > > +SRCREV = "a310df637d74917a1d3570c540bf3aef899d7e63" > > + > > +S = "${WORKDIR}/${BPN}${PV}" > > + > > +PACKAGES =+ "${PN}-lib" > > + > > +SOLIBS = ".so" > > +FILES_SOLIBSDEV = "" > > + > > +# isn't getting picked up by shlibs code > > +RDEPENDS:${PN} += "tk-lib" > > +RDEPENDS:${PN}:class-native = "" > > + > > +BBCLASSEXTEND = "native nativesdk" > > + > > +inherit binconfig > > + > > +SYSROOT_DIRS += "${bindir_crossscripts}" > > + > > +# Fix some paths that might be used by Tcl extensions > > +BINCONFIG_GLOB = "*Config.sh" > > diff --git a/meta-oe/recipes-devtools/pstack/pstack_git.bb b/meta-oe/recipes-devtools/pstack/pstack_git.bb > > new file mode 100644 > > index 0000000000..cc6721f9e3 > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/pstack/pstack_git.bb > > @@ -0,0 +1,8 @@ > > +require pstack.inc > > + > > +SRCREV = "1e1734be3adb6d9c81b57c5cc3d0c8fbc43bdee3" > > +PV = "2.11" > > + > > +SRC_URI = "git://github.com/peadar/pstack.git;branch=master;protocol=https \ > > + file://0001-tests-fix-the-issue-of-cross-compilation-failure.patch \ > > + " > > -- > > 2.25.1 > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#220167): https://lists.openembedded.org/g/openembedded-core/message/220167 > Mute This Topic: https://lists.openembedded.org/mt/114107395/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch new file mode 100644 index 0000000000..2b54750e7a --- /dev/null +++ b/meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch @@ -0,0 +1,28 @@ +From a8c3996d3f8d9b8f3a2888b7062c1139263c5aba Mon Sep 17 00:00:00 2001 +From: Wen Yang <yellowriver2010@hotmail.com> +Date: Mon, 23 Jun 2025 02:06:53 +0800 +Subject: [PATCH] tests: fix the issue of cross compilation failure + +By replacing objcopy with MAKE_OBJCOPY, pstack could support both +native and cross compilation. + +Upstream-Status: Backport [https://github.com/peadar/pstack/pull/38] +--- + tests/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 71a62a7..bf11a04 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -38,7 +38,7 @@ SET_TARGET_PROPERTIES(noreturn PROPERTIES COMPILE_FLAGS "-O2 -g") + + add_custom_command( + OUTPUT basic-no-unwind-gen +- COMMAND objcopy --strip-debug --remove-section .eh_frame basic basic-no-unwind ++ COMMAND ${CMAKE_OBJCOPY} --strip-debug --remove-section .eh_frame basic basic-no-unwind + VERBATIM ) + + add_custom_target(basic-no-unwind ALL DEPENDS basic basic-no-unwind-gen) +-- +2.25.1 diff --git a/meta-oe/recipes-devtools/pstack/pstack.inc b/meta-oe/recipes-devtools/pstack/pstack.inc new file mode 100644 index 0000000000..9831a74d1a --- /dev/null +++ b/meta-oe/recipes-devtools/pstack/pstack.inc @@ -0,0 +1,39 @@ +SUMMARY = "A utility to print stack traces of running processes" +DESCRIPTION = "A from-scratch implementation of pstack using DWARF debugging and unwind information. \ +Works for C/C++, Go, Rust, and Python. A traditional pstack command can generally print a backtrace \ +of each thread in a running program, and sometimes from a core file. This version of pstack uses its \ +own self contained ELF and DWARF parsing library, libdwelf to parse the DWARF debug and unwind \ +information, to get a stack trace." +HOMEPAGE = "https://github.com/peadar/pstack" +SECTION = "devel" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=671019a96ba80415b696240ed2ca5e80" + +inherit cmake + +S = "${UNPACKDIR}/${BPN}-${PV}" +DEPENDS += "zlib xz libunwind elfutils" + +RDEPENDS:${PN} += "elfutils" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/pstack ${D}${bindir}/pstack + + install -d ${D}${libdir} + install -m 0755 ${B}/libprocman.so.${PV} ${D}${libdir}/libprocman.so.${PV} + ln -sf libprocman.so.${PV} ${D}${libdir}/libprocman.so + install -m 0755 ${B}/libdwelf.so.${PV} ${D}${libdir}/libdwelf.so.${PV} + ln -sf libdwelf.so.${PV} ${D}${libdir}/libdwelf.so +} + +PACKAGES = "${PN}" +FILES:${PN} = "${bindir}/pstack" +FILES:${PN} += "${libdir}/libprocman.so.${PV}" +FILES:${PN} += "${libdir}/libdwelf.so.${PV}" + +PACKAGES += "${PN}-dbg" +FILES:${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" + +PACKAGES += "${PN}-dev" +FILES:${PN}-dev += "${base_libdir}/*.so" diff --git a/meta-oe/recipes-devtools/pstack/pstack_2.10.bb b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb new file mode 100644 index 0000000000..cebc13d36c --- /dev/null +++ b/meta-oe/recipes-devtools/pstack/pstack_2.10.bb @@ -0,0 +1,33 @@ +SUMMARY = "A from-scratch implementation of pstack using DWARF debugging \ +and unwind information. Works for C/C++, Go, Rust, and Python." + +HOMEPAGE = "https://github.com/peadar/pstack" +SECTION = "devel/pstack" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ea061f8731d5e6a5761dfad951ef5f5f" + +DEPENDS = "tcl virtual/libx11 libxt zip-native" + +SRC_URI = "git://github.com/peadar/pstack;branch=master;tag=v${PV};protocol=https" +SRCREV = "a310df637d74917a1d3570c540bf3aef899d7e63" + +S = "${WORKDIR}/${BPN}${PV}" + +PACKAGES =+ "${PN}-lib" + +SOLIBS = ".so" +FILES_SOLIBSDEV = "" + +# isn't getting picked up by shlibs code +RDEPENDS:${PN} += "tk-lib" +RDEPENDS:${PN}:class-native = "" + +BBCLASSEXTEND = "native nativesdk" + +inherit binconfig + +SYSROOT_DIRS += "${bindir_crossscripts}" + +# Fix some paths that might be used by Tcl extensions +BINCONFIG_GLOB = "*Config.sh" diff --git a/meta-oe/recipes-devtools/pstack/pstack_git.bb b/meta-oe/recipes-devtools/pstack/pstack_git.bb new file mode 100644 index 0000000000..cc6721f9e3 --- /dev/null +++ b/meta-oe/recipes-devtools/pstack/pstack_git.bb @@ -0,0 +1,8 @@ +require pstack.inc + +SRCREV = "1e1734be3adb6d9c81b57c5cc3d0c8fbc43bdee3" +PV = "2.11" + +SRC_URI = "git://github.com/peadar/pstack.git;branch=master;protocol=https \ + file://0001-tests-fix-the-issue-of-cross-compilation-failure.patch \ + "
This recipe provides pstack for C/C++, Go, Rust, and Python. Signed-off-by: Wen Yang <wen.yang@linux.dev> --- ...e-issue-of-cross-compilation-failure.patch | 28 +++++++++++++ meta-oe/recipes-devtools/pstack/pstack.inc | 39 +++++++++++++++++++ .../recipes-devtools/pstack/pstack_2.10.bb | 33 ++++++++++++++++ meta-oe/recipes-devtools/pstack/pstack_git.bb | 8 ++++ 4 files changed, 108 insertions(+) create mode 100644 meta-oe/recipes-devtools/pstack/files/0001-tests-fix-the-issue-of-cross-compilation-failure.patch create mode 100644 meta-oe/recipes-devtools/pstack/pstack.inc create mode 100644 meta-oe/recipes-devtools/pstack/pstack_2.10.bb create mode 100644 meta-oe/recipes-devtools/pstack/pstack_git.bb