Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package crash-trace for openSUSE:Factory checked in at 2026-09-18 22:08:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crash-trace (Old) and /work/SRC/openSUSE:Factory/.crash-trace.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crash-trace" Fri Sep 18 22:08:12 2026 rev:3 rq:1378814 version:3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/crash-trace/crash-trace.changes 2022-11-20 19:47:18.385339237 +0100 +++ /work/SRC/openSUSE:Factory/.crash-trace.new.383539/crash-trace.changes 2026-09-18 22:08:53.080493020 +0200 @@ -1,0 +2,14 @@ +Mon Sep 14 22:09:15 UTC 2026 - Tony Jones <[email protected]> + +- Update crash-trace to latest upstream (bsc#1262945) + New patch: [primary fix] crash-trace-Fix-segmentation-fault-during-executing-trace-dump-s.patch + New patch: crash-trace-Makefile-set-DT_SONAME-to-trace.so.patch + New patch: crash-trace-Support-module-memory-layout-change-on-Linux-6.4.patch + +------------------------------------------------------------------- +Thu May 29 08:10:33 UTC 2025 - Petr Tesařík <[email protected]> + +- crash-trace-fix-arm.patch: Fix build for 32-bit Arm. +- crash-trace-fix-riscv64.patch: Fix build for RISCV64. + +------------------------------------------------------------------- New: ---- _scmsync.obsinfo build.specials.obscpio crash-trace-Fix-segmentation-fault-during-executing-trace-dump-s.patch crash-trace-Makefile-set-DT_SONAME-to-trace.so.patch crash-trace-Support-module-memory-layout-change-on-Linux-6.4.patch crash-trace-fix-arm.patch crash-trace-fix-riscv64.patch ----------(New B)---------- New:- Update crash-trace to latest upstream (bsc#1262945) New patch: [primary fix] crash-trace-Fix-segmentation-fault-during-executing-trace-dump-s.patch New patch: crash-trace-Makefile-set-DT_SONAME-to-trace.so.patch New: New patch: [primary fix] crash-trace-Fix-segmentation-fault-during-executing-trace-dump-s.patch New patch: crash-trace-Makefile-set-DT_SONAME-to-trace.so.patch New patch: crash-trace-Support-module-memory-layout-change-on-Linux-6.4.patch New: New patch: crash-trace-Makefile-set-DT_SONAME-to-trace.so.patch New patch: crash-trace-Support-module-memory-layout-change-on-Linux-6.4.patch New: - crash-trace-fix-arm.patch: Fix build for 32-bit Arm. - crash-trace-fix-riscv64.patch: Fix build for RISCV64. New:- crash-trace-fix-arm.patch: Fix build for 32-bit Arm. - crash-trace-fix-riscv64.patch: Fix build for RISCV64. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crash-trace.spec ++++++ --- /var/tmp/diff_new_pack.VRtgin/_old 2026-09-18 22:08:53.908527723 +0200 +++ /var/tmp/diff_new_pack.VRtgin/_new 2026-09-18 22:08:53.909527765 +0200 @@ -25,6 +25,11 @@ URL: https://github.com/fujitsu/crash-trace Source: https://github.com/fujitsu/crash-trace/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Patch1: %{name}-fix-aarch64-ppc64le.patch +Patch2: %{name}-fix-arm.patch +Patch3: %{name}-fix-riscv64.patch +Patch4: %{name}-Makefile-set-DT_SONAME-to-trace.so.patch +Patch5: %{name}-Support-module-memory-layout-change-on-Linux-6.4.patch +Patch6: %{name}-Fix-segmentation-fault-during-executing-trace-dump-s.patch BuildRequires: crash-devel Requires: trace-cmd ++++++ _scmsync.obsinfo ++++++ mtime: 1789734580 commit: 51af9405a094504323f8c06b1b43f376fe3c50a563a8bb1f10563cef866343af url: https://src.opensuse.org/kernel-kdump/crash-trace revision: 51af9405a094504323f8c06b1b43f376fe3c50a563a8bb1f10563cef866343af projectscmsync: https://src.opensuse.org/kernel-kdump/_ObsPrj ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-09-18 14:29:40.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ crash-trace-Fix-segmentation-fault-during-executing-trace-dump-s.patch ++++++ From: HATAYAMA Daisuke <[email protected]> Date: Wed, 5 Mar 2025 07:14:51 +0000 Subject: Fix segmentation fault during executing trace dump -s Git-repo: https://github.com/fujitsu/crash-trace.git Git-commit: 2106a9d04020192f6f286171a060c4d2300059b7 References: bsc#1262945 Currently, trace dump -s results in segmentation fault on the vmcore corresponding to kernel-core-6.13.5-200.fc41.x86_64: crash> trace dump -s trace_dump_dir Segmentation fault (core dumped) This is caused by the commit c5913a960dfa07d64397e6b591e6f0d40ea0b503 (trace: Support module memory layout change on Linux 6.4) that added support of the module memory layout change on Linux kernel 6.4, where the implementation on function dump_kallsyms() was overlooked. Fix this issue by introducing a new version of dump_kallsyms() for the new module memory layout. Signed-off-by: Tony Jones <[email protected]> --- trace.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/trace.c b/trace.c index 9e51707..dc5252e 100644 --- a/trace.c +++ b/trace.c @@ -1628,7 +1628,52 @@ static int dump_saved_cmdlines(const char *dump_tracing_dir) return 0; } -static int dump_kallsyms(const char *dump_tracing_dir) +#ifdef MODULE_MEMORY +static int dump_kallsyms_mod_v6_4(const char *dump_tracing_dir) +{ + char path[PATH_MAX]; + FILE *out; + int i, t; + struct syment *sp; + + snprintf(path, sizeof(path), "%s/kallsyms", dump_tracing_dir); + out = fopen(path, "w"); + if (out == NULL) + return -1; + + for (sp = st->symtable; sp < st->symend; sp++) + fprintf(out, "%lx %c %s\n", sp->value, sp->type, sp->name); + + for (i = 0; i < st->mods_installed; i++) { + struct load_module *lm = &st->load_modules[i]; + + for_each_mod_mem_type(t) { + if (!lm->symtable[t]) + continue; + + for (sp = lm->symtable[t]; sp <= lm->symend[t]; sp++) { + if (!strncmp(sp->name, "_MODULE_", strlen("_MODULE_"))) + continue; + + /* Currently sp->type for modules is not trusted */ + fprintf(out, "%lx %c %s\t[%s]\n", sp->value, 'm', + sp->name, lm->mod_name); + } + } + } + + fclose(out); + return 0; +} +#else +#define MODULE_MEMORY() (0) +static int dump_kallsyms_mod_v6_4(const char *dump_tracing_dir) +{ + return 0; +} +#endif + +static int dump_kallsyms_legacy(const char *dump_tracing_dir) { char path[PATH_MAX]; FILE *out; @@ -1700,7 +1745,10 @@ static int populate_ftrace_dir_tree(struct trace_instance *ti, if (flags & FTRACE_DUMP_SYMBOLS) { /* Dump all symbols of the kernel */ - dump_kallsyms(root); + if (MODULE_MEMORY()) + dump_kallsyms_mod_v6_4(root); + else + dump_kallsyms_legacy(root); } return TRUE; @@ -2263,7 +2311,6 @@ static void __save_proc_kallsyms_mod_v6_4(void) } } #else -#define MODULE_MEMORY() (0) static inline void __save_proc_kallsyms_mod_v6_4(void) { } ++++++ crash-trace-Makefile-set-DT_SONAME-to-trace.so.patch ++++++ From: HATAYAMA Daisuke <[email protected]> Date: Thu, 28 Jan 2021 00:08:35 -0500 Subject: Makefile: set DT_SONAME to trace.so Git-repo: https://github.com/fujitsu/crash-trace.git Git-commit: 153629a96b07a8ae96b0b28cce100fde9ea1398d References: bsc#1262945 Fedora never requires SONAME versioning for plugins according to the Packaging Guidelines: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning In cases where upstream ships unversioned .so library (so this is not needed for plugins, drivers, etc.), the packager MUST try to convince upstream to start versioning it. On the other hand, fedpkg lint still prints warning if the shared library doesn't have DT_SONAME. To surpress this, we set DT_SONAME field to trace.so for in case. Signed-off-by: HATAYAMA Daisuke <[email protected]> Signed-off-by: Tony Jones <[email protected]> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/Makefile +++ b/Makefile @@ -36,4 +36,4 @@ INCDIR=/usr/include/crash all: trace.so trace.so: $(INCDIR)/defs.h trace.c - gcc $(RPM_OPT_FLAGS) -Wall -I$(INCDIR) -nostartfiles -shared -rdynamic -o trace.so trace.c -fPIC -D$(TARGET) $(TARGET_CFLAGS) + gcc $(RPM_OPT_FLAGS) -Wall -I$(INCDIR) -nostartfiles -shared -rdynamic -Wl,-soname,trace.so -o trace.so trace.c -fPIC -D$(TARGET) $(TARGET_CFLAGS) ++++++ crash-trace-Support-module-memory-layout-change-on-Linux-6.4.patch ++++++ From: HATAYAMA Daisuke <[email protected]> Date: Tue, 26 Sep 2023 02:55:49 -0400 Subject: trace: Support module memory layout change on Linux 6.4 Git-repo: https://github.com/fujitsu/crash-trace.git Git-commit: c5913a960dfa07d64397e6b591e6f0d40ea0b503 References: bsc#1262945 Linux kernel introduced new module memory layout on Linux 6.4 at the commit ac3b432 (module: replace module_layout with module_memory) and crash utility supported it at the commit 7750e61 (Support module memory layout change on Linux 6.4). In the change, crash utility changed definition and usage of data structure for kernel modules. However, crash trace also refers to the data structures. As a result, with the crash utility with the change, crash trace command results in segmentation fault: crash> extend trace.so /usr/lib64/crash/extensions/trace.so: shared object loaded crash> trace show Segmentation fault (core dumped) To fix this issue, let's support the new definition and usage of struct load_module in crash trace. This is at the same time intended for crash trace to support the new module memory layout of the Linux kernel. On the other hand, there is still inevitable dependency left to size of struct load_module, one of the data structures of crash utility, in crash trace. struct symbol_table_data holds an array of objects of struct load_module in member variable load_modules and we need to know size of struct load_module in advance to refer to its elements. struct symbol_table_data { ...snip... int mods_installed; struct load_module *current; struct load_module *load_modules; Due to this, once crash trace is built with the defs.h including change of size of struct load_module, it can never be used with the older crash utility that was built with a different size of struct load_module. Because there is no preferable way to tackle the dependency without altering implementation of crash utility, we have no choice but accept breaking backward-compatibility for the time being. Signed-off-by: HATAYAMA Daisuke <[email protected]> Signed-off-by: Tony Jones <[email protected]> --- trace.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/trace.c b/trace.c index c33907f..9e51707 100644 --- a/trace.c +++ b/trace.c @@ -2219,14 +2219,11 @@ fail: return -1; } -static int save_proc_kallsyms(int fd) +static void __save_proc_kallsyms_mod_legacy(void) { int i; struct syment *sp; - for (sp = st->symtable; sp < st->symend; sp++) - tmp_fprintf("%lx %c %s\n", sp->value, sp->type, sp->name); - for (i = 0; i < st->mods_installed; i++) { struct load_module *lm = &st->load_modules[i]; @@ -2239,6 +2236,50 @@ static int save_proc_kallsyms(int fd) sp->name, lm->mod_name); } } +} + +#ifdef MODULE_MEMORY +static void __save_proc_kallsyms_mod_v6_4(void) +{ + int i, t; + struct syment *sp; + + for (i = 0; i < st->mods_installed; i++) { + struct load_module *lm = &st->load_modules[i]; + + for_each_mod_mem_type(t) { + if (!lm->symtable[t]) + continue; + + for (sp = lm->symtable[t]; sp <= lm->symend[t]; sp++) { + if (!strncmp(sp->name, "_MODULE_", strlen("_MODULE_"))) + continue; + + /* Currently sp->type for modules is not trusted */ + tmp_fprintf("%lx %c %s\t[%s]\n", sp->value, 'm', + sp->name, lm->mod_name); + } + } + } +} +#else +#define MODULE_MEMORY() (0) +static inline void __save_proc_kallsyms_mod_v6_4(void) +{ +} +#endif + +static int save_proc_kallsyms(int fd) +{ + struct syment *sp; + + for (sp = st->symtable; sp < st->symend; sp++) + tmp_fprintf("%lx %c %s\n", sp->value, sp->type, sp->name); + + if (MODULE_MEMORY()) + __save_proc_kallsyms_mod_v6_4(); + else + __save_proc_kallsyms_mod_legacy(); if (tmp_file_record_size4(fd)) return -1; ++++++ crash-trace-fix-aarch64-ppc64le.patch ++++++ --- /var/tmp/diff_new_pack.VRtgin/_old 2026-09-18 22:08:54.082535016 +0200 +++ /var/tmp/diff_new_pack.VRtgin/_new 2026-09-18 22:08:54.089535309 +0200 @@ -1,6 +1,7 @@ From: Petr Tesarik <[email protected]> Subject: Fix build for ppc64le and arm64 -Upstream: submitted, https://github.com/fujitsu/crash-trace/pull/3 +Upstream: merged +Git-commit: 17c35d075f067d80fee112ae18365b8defa2ca5a Build fails for AArch64 and little-endian IBM POWER, because TARGET is undefined, and the compiler complains like this: ++++++ crash-trace-fix-arm.patch ++++++ From: Petr Tesarik <[email protected]> Subject: Fix build for 32-bit arm Upstream: submitted, https://github.com/fujitsu/crash-trace/pull/5 --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) --- a/Makefile +++ b/Makefile @@ -30,6 +30,10 @@ ifeq ($(shell arch), aarch64) TARGET=ARM64 TARGET_CFLAGS= endif +ifeq ($(patsubst arm%,arm,$(shell arch)), arm) + TARGET=ARM + TARGET_CFLAGS= +endif INCDIR=/usr/include/crash ++++++ crash-trace-fix-riscv64.patch ++++++ From: Petr Tesarik <[email protected]> Subject: Fix build for 32-bit arm Upstream: submitted, https://github.com/fujitsu/crash-trace/pull/5 --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) --- a/Makefile +++ b/Makefile @@ -34,6 +34,10 @@ ifeq ($(patsubst arm%,arm,$(shell arch)) TARGET=ARM TARGET_CFLAGS= endif +ifeq ($(shell arch), riscv64) + TARGET=RISCV64 + TARGET_CFLAGS= +endif INCDIR=/usr/include/crash
