diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-kernel')
9 files changed, 93 insertions, 169 deletions
diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch deleted file mode 100644 index 8d5b8b6cbb..0000000000 --- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 7a8c6a06c86e133e4346b1dc66483bd8d0d3c716 Mon Sep 17 00:00:00 2001 -From: John Ogness <john.ogness@linutronix.de> -Date: Tue, 24 Aug 2021 21:10:43 +0200 -Subject: [PATCH] minicoredumper: retry elf parsing as long as needed - -As was reported in github issue #2 ("maximum number of tries -insufficient, in rare cases, for elf parse"), the number of retries -for parsing a process may be insufficient. Rather than setting an -upper limit on the maximum number of retries, track the number of -headers seen. As long as the number of seen headers is greater than -the previous try, try again. - -In order to avoid introducing any new issues, preserve the behavior -of retrying at least 10 times, even if no new headers are seen. - -Reported-by: github.com/ssajal-wr -Signed-off-by: John Ogness <john.ogness@linutronix.de> - -Upstream-Status: Backport [7a8c6a06c86e133e4346b1dc66483bd8d0d3c716] - -Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> ---- - src/minicoredumper/corestripper.c | 30 +++++++++++++++++++++++------- - 1 file changed, 23 insertions(+), 7 deletions(-) - -diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c -index d96d1df..c96b350 100644 ---- a/src/minicoredumper/corestripper.c -+++ b/src/minicoredumper/corestripper.c -@@ -761,7 +761,7 @@ static int init_log(struct dump_info *di) - typedef int elf_parse_cb(struct dump_info *di, Elf *elf, GElf_Phdr *phdr); - - static int do_elf_ph_parse(struct dump_info *di, GElf_Phdr *type, -- elf_parse_cb *callback) -+ elf_parse_cb *callback, size_t *phnum_found) - { - GElf_Ehdr ehdr_mem; - GElf_Ehdr *ehdr; -@@ -770,6 +770,9 @@ static int do_elf_ph_parse(struct dump_info *di, GElf_Phdr *type, - size_t phnum; - size_t cnt; - -+ if (phnum_found) -+ *phnum_found = 0; -+ - /* start from beginning of core */ - if (lseek64(di->elf_fd, 0, SEEK_SET) == -1) { - info("lseek failed: %s", strerror(errno)); -@@ -809,6 +812,9 @@ static int do_elf_ph_parse(struct dump_info *di, GElf_Phdr *type, - goto out; - } - -+ if (phnum_found) -+ *phnum_found = phnum; -+ - for (cnt = 0; cnt < phnum; cnt++) { - GElf_Phdr phdr_mem; - GElf_Phdr *phdr; -@@ -891,7 +897,7 @@ static int vma_cb(struct dump_info *di, Elf *elf, GElf_Phdr *phdr) - /* - * Tries to parse the found ELF headers and reads all vmas from it. - */ --static int parse_vma_info(struct dump_info *di) -+static int parse_vma_info(struct dump_info *di, size_t *phnum_found) - { - unsigned long min_off = ULONG_MAX; - unsigned long max_len = 0; -@@ -911,7 +917,7 @@ static int parse_vma_info(struct dump_info *di) - memset(&type, 0, sizeof(type)); - type.p_type = PT_LOAD; - type.p_flags = PF_R; -- if (do_elf_ph_parse(di, &type, vma_cb) != 0) -+ if (do_elf_ph_parse(di, &type, vma_cb, phnum_found) != 0) - return -1; - - for (v = di->vma; v; v = v->next) { -@@ -1614,8 +1620,10 @@ int add_core_data(struct dump_info *di, off64_t dest_offset, size_t len, - */ - static int init_src_core(struct dump_info *di, int src) - { -+ size_t last_phnum = 0; - int tries = 0; - int ret = -1; -+ size_t phnum; - size_t len; - char *buf; - long pos; -@@ -1642,7 +1650,7 @@ again: - goto out; - - /* try to elf-parse the core to read vma info */ -- ret = parse_vma_info(di); -+ ret = parse_vma_info(di, &phnum); - - /* restore our position */ - if (lseek64(di->elf_fd, pos, SEEK_SET) == -1) -@@ -1653,9 +1661,17 @@ again: - - tries++; - -- /* maybe try again */ -- if (tries < 10) -+ if (phnum > last_phnum) { -+ /* new headers found, keep trying */ -+ last_phnum = phnum; - goto again; -+ } else if (tries < 10) { -+ /* -+ * even if no new headers are found, -+ * retry at least 10 times -+ */ -+ goto again; -+ } - - goto out; - } -@@ -2106,7 +2122,7 @@ static int dump_stacks(struct dump_info *di) - /* find and set the first task */ - memset(&type, 0, sizeof(type)); - type.p_type = PT_NOTE; -- do_elf_ph_parse(di, &type, note_cb); -+ do_elf_ph_parse(di, &type, note_cb, NULL); - } - - if (di->first_pid) --- -2.25.1 - diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch new file mode 100644 index 0000000000..05371e5cd6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch @@ -0,0 +1,37 @@ +From abaac31d1cb4d0ba0e8e9ef7f344e62de3b150de Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 4 Feb 2023 16:50:46 -0800 +Subject: [PATCH] minicoredumper_demo: Use 'optnone' attribute with clang + +clang does not support optimize("On") yet, therefore use optnone which +should give intended results with clang compiler + +Upstream-Status: Submitted [https://github.com/diamon/minicoredumper/pull/7] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/minicoredumper_demo/main.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/minicoredumper_demo/main.c b/src/minicoredumper_demo/main.c +index 65aac46..e60eb82 100644 +--- a/src/minicoredumper_demo/main.c ++++ b/src/minicoredumper_demo/main.c +@@ -11,8 +11,13 @@ + #include <sys/types.h> + + #include "minicoredumper.h" +- +-int __attribute__((optimize("O0"))) main(int argc, char *argv[]) ++int ++#ifdef __clang__ ++__attribute__((optnone)) ++#else ++__attribute__((optimize("O0"))) ++#endif ++main(int argc, char *argv[]) + { + char *str1 = "This is string 1."; + unsigned long val1 = 0x1abc123f; +-- +2.39.1 + diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch deleted file mode 100644 index 455e6f3181..0000000000 --- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5895caba6573e84f73f159d9e84cd1aa7e969f18 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 9 May 2021 14:37:00 -0700 -Subject: [PATCH] replace pthread_mutexattr_setrobust_np with - pthread_mutexattr_setrobust - -This is now part of standard POSIX function [1] - -Upstream-Status: Submitted [https://github.com/diamon/minicoredumper/pull/3] - -[1] https://man7.org/linux/man-pages/man3/pthread_mutexattr_setrobust_np.3.html - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/minicoredumper_regd/daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/minicoredumper_regd/daemon.c b/src/minicoredumper_regd/daemon.c -index 115ec92..b9ad1ea 100644 ---- a/src/minicoredumper_regd/daemon.c -+++ b/src/minicoredumper_regd/daemon.c -@@ -224,7 +224,7 @@ static int setup_shm(void) - - pthread_mutexattr_init(&attr); - pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT); -- pthread_mutexattr_setrobust_np(&attr, PTHREAD_MUTEX_ROBUST_NP); -+ pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST); - pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); - pthread_mutex_init(&sh->m, &attr); - --- -2.31.1 - diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/run-ptest b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/run-ptest new file mode 100644 index 0000000000..fbddc0774d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/files/run-ptest @@ -0,0 +1,12 @@ +#!/bin/sh + +echo minicoredumper_demo +echo expecting Segmentation fault with core dump ... + +minicoredumper_demo 6 & sleep 3 && minicoredumper_demo + +if ls /var/crash/ | grep minicoredumper; then + echo SUCCESS +else + echo FAIL +fi diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.2.bb index 0b934ee2d8..5763f845a6 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.2.bb @@ -7,17 +7,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=71827c617ec7b45a0dd23658347cc1e9 \ " DEPENDS = "elfutils dbus dbus-glib-native glib-2.0 dbus-glib util-linux json-c" -inherit autotools pkgconfig systemd update-rc.d +inherit autotools pkgconfig ptest systemd update-rc.d -SRCREV = "16a0d44f1725eaa93096eaa0e086f42ef4c2712c" - -PR .= "+git${SRCPV}" +SRCREV = "0bed11b3d69877ce59b1a71359349af60f2009ff" SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \ - file://0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch \ + file://0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch \ file://minicoredumper.service \ file://minicoredumper.init \ - file://0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch \ + file://run-ptest \ " S = "${WORKDIR}/git" @@ -29,6 +27,9 @@ INITSCRIPT_PACKAGES = "${PN}" INITSCRIPT_NAME:${PN} = "minicoredumper" INITSCRIPT_PARAMS:${PN} = "defaults 89" +EXTRA_OECONF:append = " \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '--with-minicoredumper_demo', '--without-libminicoredumper', d)} \ +" do_install:append() { rmdir ${D}${localstatedir}/run install -d ${D}/${sysconfdir}/minicoredumper diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch new file mode 100644 index 0000000000..930b90e289 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch @@ -0,0 +1,34 @@ +From 5d879cb4f23c613e16b3f479ab09bbb5ff340201 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 6 Feb 2023 17:02:41 -0800 +Subject: [PATCH] Replace std::bind2nd with generic lambda + +std::bind2nd is gone in c++17, therefore stop using it and replace it +with generic lambda from c++14 onwards + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libutil++/growable_vector.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libutil++/growable_vector.h b/libutil++/growable_vector.h +index 350246a..9846e1e 100644 +--- a/libutil++/growable_vector.h ++++ b/libutil++/growable_vector.h +@@ -93,9 +93,9 @@ public: + + /// return true if all elements have the default constructed value + bool zero() const { +- return std::find_if(container.begin(), container.end(), +- std::bind2nd(std::not_equal_to<T>(), T())) +- == container.end(); ++ return std::find_if(begin(container), end(container), ++ [&](auto const& elem) {return elem != T();}) ++ == end(container); + } + + private: +-- +2.39.1 + diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb index e6eec0ab05..335ab48bb2 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb @@ -31,6 +31,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ file://0009-Prevent-running-check-tests-on-host-if-cross-compili.patch \ file://0010-oprofile-Determine-the-root-home-directory-dynamical.patch \ file://0001-configure-Include-unistd.h-for-getpid-API.patch \ + file://0001-Replace-std-bind2nd-with-generic-lambda.patch \ " SRC_URI[sha256sum] = "7ba06f99d7c188389d20d1d5e53ee690c7733f87aa9af62bd664fa0ca235a412" diff --git a/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb index 81e8327032..2e8c5cbb8d 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/spidev-test/spidev-test.bb @@ -23,7 +23,7 @@ do_install() { PACKAGE_ARCH = "${MACHINE_ARCH}" python do_package:prepend() { - d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0]) + d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0]) } B = "${WORKDIR}/${BPN}-${PV}" diff --git a/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb b/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb index 47938969bb..e7e4ca50af 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb @@ -65,5 +65,5 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" # Even though the libusbip is set to version 0.0.1, set the package version to match kernel # e.g. usbip-tools-5.14.21-r0.qemux86_64.rpm for qemu package using kernel 5.14.21 python do_package:prepend() { - d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0]) + d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0]) }
\ No newline at end of file |