From 5c43f2b9a15bc21d1532233b958cbf5abd29ad14 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 4 Feb 2023 16:58:22 -0800 Subject: minicoredumper: Upgrade to 2.0.2 release Drop patches already upstreamed. Add patch to fix tests with clang compiler Signed-off-by: Khem Raj --- ...umper-retry-elf-parsing-as-long-as-needed.patch | 128 --------------------- ...per_demo-Use-optnone-attribute-with-clang.patch | 37 ++++++ ...read_mutexattr_setrobust_np-with-pthread_.patch | 33 ------ .../minicoredumper/minicoredumper_2.0.1.bb | 52 --------- .../minicoredumper/minicoredumper_2.0.2.bb | 49 ++++++++ 5 files changed, 86 insertions(+), 213 deletions(-) delete mode 100644 meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch create mode 100644 meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch delete mode 100644 meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch delete mode 100644 meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb create mode 100644 meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.2.bb (limited to 'meta-oe/recipes-kernel/minicoredumper') diff --git a/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch b/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-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 -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 - -Upstream-Status: Backport [7a8c6a06c86e133e4346b1dc66483bd8d0d3c716] - -Signed-off-by: Sakib Sajal ---- - 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-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch b/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-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 +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 +--- + 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 + + #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-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch b/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch deleted file mode 100644 index 455e6f3181..0000000000 --- a/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 -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 ---- - 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-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb deleted file mode 100644 index 992de014f4..0000000000 --- a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \ -to allow minimal and customized crash dumps" -LICENSE = " LGPL-2.1-only & BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=71827c617ec7b45a0dd23658347cc1e9 \ - file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \ - file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \ - " -DEPENDS = "elfutils dbus dbus-glib-native glib-2.0 dbus-glib util-linux json-c" - -inherit autotools pkgconfig ptest systemd update-rc.d - -SRCREV = "16a0d44f1725eaa93096eaa0e086f42ef4c2712c" - -PR .= "+git${SRCPV}" - -SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \ - file://0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch \ - file://minicoredumper.service \ - file://minicoredumper.init \ - file://0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch \ - file://run-ptest \ - " - -S = "${WORKDIR}/git" - -SYSTEMD_SERVICE:${PN} = "minicoredumper.service" -SYSTEMD_AUTO_ENABLE = "enable" - -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 - cp -rf ${S}/etc/* ${D}/${sysconfdir}/ - - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/minicoredumper.service ${D}${systemd_system_unitdir} - install -d ${D}${sysconfdir}/init.d - install -m 0644 ${WORKDIR}/minicoredumper.init ${D}${sysconfdir}/init.d/minicoredumper - - # correct path of minicoredumper - sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${sysconfdir}/init.d/minicoredumper - sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${systemd_system_unitdir}/minicoredumper.service -} - -# http://errors.yoctoproject.org/Errors/Details/186966/ -COMPATIBLE_HOST:libc-musl = 'null' diff --git a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.2.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.2.bb new file mode 100644 index 0000000000..5763f845a6 --- /dev/null +++ b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.2.bb @@ -0,0 +1,49 @@ +SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \ +to allow minimal and customized crash dumps" +LICENSE = " LGPL-2.1-only & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=71827c617ec7b45a0dd23658347cc1e9 \ + file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \ + file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \ + " +DEPENDS = "elfutils dbus dbus-glib-native glib-2.0 dbus-glib util-linux json-c" + +inherit autotools pkgconfig ptest systemd update-rc.d + +SRCREV = "0bed11b3d69877ce59b1a71359349af60f2009ff" + +SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \ + file://0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch \ + file://minicoredumper.service \ + file://minicoredumper.init \ + file://run-ptest \ + " + +S = "${WORKDIR}/git" + +SYSTEMD_SERVICE:${PN} = "minicoredumper.service" +SYSTEMD_AUTO_ENABLE = "enable" + +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 + cp -rf ${S}/etc/* ${D}/${sysconfdir}/ + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/minicoredumper.service ${D}${systemd_system_unitdir} + install -d ${D}${sysconfdir}/init.d + install -m 0644 ${WORKDIR}/minicoredumper.init ${D}${sysconfdir}/init.d/minicoredumper + + # correct path of minicoredumper + sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${sysconfdir}/init.d/minicoredumper + sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${systemd_system_unitdir}/minicoredumper.service +} + +# http://errors.yoctoproject.org/Errors/Details/186966/ +COMPATIBLE_HOST:libc-musl = 'null' -- cgit v1.2.3-54-g00ecf