aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-kernel/minicoredumper
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-kernel/minicoredumper')
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch53
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch128
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch33
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/run-ptest12
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.bb (renamed from meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb)17
5 files changed, 74 insertions, 169 deletions
diff --git a/meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch b/meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch
new file mode 100644
index 0000000000..8b90d33e1b
--- /dev/null
+++ b/meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch
@@ -0,0 +1,53 @@
+From bb44bb643cd2a2f937331b4d1a76b03556b718a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 Jan 2024 11:36:41 -0800
+Subject: [PATCH] corestripper: Fix uninitialized warning
+
+Clang finds more open paths where ret can be uninitialized
+
+Fixes
+| ../../../git/src/minicoredumper/corestripper.c:2768:13: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
+| 2768 | } else if (di->core_fd >= 0) {
+| | ^~~~~~~~~~~~~~~~
+| ../../../git/src/minicoredumper/corestripper.c:2773:9: note: uninitialized use occurs here
+| 2773 | return ret;
+| | ^~~
+| ../../../git/src/minicoredumper/corestripper.c:2768:9: note: remove the 'if' if its condition is always true
+| 2768 | } else if (di->core_fd >= 0) {
+| | ^~~~~~~~~~~~~~~~~~~~~
+| ../../../git/src/minicoredumper/corestripper.c:2763:9: note: initialize the variable 'ret' to silence this warning
+| 2763 | int ret;
+| | ^
+| | = 0
+
+Upstream-Status: Submitted [https://github.com/diamon/minicoredumper/pull/15]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicoredumper/corestripper.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
+index 3eb9089..e9e3936 100644
+--- a/src/minicoredumper/corestripper.c
++++ b/src/minicoredumper/corestripper.c
+@@ -2707,7 +2707,7 @@ static int dump_data_content_file(struct dump_info *di,
+ char *tmp_path;
+ FILE *file;
+ int len;
+- int ret;
++ int ret = -1;
+
+ len = strlen(di->dst_dir) + strlen("/dumps/") + 32 +
+ strlen(dd->ident) + 1;
+@@ -2760,7 +2760,7 @@ out:
+ static int dump_data_content(struct dump_info *di, struct mcd_dump_data *dd,
+ const char *symname)
+ {
+- int ret;
++ int ret = -1;
+
+ if (dd->ident) {
+ /* dump to external file */
+--
+2.43.0
+
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 <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-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 <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-oe/recipes-kernel/minicoredumper/files/run-ptest b/meta-oe/recipes-kernel/minicoredumper/files/run-ptest
new file mode 100644
index 0000000000..6746132ce6
--- /dev/null
+++ b/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 "PASS: minicoredumper"
+else
+ echo "FAIL: minicoredumper"
+fi
diff --git a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.bb
index 0b934ee2d8..90e847c137 100644
--- a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb
+++ b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.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 = "ca6e7ad62b4cf984de84aa081024c4e45632cecb"
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 \
+ file://0001-corestripper-Fix-uninitialized-warning.patch \
"
S = "${WORKDIR}/git"
@@ -29,15 +27,18 @@ 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 -m 0644 ${UNPACKDIR}/minicoredumper.service ${D}${systemd_system_unitdir}
install -d ${D}${sysconfdir}/init.d
- install -m 0644 ${WORKDIR}/minicoredumper.init ${D}${sysconfdir}/init.d/minicoredumper
+ install -m 0755 ${UNPACKDIR}/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