From 9a05bf8db6a842b2f09e0a0033578fc47d4c776a Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 28 Apr 2023 17:53:04 -0400 Subject: [PATCH 1/7] upstream release --- rhbz1997192.patch | 50 ------------------------------ rhbz2145242.patch | 30 ------------------ rhbz2149223.patch | 78 ----------------------------------------------- rhbz2149666.patch | 73 -------------------------------------------- rhbz2154430.patch | 72 ------------------------------------------- sources | 2 +- systemtap.spec | 51 ++++++++++++++++++------------- 7 files changed, 30 insertions(+), 326 deletions(-) delete mode 100644 rhbz1997192.patch delete mode 100644 rhbz2145242.patch delete mode 100644 rhbz2149223.patch delete mode 100644 rhbz2149666.patch delete mode 100644 rhbz2154430.patch diff --git a/rhbz1997192.patch b/rhbz1997192.patch deleted file mode 100644 index 4500e85..0000000 --- a/rhbz1997192.patch +++ /dev/null @@ -1,50 +0,0 @@ -commit 47cab810bb7ea315a2dec23c2f61e7ba74515b82 -Author: Martin Cermak -Date: Fri Dec 16 16:08:20 2022 -0500 - - tapset: nfs.proc.commit_done compilation on some kernels - - Correct: - 9.0 Server x86_64 # stap -vp3 nfs.proc.commit_done.stp - - Pass 1: parsed user script and 482 library scripts using 108088virt/88468res/12460shr/75476data kb, in 190usr/60sys/501real ms. - semantic error: invalid access '->task' vs 'void*': operator '->' at /usr/share/systemtap/tapset/linux/nfs_proc.stpm:16:21 - source: ( get_ip(&@nfs_data->task) ) - ^ - in expansion of macro: operator '@_nfs_data_server_ip' at /usr/share/systemtap/tapset/linux/nfs_proc.stp:1421:15 - source: server_ip = @_nfs_data_server_ip($task->tk_calldata) - ^ - -diff --git a/tapset/linux/nfs_proc.stp b/tapset/linux/nfs_proc.stp -index 9b1f65f5f..4413384f9 100644 ---- a/tapset/linux/nfs_proc.stp -+++ b/tapset/linux/nfs_proc.stp -@@ -1442,10 +1442,11 @@ probe nfs.proc3.commit_done = kernel.function("nfs3_commit_done") !, - valid = @_nfs_data_valid($data) - } - else { -- server_ip = @_nfs_data_server_ip($task->tk_calldata) -- prot = @_nfs_data_prot($task->tk_calldata) -- count = @_nfs_data_res_count($task->tk_calldata) -- valid = @_nfs_data_valid($task->tk_calldata) -+ _tk_calldata=@choose_defined($task->tk_calldata, @cast($task, "rpc_task", "kernel:nfs")->tk_calldata) -+ server_ip = @_nfs_data_server_ip(_tk_calldata) -+ prot = @_nfs_data_prot(_tk_calldata) -+ count = @_nfs_data_res_count(_tk_calldata) -+ valid = @_nfs_data_valid(_tk_calldata) - } - timestamp = 0 - version = 3 -diff --git a/tapset/linux/nfs_proc.stpm b/tapset/linux/nfs_proc.stpm -index 8576c0f33..4fe40b2a5 100644 ---- a/tapset/linux/nfs_proc.stpm -+++ b/tapset/linux/nfs_proc.stpm -@@ -13,7 +13,7 @@ - - @define _nfs_data_server_ip(nfs_data) - %( -- ( get_ip(&@nfs_data->task) ) -+ ( get_ip(@choose_defined(&@nfs_data->task, &@cast(@nfs_data, "nfs_commit_data", "kernel:nfs")->task)) ) - %) - - @define _nfs_data_prot(nfs_data) diff --git a/rhbz2145242.patch b/rhbz2145242.patch deleted file mode 100644 index 1853a64..0000000 --- a/rhbz2145242.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 578e60102871d11ed8c18d36f6286f3a96258d8f -Author: Ryan Goldberg -Date: Thu Dec 1 16:15:44 2022 -0500 - - PR29676: Wildcard expansion fix for labels - - PR29676, introduced an bug where function symbols from the symbol - table were expanded in the function component resulting in wildcards - not being expanded in labels. This fix, removes the issue by restricting - the symbol table query to probes which don't need further debuginfo to - expand. - -diff --git a/tapsets.cxx b/tapsets.cxx -index 0ec71ebda..46b10f26e 100644 ---- a/tapsets.cxx -+++ b/tapsets.cxx -@@ -1256,7 +1256,11 @@ dwarf_query::handle_query_module() - // in the symbol table but not in dwarf and minidebuginfo is - // located in the gnu_debugdata section, alias_dupes checking - // is done before adding any probe points -- if(!pending_interrupts) -+ // PR29676. Some probes require additional debuginfo -+ // to expand wildcards (ex. .label, .callee). Since the debuginfo is -+ // not available, don't bother looking in the symbol table for these results. -+ // This can result in 0 results, if there is no dwarf info present -+ if(!pending_interrupts && !(has_label || has_callee || has_callees_num)) - query_module_symtab(); - } - - diff --git a/rhbz2149223.patch b/rhbz2149223.patch deleted file mode 100644 index 75ba486..0000000 --- a/rhbz2149223.patch +++ /dev/null @@ -1,78 +0,0 @@ -commit 05eb6742c169226ae09f1737aa8b9dc1dc12adb5 -Author: Mark Wielaard -Date: Tue Nov 29 18:50:58 2022 +0100 - - Handle DWARF5 DW_OP_implicit_pointer and DW_OP_entry_value - - These are the same as the GNU extensions for older DWARF, - DW_OP_GNU_implicit_pointer and DW_GNU_entry_value. - -diff --git a/loc2stap.cxx b/loc2stap.cxx -index efc78cc57..53316a480 100644 ---- a/loc2stap.cxx -+++ b/loc2stap.cxx -@@ -23,6 +23,11 @@ - #define DW_OP_GNU_entry_value 0xf3 - #endif - -+#if ! _ELFUTILS_PREREQ(0, 171) -+#define DW_OP_entry_value 0xa3 -+#define DW_OP_implicit_pointer 0xa0 -+#endif -+ - #define N_(x) x - - -@@ -372,7 +377,7 @@ location_context::translate (const Dwarf_Op *expr, const size_t len, - DIE ("operations follow DW_OP_implicit_value"); - - if (implicit_pointer != NULL) -- DIE ("operations follow DW_OP_GNU_implicit_pointer"); -+ DIE ("operations follow DW_OP implicit_pointer"); - } - - switch (expr[i].atom) -@@ -662,6 +667,7 @@ location_context::translate (const Dwarf_Op *expr, const size_t len, - - #if _ELFUTILS_PREREQ (0, 149) - case DW_OP_GNU_implicit_pointer: -+ case DW_OP_implicit_pointer: - implicit_pointer = &expr[i]; - /* Fake top of stack: implicit_pointer being set marks it. */ - PUSH(NULL); -@@ -684,10 +690,11 @@ location_context::translate (const Dwarf_Op *expr, const size_t len, - break; - - case DW_OP_GNU_entry_value: -+ case DW_OP_entry_value: - { - expression *result = handle_GNU_entry_value (expr[i]); - if (result == NULL) -- DIE("DW_OP_GNU_entry_value unable to resolve value"); -+ DIE("DW_OP entry_value unable to resolve value"); - PUSH(result); - } - break; -@@ -1248,7 +1255,8 @@ location_context::location_relative (const Dwarf_Op *expr, size_t len, - break; - - case DW_OP_GNU_entry_value: -- DIE ("unhandled DW_OP_GNU_entry_value"); -+ case DW_OP_entry_value: -+ DIE ("unhandled DW_OP entry_value"); - break; - - default: -diff --git a/testsuite/systemtap.base/dw_entry_value.exp b/testsuite/systemtap.base/dw_entry_value.exp -index 7339fc5fa..b728fa7ff 100644 ---- a/testsuite/systemtap.base/dw_entry_value.exp -+++ b/testsuite/systemtap.base/dw_entry_value.exp -@@ -10,7 +10,7 @@ if { $res != "" } { - pass "$test: compiled $test.c" - } - --if { ![catch { exec eu-readelf -w $test | grep GNU_entry_value }] } { -+if { ![catch { exec eu-readelf -w $test | grep entry_value: }] } { - stap_run $test no_load $all_pass_string $srcdir/$subdir/$test.stp -c ./${test} -w - } else { - untested "$test: no DW_OP_GNU_entry_value found" diff --git a/rhbz2149666.patch b/rhbz2149666.patch deleted file mode 100644 index 74be846..0000000 --- a/rhbz2149666.patch +++ /dev/null @@ -1,73 +0,0 @@ -commit 7eed8d1fef36997b9e4c1d9cdb67643483a51e56 -Author: William Cohen -Date: Fri Nov 4 11:12:05 2022 -0400 - - Ensure that SystemTap runtime uses smp_processor_id() in proper context - - There were cases on Fedora 36 and Rawhide running kernels with - CONFIG_DEBUG_PREEMPT=y where systemtap scripts would trigger kernel - log messages like the following: - - [ 257.544406] check_preemption_disabled: 4 callbacks suppressed - [ 257.544409] BUG: using smp_processor_id() in preemptible [00000000] code: staprun/2106 - [ 257.544465] caller is _stp_runtime_context_trylock+0x12/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106] - [ 257.544507] CPU: 0 PID: 2106 Comm: staprun Tainted: G OE ------- --- 6.1.0-0.rc2.20221028git23758867219c.24.fc38.x86_64 #1 - [ 257.544544] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-1.fc36 04/01/2014 - [ 257.544571] Call Trace: - [ 257.544583] - [ 257.544593] dump_stack_lvl+0x5b/0x77 - [ 257.544620] check_preemption_disabled+0xe1/0xf0 - [ 257.544641] _stp_runtime_context_trylock+0x12/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106] - [ 257.544673] _stp_runtime_entryfn_get_context+0xb/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106] - [ 257.544705] _stp_ctl_send+0x76/0x1e0 [stap_e36600406768aeefd49daf9fc7a3d23c_2106] - [ 257.544735] _stp_transport_init+0x71a/0x860 [stap_e36600406768aeefd49daf9fc7a3d23c_2106] - [ 257.544771] ? kallsyms_on_each_symbol+0x30/0x30 [stap_e36600406768aeefd49daf9fc7a3d23c_2106] - [ 257.544803] do_one_initcall+0x6b/0x320 - [ 257.544827] do_init_module+0x4a/0x200 - [ 257.544844] __do_sys_init_module+0x16a/0x1a0 - [ 257.544870] do_syscall_64+0x58/0x80 - [ 257.544885] ? up_read+0x17/0x20 - [ 257.544902] ? lock_is_held_type+0xe8/0x140 - [ 257.544921] ? asm_exc_page_fault+0x22/0x30 - [ 257.544939] ? lockdep_hardirqs_on+0x7d/0x100 - [ 257.544956] entry_SYSCALL_64_after_hwframe+0x63/0xcd - [ 257.544975] RIP: 0033:0x7f3cde12f5de - [ 257.544992] Code: 48 8b 0d 35 68 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 02 68 0c 00 f7 d8 64 89 01 48 - [ 257.545010] RSP: 002b:00007ffc5170c418 EFLAGS: 00000246 ORIG_RAX: 00000000000000af - [ 257.545010] RAX: ffffffffffffffda RBX: 0000563620bd4020 RCX: 00007f3cde12f5de - [ 257.545010] RDX: 0000563620bd4020 RSI: 0000000000040ea0 RDI: 00007f3cde44a010 - [ 257.545010] RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000 - [ 257.545010] R10: 0000000000000053 R11: 0000000000000246 R12: 00007ffc5170c510 - [ 257.545010] R13: 00007f3cde44a010 R14: 00007ffc5170c440 R15: 00007f3cde4631e8 - [ 257.545010] - - This issue was introduced by git commit 1641b6e7ea which added a fast - path check that used smp_processor_id() without first having a - preempt_disable(). The code now ensures that preemption is disabled - before using the smp_processor_id(). - -diff --git a/runtime/linux/runtime_context.h b/runtime/linux/runtime_context.h -index 3ed3cbd22..ee3870f32 100644 ---- a/runtime/linux/runtime_context.h -+++ b/runtime/linux/runtime_context.h -@@ -49,13 +49,18 @@ static bool _stp_runtime_context_trylock(void) - { - bool locked; - -+ /* Need to disable preemption because of the smp_processor_id() call -+ in _stp_runtime_get_context(). */ -+ preempt_disable(); -+ - /* fast path to ignore new online CPUs without percpu context memory - * allocations. this also serves as an extra safe guard for NULL context - * pointers. */ -- if (unlikely(_stp_runtime_get_context() == NULL)) -+ if (unlikely(_stp_runtime_get_context() == NULL)) { -+ preempt_enable_no_resched(); - return false; -+ } - -- preempt_disable(); - locked = atomic_add_unless(&_stp_contexts_busy_ctr, 1, INT_MAX); - if (!locked) - preempt_enable_no_resched(); diff --git a/rhbz2154430.patch b/rhbz2154430.patch deleted file mode 100644 index 0e6a7c2..0000000 --- a/rhbz2154430.patch +++ /dev/null @@ -1,72 +0,0 @@ -commit 8f3498781413a710dc9e128f5a96891a6a18fc52 -Author: Martin Cermak -Date: Wed Dec 14 17:37:58 2022 +0100 - - PR29766: kernel.function("__set_page_dirty_buffers") not found in vfs.stp - - Updates needed for 6.1.0-65.fc38 compatibility. - -diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp -index e3c1a3032..aebeb3fc0 100644 ---- a/tapset/linux/vfs.stp -+++ b/tapset/linux/vfs.stp -@@ -822,13 +822,15 @@ probe vfs.buffer_migrate_page.return = - } - - /* default if aop not set, __set_page_dirty_nobuffers usually used if set */ --probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers") -+/* block_dirty_folio related to kernel commit e621900ad28b748e058b81d6078 */ -+probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")!, -+ kernel.function("block_dirty_folio") - { -- dev = __page_dev($page) -- devname = __find_bdevname(dev, __page_bdev($page)) -- ino = __page_ino($page) -+ dev = __page_dev(@choose_defined($page, $folio)) -+ devname = __find_bdevname(dev, __page_bdev(@choose_defined($page, $folio))) -+ ino = __page_ino(@choose_defined($page, $folio)) - -- index = __page_index($page) -+ index = __page_index(@choose_defined($page, $folio)) - - name = "__set_page_dirty_buffers" - argstr = sprintf("%d", index) -@@ -837,7 +839,8 @@ probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers") - units = "pages" - } - probe vfs.__set_page_dirty_buffers.return = -- kernel.function("__set_page_dirty_buffers").return -+ kernel.function("__set_page_dirty_buffers").return!, -+ kernel.function("block_dirty_folio") - { - name = "__set_page_dirty_buffers" - retstr = sprintf("%d", $return) -@@ -914,8 +917,9 @@ probe __vfs.ext4_mpage_readpages.return = - - - /* newer style */ -+/* add_to_page_cache_locked removed per kernel commit f00654007fe1c15 */ - probe vfs.__add_to_page_cache = -- kernel.function("add_to_page_cache_locked"), -+ kernel.function("add_to_page_cache_locked") !, - kernel.function("add_to_page_cache_lru") - { } - -@@ -939,7 +943,7 @@ probe vfs.add_to_page_cache = - - /* newer style */ - probe vfs.__add_to_page_cache.return = -- kernel.function("add_to_page_cache_locked").return, -+ kernel.function("add_to_page_cache_locked").return !, - kernel.function("add_to_page_cache_lru").return - { } - -@@ -958,7 +962,7 @@ probe vfs.add_to_page_cache.return = - - probe vfs.remove_from_page_cache = - kernel.function("__delete_from_page_cache") !, -- kernel.function("__remove_from_page_cache") -+ kernel.function("__remove_from_page_cache") ? - { - dev = __page_dev($page) - devname = __find_bdevname(dev, __page_bdev($page)) diff --git a/sources b/sources index 9266c31..6711998 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (systemtap-4.8.tar.gz) = fdcbc48ba17b2155c1419d99147a4cfbee2e69db945bfd0e6881b71ab11165bd23ea7ce9456856ae36807fb18f9934880a6b7c44456b63833ea260038744d9f2 +SHA512 (systemtap-4.9.tar.gz) = a2736223fee0c801c36719a0245f31ed7e2e63c30bb7d5cab631dd57e4eb10e04abf2c9b272bda2a17c207c9dd163a1eb8a3e0759eda0c781946e644625510b7 diff --git a/systemtap.spec b/systemtap.spec index e17cf7a..fd80232 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -121,8 +121,9 @@ m stapdev stapdev Name: systemtap -Version: 4.8 -Release: 3%{?release_override}%{?dist} +# PRERELEASE +Version: 4.9 +Release: 1%{?release_override}%{?dist} # for version, see also configure.ac @@ -141,6 +142,7 @@ Release: 3%{?release_override}%{?dist} # systemtap-runtime-virtguest udev rules, init scripts/systemd service, req:-runtime # systemtap-runtime-python2 HelperSDT python2 module, req:-runtime # systemtap-runtime-python3 HelperSDT python3 module, req:-runtime +# systemtap-jupyter /usr/bin/stap-jupyter-* interactive-notebook req:systemtap # # Typical scenarios: # @@ -158,14 +160,6 @@ License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz -Patch1: rhbz1997192.patch -Patch2: rhbz2145242.patch -Patch3: rhbz2149223.patch -Patch4: rhbz2149666.patch -Patch5: rhbz2154430.patch - - - # Build* BuildRequires: make BuildRequires: gcc-c++ @@ -578,17 +572,23 @@ This package installs the services necessary on a virtual machine for a systemtap-runtime-virthost machine to execute systemtap scripts. %endif +%if %{with_python3} && %{with_monitor} +%package jupyter +Summary: ISystemtap jupyter kernel and examples +License: GPLv2+ +URL: http://sourceware.org/systemtap/ +Requires: systemtap = %{version}-%{release} + +%description jupyter +This package includes files needed to build and run +the interactive systemtap Jupyter kernel, either locally +or within a container. +%endif # ------------------------------------------------------------------------ %prep %setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 - %build # Enable/disable the dyninst pure-userspace backend @@ -1289,6 +1289,15 @@ exit 0 %{_sbindir}/stap-exporter %endif +%if %{with_python3} && %{with_monitor} +%files jupyter +%{_bindir}/stap-jupyter-container +%{_bindir}/stap-jupyter-install +%{_mandir}/man1/stap-jupyter.1* +%dir %{_datadir}/systemtap +%{_datadir}/systemtap/interactive-notebook +%endif + # ------------------------------------------------------------------------ # Future new-release entries should be of the form @@ -1298,16 +1307,14 @@ exit 0 # PRERELEASE %changelog -* Wed Feb 08 2023 Frank Ch. Eigler - 4.8-3 -- backport several RHEL/upstream patches - -* Sat Jan 21 2023 Fedora Release Engineering - 4.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild +* Fri Apr 28 2023 Frank Ch. Eigler - 4.9-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases * Thu Nov 03 2022 Serhei Makarov - 4.8-1 - Upstream release, see wiki page below for detailed notes. https://sourceware.org/systemtap/wiki/SystemTapReleases - + * Mon May 02 2022 Frank Ch. Eigler - 4.7-1 - Upstream release, see wiki page below for detailed notes. https://sourceware.org/systemtap/wiki/SystemTapReleases From e2c1466a4af46786740fca447c658626f4abb80c Mon Sep 17 00:00:00 2001 From: William Cohen Date: Thu, 10 Aug 2023 11:43:11 -0400 Subject: [PATCH 2/7] Support for linux 6.4 kernels (rhbz2230079). --- rhbz2230079.patch | 30 +++++++ rhbz2230079a.patch | 216 +++++++++++++++++++++++++++++++++++++++++++++ rhbz2230079b.patch | 41 +++++++++ rhbz2230079c.patch | 25 ++++++ rhbz2230079d.patch | 26 ++++++ rhbz2230079e.patch | 37 ++++++++ rhbz2230079f.patch | 59 +++++++++++++ rhbz2230079g.patch | 47 ++++++++++ systemtap.spec | 23 ++++- 9 files changed, 503 insertions(+), 1 deletion(-) create mode 100644 rhbz2230079.patch create mode 100644 rhbz2230079a.patch create mode 100644 rhbz2230079b.patch create mode 100644 rhbz2230079c.patch create mode 100644 rhbz2230079d.patch create mode 100644 rhbz2230079e.patch create mode 100644 rhbz2230079f.patch create mode 100644 rhbz2230079g.patch diff --git a/rhbz2230079.patch b/rhbz2230079.patch new file mode 100644 index 0000000..0a4fe5e --- /dev/null +++ b/rhbz2230079.patch @@ -0,0 +1,30 @@ +commit ff265fa1ed86b85e021ec0f16a28ab48c237414a +Author: Yichun Zhang (agentzh) +Date: Sat May 6 15:21:14 2023 -0700 + + PR30405: stapkp_init(): we should not disable preemption around the kallsyms_on_each_symbol() call + +diff --git a/runtime/linux/kprobes.c b/runtime/linux/kprobes.c +index 09f0e0665..1875092c5 100644 +--- a/runtime/linux/kprobes.c ++++ b/runtime/linux/kprobes.c +@@ -763,9 +763,7 @@ stapkp_init(struct stap_kprobe_probe *probes, + #ifdef STAPCONF_MODULE_MUTEX + mutex_lock(&module_mutex); + #endif +- preempt_disable(); + kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); +- preempt_enable(); + #ifdef STAPCONF_MODULE_MUTEX + mutex_unlock(&module_mutex); + #endif +@@ -835,9 +833,7 @@ stapkp_refresh(const char *modname, + #ifdef STAPCONF_MODULE_MUTEX + mutex_lock(&module_mutex); + #endif +- preempt_disable(); + kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); +- preempt_enable(); + #ifdef STAPCONF_MODULE_MUTEX + mutex_unlock(&module_mutex); + #endif diff --git a/rhbz2230079a.patch b/rhbz2230079a.patch new file mode 100644 index 0000000..e03aef7 --- /dev/null +++ b/rhbz2230079a.patch @@ -0,0 +1,216 @@ +commit 33fae2d0107fb6166b4eac3fdffd277829849ab0 +Author: Martin Cermak +Date: Fri Jun 2 23:28:07 2023 +0200 + + PR30415: conflicting types for ‘kallsyms_on_each_symbol’ + +diff --git a/runtime/linux/kprobes.c b/runtime/linux/kprobes.c +index 1875092c5..6b30f2c52 100644 +--- a/runtime/linux/kprobes.c ++++ b/runtime/linux/kprobes.c +@@ -28,6 +28,9 @@ extern void *_stp_kallsyms_on_each_symbol; + #endif + #endif + ++// No export check and gates. This one seems simply like a non-export. ++extern void *_stp_module_kallsyms_on_each_symbol; ++ + #if defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) && defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED) + #define USE_KALLSYMS_ON_EACH_SYMBOL (1) + #elif defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) +@@ -684,7 +687,7 @@ struct stapkp_symbol_data { + + + static int +-stapkp_symbol_callback(void *data, const char *name, ++__stapkp_symbol_callback(void *data, const char *name, + struct module *mod, unsigned long addr) + { + struct stapkp_symbol_data *sd = data; +@@ -733,6 +736,19 @@ stapkp_symbol_callback(void *data, const char *name, + return 0; + } + ++static int ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) ++stapkp_symbol_callback(void *data, const char *name, ++ unsigned long addr) ++{ ++ struct module *mod = NULL; ++#else ++stapkp_symbol_callback(void *data, const char *name, ++ struct module *mod, unsigned long addr) ++{ ++#endif ++ return __stapkp_symbol_callback(data, name, mod, addr); ++} + + static int + stapkp_init(struct stap_kprobe_probe *probes, +@@ -764,6 +780,11 @@ stapkp_init(struct stap_kprobe_probe *probes, + mutex_lock(&module_mutex); + #endif + kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) ++ module_kallsyms_on_each_symbol(sd.modname, stapkp_symbol_callback, &sd); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) ++ module_kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); ++#endif + #ifdef STAPCONF_MODULE_MUTEX + mutex_unlock(&module_mutex); + #endif +@@ -834,6 +855,11 @@ stapkp_refresh(const char *modname, + mutex_lock(&module_mutex); + #endif + kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) ++ module_kallsyms_on_each_symbol(sd.modname, stapkp_symbol_callback, &sd); ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) ++ module_kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); ++#endif + #ifdef STAPCONF_MODULE_MUTEX + mutex_unlock(&module_mutex); + #endif +diff --git a/runtime/linux/runtime.h b/runtime/linux/runtime.h +index 86d64fd0d..f7b3cdcf0 100644 +--- a/runtime/linux/runtime.h ++++ b/runtime/linux/runtime.h +@@ -221,11 +221,15 @@ static void *_stp_kallsyms_lookup_name; + #ifndef CONFIG_PPC64 + #define STAPCONF_KALLSYMS_ON_EACH_SYMBOL + #if !defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED) +-// XXX Should not be static, since it is linked into kprobes.c. +-static void *_stp_kallsyms_on_each_symbol; ++// Not static, since it is linked into kprobes.c: ++void *_stp_kallsyms_on_each_symbol; + #endif + #endif + ++// No export check and gates. This one seems simply like a non-export. ++// Not static, since it is linked into kprobes.c: ++void *_stp_module_kallsyms_on_each_symbol; ++ + // PR13489, inode-uprobes sometimes lacks the necessary SYMBOL_EXPORT's. + #if !defined(STAPCONF_TASK_USER_REGSET_VIEW_EXPORTED) + static void *kallsyms_task_user_regset_view; +diff --git a/runtime/sym.c b/runtime/sym.c +index fc81ac5e8..29171b45f 100644 +--- a/runtime/sym.c ++++ b/runtime/sym.c +@@ -1155,9 +1155,15 @@ unsigned long kallsyms_lookup_name (const char *name) + typedef typeof(&kallsyms_on_each_symbol) kallsyms_on_each_symbol_fn; + + // XXX Will be linked in place of the kernel's kallsyms_on_each_symbol: ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) ++int kallsyms_on_each_symbol(int (*fn)(void *, const char *, ++ unsigned long), ++ void *data) ++#else + int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, + unsigned long), + void *data) ++#endif + { + /* First, try to use a kallsyms_lookup_name address passed to us + through the relocation mechanism. */ +@@ -1170,6 +1176,39 @@ int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, + _stp_error("BUG: attempting to use unavailable kallsyms_on_each_symbol!!\n"); + return 0; + } ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) ++typedef typeof(&module_kallsyms_on_each_symbol) module_kallsyms_on_each_symbol_fn; ++ ++// XXX Will be linked in place of the kernel's module_kallsyms_on_each_symbol: ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) ++int module_kallsyms_on_each_symbol(const char *modname, ++ int (*fn)(void *, const char *, ++ unsigned long), ++ void *data) ++#else ++int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, ++ unsigned long), ++ void *data) ++#endif ++{ ++ /* First, try to use a kallsyms_lookup_name address passed to us ++ through the relocation mechanism. */ ++ if (_stp_module_kallsyms_on_each_symbol != NULL) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) ++ return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(modname, fn, data); ++#else ++ return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(fn, data); ++#endif ++ ++ /* Next, give up and signal a BUG. We should have detected ++ that this function is not available and used a different ++ mechanism! */ ++ _stp_error("BUG: attempting to use unavailable module_kallsyms_on_each_symbol!!\n"); ++ return 0; ++} ++#endif ++ + #endif + + +diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c +index 7f2fe0fc8..3af9a1098 100644 +--- a/runtime/transport/symbols.c ++++ b/runtime/transport/symbols.c +@@ -119,6 +119,10 @@ static void _stp_do_relocation(const char __user *buf, size_t count) + _stp_kallsyms_on_each_symbol = (void *) msg.address; + } + #endif ++ if (!strcmp ("kernel", msg.module) ++ && !strcmp ("module_kallsyms_on_each_symbol", msg.reloc)) { ++ _stp_module_kallsyms_on_each_symbol = (void *) msg.address; ++ } + + _stp_kmodule_update_address(msg.module, msg.reloc, msg.address); + } +diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c +index 3db76badf..cf57d4286 100644 +--- a/runtime/transport/transport.c ++++ b/runtime/transport/transport.c +@@ -614,6 +614,7 @@ static int _stp_transport_init(void) + #if defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) && !defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED) + _stp_kallsyms_on_each_symbol = NULL; + #endif ++ _stp_module_kallsyms_on_each_symbol = NULL; + #if defined(CONFIG_KALLSYMS) && !defined(STAPCONF_KALLSYMS_LOOKUP_NAME_EXPORTED) + _stp_need_kallsyms_stext = 0; + #endif +diff --git a/staprun/staprun.c b/staprun/staprun.c +index edd1bc67a..8437f3af6 100644 +--- a/staprun/staprun.c ++++ b/staprun/staprun.c +@@ -640,6 +640,7 @@ int send_relocation_kernel () + int found_stext = 0; + int found_kallsyms_lookup_name = 0; + int found_kallsyms_on_each_symbol = 0; ++ int found_module_kallsyms_on_each_symbol = 0; + int done_with_kallsyms = 0; + char *line = NULL; + size_t linesz = 0; +@@ -681,10 +682,20 @@ int send_relocation_kernel () + + found_kallsyms_on_each_symbol = 1; + } ++ else if (linesize - pos == sizeof "module_kallsyms_on_each_symbol" ++ && !strcmp(line + pos, "module_kallsyms_on_each_symbol" "\n")) ++ { ++ rc = send_a_relocation ("kernel", "module_kallsyms_on_each_symbol", address); ++ if (rc != 0) // non fatal, follows perror() ++ dbug(1, "Relocation was reloc module_kallsyms_on_each_symbol=%llx\n", address); ++ ++ found_module_kallsyms_on_each_symbol = 1; ++ } + } + done_with_kallsyms = found_stext + && found_kallsyms_lookup_name +- && found_kallsyms_on_each_symbol; ++ && found_kallsyms_on_each_symbol ++ && found_module_kallsyms_on_each_symbol; + } + free (line); + fclose (kallsyms); diff --git a/rhbz2230079b.patch b/rhbz2230079b.patch new file mode 100644 index 0000000..8165482 --- /dev/null +++ b/rhbz2230079b.patch @@ -0,0 +1,41 @@ +commit 5251b3060790faafa9f94c14801baaa76a2bf8ea +Author: William Cohen +Date: Wed Jun 7 13:18:01 2023 -0400 + + Adjust runtime module_kallsyms_on_each_symbol to work with Linux 6.3 kernels + + The recent fix for PR30415 worked for new Linux 6.4 kernels and + pre-6.3 kernels, but did not work for Linux 6.3 kernels. The Linux + 6.3 kernel module_kallsyms_on_each_symbol function has both the + modname argument of the 6.4 kernels and the function passed in has the + earlier kernel's struct module pointer argument. The runtime/sym.c has + been adjusted to work with the the Linux 6.3 kernels. + +diff --git a/runtime/sym.c b/runtime/sym.c +index 29171b45f..cc5c7c4dd 100644 +--- a/runtime/sym.c ++++ b/runtime/sym.c +@@ -1187,15 +1187,22 @@ int module_kallsyms_on_each_symbol(const char *modname, + unsigned long), + void *data) + #else ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) ++int module_kallsyms_on_each_symbol(const char *modname, ++ int (*fn)(void *, const char *, struct module *, ++ unsigned long), ++ void *data) ++#else + int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, + unsigned long), + void *data) + #endif ++#endif + { + /* First, try to use a kallsyms_lookup_name address passed to us + through the relocation mechanism. */ + if (_stp_module_kallsyms_on_each_symbol != NULL) +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) + return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(modname, fn, data); + #else + return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(fn, data); diff --git a/rhbz2230079c.patch b/rhbz2230079c.patch new file mode 100644 index 0000000..906232a --- /dev/null +++ b/rhbz2230079c.patch @@ -0,0 +1,25 @@ +commit fc6519089d3f9366470ce442b648d69ed9b56f53 +Author: William Cohen +Date: Wed Jun 7 21:50:34 2023 -0400 + + Make runtime/transport/symbols.c compatible with newer struct module_memory + + The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e + changed the structures for modules. The runtime/transport/symbols.c + made an access to the struct module_memory and needed the appropriate + field name for the newer kernels. This change allows another dozen of + the systemtap examples to pass on Linux 6.4 kernels. + +diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c +index 3af9a1098..85cbc4bab 100644 +--- a/runtime/transport/symbols.c ++++ b/runtime/transport/symbols.c +@@ -390,6 +390,8 @@ static int _stp_module_update_self (void) + _stp_module_self.sections[1].static_addr = address; + #ifdef STAPCONF_MODULE_LAYOUT + _stp_module_self.sections[1].size = mod->core_layout.text_size; ++#elif STAPCONF_MODULE_MEMORY ++ _stp_module_self.sections[1].size = mod->mem[MOD_TEXT].size; + #elif defined(STAPCONF_GRSECURITY) + _stp_module_self.sections[1].size = mod->core_size_rx; + #else diff --git a/rhbz2230079d.patch b/rhbz2230079d.patch new file mode 100644 index 0000000..dd62467 --- /dev/null +++ b/rhbz2230079d.patch @@ -0,0 +1,26 @@ +commit 56054abb4efb3ef95808306b2f22339ab5c96352 +Author: William Cohen +Date: Thu Jun 8 13:10:00 2023 -0400 + + Make runtime/transport/alloc.c compatible with newer struct module_memory + + The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e + changed the structures for modules. The runtime/transport/alloc.c + made an access to the struct module_memory when -DSTP_MAXMEMORY is + used on the command line and needed the appropriate field name for the + newer kernels. This change allows stap script builds using + -DSTP_MAXMEMORY to work on Linux 6.4 kernels. + +diff --git a/runtime/linux/alloc.c b/runtime/linux/alloc.c +index 885800d9f..9fbe8ae0a 100644 +--- a/runtime/linux/alloc.c ++++ b/runtime/linux/alloc.c +@@ -271,6 +271,8 @@ static void _stp_mem_debug_validate(void *addr) + #ifdef STP_MAXMEMORY + #ifdef STAPCONF_MODULE_LAYOUT + #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_layout.size) ++#elif STAPCONF_MODULE_MEMORY ++#define _STP_MODULE_CORE_SIZE (THIS_MODULE->mem[MOD_TEXT].size) + #elif defined(STAPCONF_GRSECURITY) + #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_size_rw) + #else diff --git a/rhbz2230079e.patch b/rhbz2230079e.patch new file mode 100644 index 0000000..18aa4d8 --- /dev/null +++ b/rhbz2230079e.patch @@ -0,0 +1,37 @@ +commit 788c58ced532537b87f596355d3e9b6dec30e61a +Author: William Cohen +Date: Thu Jun 29 13:17:38 2023 -0400 + + Fedora rawhide kernels are now flagging use of zero length arrays + + The kernel has switched from using zero length arrays to flexible + arrays. The kernel compiles have gotten picker and now flags accesses + beyond the end of end of arrays when possible. When trying to run the + testsuite on Fedora rawhide got the following error due to a zero + length array: + + In file included from /tmp/stapaBPtwB/stap_6b7e9ee7df4a3f6e4cfbffb7f92d8405_1736_src.c:543: + /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/stp_tracepoint.c: In function 'add_tracepoint': + /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/stp_tracepoint.c:148:22: error: 'strcmp' reading 1 or more bytes from a region of size 0 [-Werror=stringop-overread] + 148 | if (!strcmp(name, e->name)) { + | ^~~~~~~~~~~~~~~~~~~~~ + /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/stp_tracepoint.c:61:14: note: source object 'name' of size 0 + 61 | char name[0]; + | ^~~~ + + Switched the zero length array in the struct to a flexible array to + eliminate the issue. + +diff --git a/runtime/linux/stp_tracepoint.c b/runtime/linux/stp_tracepoint.c +index 1edac313c..508948dce 100644 +--- a/runtime/linux/stp_tracepoint.c ++++ b/runtime/linux/stp_tracepoint.c +@@ -58,7 +58,7 @@ struct tracepoint_entry { + struct tracepoint *tp; + int refcount; + struct list_head probes; +- char name[0]; ++ char name[]; + }; + + struct stp_tp_probe { diff --git a/rhbz2230079f.patch b/rhbz2230079f.patch new file mode 100644 index 0000000..4f56bb0 --- /dev/null +++ b/rhbz2230079f.patch @@ -0,0 +1,59 @@ +commit c893e0eaa4dedc90fafc9353ea00fc34ad4b6d42 +Author: William Cohen +Date: Wed May 17 10:38:31 2023 -0400 + + Support newer kernels with struct module_memory + + The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e + changed the structures for modules. The runtime printing of kernel + information accessed information about modules and the fields in + module structure. A test has been added to the autoconf list to + determine the appropriate fields to get information about the + module. + +diff --git a/buildrun.cxx b/buildrun.cxx +index a4a254c7d..7f4ad860d 100644 +--- a/buildrun.cxx ++++ b/buildrun.cxx +@@ -512,6 +512,8 @@ compile_pass (systemtap_session& s) + + output_autoconf(s, o, cs, "autoconf-module_layout.c", + "STAPCONF_MODULE_LAYOUT", NULL); ++ output_autoconf(s, o, cs, "autoconf-module_memory.c", ++ "STAPCONF_MODULE_MEMORY", NULL); + output_autoconf(s, o, cs, "autoconf-mod_kallsyms.c", + "STAPCONF_MOD_KALLSYMS", NULL); + output_exportconf(s, o2, "get_user_pages_remote", "STAPCONF_GET_USER_PAGES_REMOTE"); +diff --git a/runtime/linux/autoconf-module_memory.c b/runtime/linux/autoconf-module_memory.c +new file mode 100644 +index 000000000..db04b8d2e +--- /dev/null ++++ b/runtime/linux/autoconf-module_memory.c +@@ -0,0 +1,3 @@ ++#include ++ ++struct module_memory ml; +diff --git a/runtime/linux/print.c b/runtime/linux/print.c +index 57a157986..594b155be 100644 +--- a/runtime/linux/print.c ++++ b/runtime/linux/print.c +@@ -361,6 +361,11 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro + (unsigned long) (THIS_MODULE->core_layout.size - THIS_MODULE->core_layout.text_size)/1024, + (unsigned long) (THIS_MODULE->core_layout.text_size)/1024, + #else ++#if STAPCONF_MODULE_MEMORY ++ (unsigned long) THIS_MODULE->mem[MOD_TEXT].base, ++ (unsigned long) (THIS_MODULE->mem[MOD_DATA].size)/1024, ++ (unsigned long) (THIS_MODULE->mem[MOD_TEXT].size)/1024, ++#else + #ifndef STAPCONF_GRSECURITY + (unsigned long) THIS_MODULE->module_core, + (unsigned long) (THIS_MODULE->core_size - THIS_MODULE->core_text_size)/1024, +@@ -370,6 +375,7 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro + (unsigned long) (THIS_MODULE->core_size_rw - THIS_MODULE->core_size_rx)/1024, + (unsigned long) (THIS_MODULE->core_size_rx)/1024, + #endif ++#endif + #endif + ctx/1024, + _stp_allocated_net_memory/1024, diff --git a/rhbz2230079g.patch b/rhbz2230079g.patch new file mode 100644 index 0000000..ced7c6e --- /dev/null +++ b/rhbz2230079g.patch @@ -0,0 +1,47 @@ +commit fabe87cb502d7990b91ed59d9773d308dfdb9a8a +Author: Frank Ch. Eigler +Date: Fri Jun 30 15:56:16 2023 -0400 + + runtime: tweak STAPCONF_MODULE_MEMORY cpp + + Correct build breakage on rhel7. + +diff --git a/runtime/linux/alloc.c b/runtime/linux/alloc.c +index 9fbe8ae0a..796ad5169 100644 +--- a/runtime/linux/alloc.c ++++ b/runtime/linux/alloc.c +@@ -271,7 +271,7 @@ static void _stp_mem_debug_validate(void *addr) + #ifdef STP_MAXMEMORY + #ifdef STAPCONF_MODULE_LAYOUT + #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_layout.size) +-#elif STAPCONF_MODULE_MEMORY ++#elif defined(STAPCONF_MODULE_MEMORY) + #define _STP_MODULE_CORE_SIZE (THIS_MODULE->mem[MOD_TEXT].size) + #elif defined(STAPCONF_GRSECURITY) + #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_size_rw) +diff --git a/runtime/linux/print.c b/runtime/linux/print.c +index 594b155be..db71871d2 100644 +--- a/runtime/linux/print.c ++++ b/runtime/linux/print.c +@@ -361,7 +361,7 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro + (unsigned long) (THIS_MODULE->core_layout.size - THIS_MODULE->core_layout.text_size)/1024, + (unsigned long) (THIS_MODULE->core_layout.text_size)/1024, + #else +-#if STAPCONF_MODULE_MEMORY ++#ifdef STAPCONF_MODULE_MEMORY + (unsigned long) THIS_MODULE->mem[MOD_TEXT].base, + (unsigned long) (THIS_MODULE->mem[MOD_DATA].size)/1024, + (unsigned long) (THIS_MODULE->mem[MOD_TEXT].size)/1024, +diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c +index 85cbc4bab..b5951deff 100644 +--- a/runtime/transport/symbols.c ++++ b/runtime/transport/symbols.c +@@ -390,7 +390,7 @@ static int _stp_module_update_self (void) + _stp_module_self.sections[1].static_addr = address; + #ifdef STAPCONF_MODULE_LAYOUT + _stp_module_self.sections[1].size = mod->core_layout.text_size; +-#elif STAPCONF_MODULE_MEMORY ++#elif defined(STAPCONF_MODULE_MEMORY) + _stp_module_self.sections[1].size = mod->mem[MOD_TEXT].size; + #elif defined(STAPCONF_GRSECURITY) + _stp_module_self.sections[1].size = mod->core_size_rx; diff --git a/systemtap.spec b/systemtap.spec index fd80232..0e0d146 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -123,7 +123,7 @@ m stapdev stapdev Name: systemtap # PRERELEASE Version: 4.9 -Release: 1%{?release_override}%{?dist} +Release: 2%{?release_override}%{?dist} # for version, see also configure.ac @@ -159,6 +159,15 @@ Summary: Programmable system-wide instrumentation system License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz +Patch1: rhbz2230079.patch +Patch2: rhbz2230079a.patch +Patch3: rhbz2230079b.patch +Patch4: rhbz2230079c.patch +Patch5: rhbz2230079d.patch +Patch6: rhbz2230079e.patch +Patch7: rhbz2230079f.patch +Patch8: rhbz2230079g.patch + # Build* BuildRequires: make @@ -589,6 +598,15 @@ or within a container. %prep %setup -q +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 + %build # Enable/disable the dyninst pure-userspace backend @@ -1307,6 +1325,9 @@ exit 0 # PRERELEASE %changelog +* Thu Aug 10 2023 Will Cohen - 4.9-2 +- Support for linux 6.4 kernels (rhbz2230079). + * Fri Apr 28 2023 Frank Ch. Eigler - 4.9-1 - Upstream release, see wiki page below for detailed notes. https://sourceware.org/systemtap/wiki/SystemTapReleases From 9bc61556929bc1d89c4a1914e525075208143ed5 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Wed, 27 Sep 2023 16:30:49 -0400 Subject: [PATCH 3/7] Automated weekly systemtap rawhide release: 5.0~pre16958465gca71442b --- rhbz2230079.patch | 30 ------- rhbz2230079a.patch | 216 --------------------------------------------- rhbz2230079b.patch | 41 --------- rhbz2230079c.patch | 25 ------ rhbz2230079d.patch | 26 ------ rhbz2230079e.patch | 37 -------- rhbz2230079f.patch | 59 ------------- rhbz2230079g.patch | 47 ---------- sources | 2 +- systemtap.spec | 76 ++++++---------- 10 files changed, 28 insertions(+), 531 deletions(-) delete mode 100644 rhbz2230079.patch delete mode 100644 rhbz2230079a.patch delete mode 100644 rhbz2230079b.patch delete mode 100644 rhbz2230079c.patch delete mode 100644 rhbz2230079d.patch delete mode 100644 rhbz2230079e.patch delete mode 100644 rhbz2230079f.patch delete mode 100644 rhbz2230079g.patch diff --git a/rhbz2230079.patch b/rhbz2230079.patch deleted file mode 100644 index 0a4fe5e..0000000 --- a/rhbz2230079.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit ff265fa1ed86b85e021ec0f16a28ab48c237414a -Author: Yichun Zhang (agentzh) -Date: Sat May 6 15:21:14 2023 -0700 - - PR30405: stapkp_init(): we should not disable preemption around the kallsyms_on_each_symbol() call - -diff --git a/runtime/linux/kprobes.c b/runtime/linux/kprobes.c -index 09f0e0665..1875092c5 100644 ---- a/runtime/linux/kprobes.c -+++ b/runtime/linux/kprobes.c -@@ -763,9 +763,7 @@ stapkp_init(struct stap_kprobe_probe *probes, - #ifdef STAPCONF_MODULE_MUTEX - mutex_lock(&module_mutex); - #endif -- preempt_disable(); - kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); -- preempt_enable(); - #ifdef STAPCONF_MODULE_MUTEX - mutex_unlock(&module_mutex); - #endif -@@ -835,9 +833,7 @@ stapkp_refresh(const char *modname, - #ifdef STAPCONF_MODULE_MUTEX - mutex_lock(&module_mutex); - #endif -- preempt_disable(); - kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); -- preempt_enable(); - #ifdef STAPCONF_MODULE_MUTEX - mutex_unlock(&module_mutex); - #endif diff --git a/rhbz2230079a.patch b/rhbz2230079a.patch deleted file mode 100644 index e03aef7..0000000 --- a/rhbz2230079a.patch +++ /dev/null @@ -1,216 +0,0 @@ -commit 33fae2d0107fb6166b4eac3fdffd277829849ab0 -Author: Martin Cermak -Date: Fri Jun 2 23:28:07 2023 +0200 - - PR30415: conflicting types for ‘kallsyms_on_each_symbol’ - -diff --git a/runtime/linux/kprobes.c b/runtime/linux/kprobes.c -index 1875092c5..6b30f2c52 100644 ---- a/runtime/linux/kprobes.c -+++ b/runtime/linux/kprobes.c -@@ -28,6 +28,9 @@ extern void *_stp_kallsyms_on_each_symbol; - #endif - #endif - -+// No export check and gates. This one seems simply like a non-export. -+extern void *_stp_module_kallsyms_on_each_symbol; -+ - #if defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) && defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED) - #define USE_KALLSYMS_ON_EACH_SYMBOL (1) - #elif defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) -@@ -684,7 +687,7 @@ struct stapkp_symbol_data { - - - static int --stapkp_symbol_callback(void *data, const char *name, -+__stapkp_symbol_callback(void *data, const char *name, - struct module *mod, unsigned long addr) - { - struct stapkp_symbol_data *sd = data; -@@ -733,6 +736,19 @@ stapkp_symbol_callback(void *data, const char *name, - return 0; - } - -+static int -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) -+stapkp_symbol_callback(void *data, const char *name, -+ unsigned long addr) -+{ -+ struct module *mod = NULL; -+#else -+stapkp_symbol_callback(void *data, const char *name, -+ struct module *mod, unsigned long addr) -+{ -+#endif -+ return __stapkp_symbol_callback(data, name, mod, addr); -+} - - static int - stapkp_init(struct stap_kprobe_probe *probes, -@@ -764,6 +780,11 @@ stapkp_init(struct stap_kprobe_probe *probes, - mutex_lock(&module_mutex); - #endif - kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) -+ module_kallsyms_on_each_symbol(sd.modname, stapkp_symbol_callback, &sd); -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) -+ module_kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); -+#endif - #ifdef STAPCONF_MODULE_MUTEX - mutex_unlock(&module_mutex); - #endif -@@ -834,6 +855,11 @@ stapkp_refresh(const char *modname, - mutex_lock(&module_mutex); - #endif - kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) -+ module_kallsyms_on_each_symbol(sd.modname, stapkp_symbol_callback, &sd); -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) -+ module_kallsyms_on_each_symbol(stapkp_symbol_callback, &sd); -+#endif - #ifdef STAPCONF_MODULE_MUTEX - mutex_unlock(&module_mutex); - #endif -diff --git a/runtime/linux/runtime.h b/runtime/linux/runtime.h -index 86d64fd0d..f7b3cdcf0 100644 ---- a/runtime/linux/runtime.h -+++ b/runtime/linux/runtime.h -@@ -221,11 +221,15 @@ static void *_stp_kallsyms_lookup_name; - #ifndef CONFIG_PPC64 - #define STAPCONF_KALLSYMS_ON_EACH_SYMBOL - #if !defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED) --// XXX Should not be static, since it is linked into kprobes.c. --static void *_stp_kallsyms_on_each_symbol; -+// Not static, since it is linked into kprobes.c: -+void *_stp_kallsyms_on_each_symbol; - #endif - #endif - -+// No export check and gates. This one seems simply like a non-export. -+// Not static, since it is linked into kprobes.c: -+void *_stp_module_kallsyms_on_each_symbol; -+ - // PR13489, inode-uprobes sometimes lacks the necessary SYMBOL_EXPORT's. - #if !defined(STAPCONF_TASK_USER_REGSET_VIEW_EXPORTED) - static void *kallsyms_task_user_regset_view; -diff --git a/runtime/sym.c b/runtime/sym.c -index fc81ac5e8..29171b45f 100644 ---- a/runtime/sym.c -+++ b/runtime/sym.c -@@ -1155,9 +1155,15 @@ unsigned long kallsyms_lookup_name (const char *name) - typedef typeof(&kallsyms_on_each_symbol) kallsyms_on_each_symbol_fn; - - // XXX Will be linked in place of the kernel's kallsyms_on_each_symbol: -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) -+int kallsyms_on_each_symbol(int (*fn)(void *, const char *, -+ unsigned long), -+ void *data) -+#else - int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, - unsigned long), - void *data) -+#endif - { - /* First, try to use a kallsyms_lookup_name address passed to us - through the relocation mechanism. */ -@@ -1170,6 +1176,39 @@ int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, - _stp_error("BUG: attempting to use unavailable kallsyms_on_each_symbol!!\n"); - return 0; - } -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) -+typedef typeof(&module_kallsyms_on_each_symbol) module_kallsyms_on_each_symbol_fn; -+ -+// XXX Will be linked in place of the kernel's module_kallsyms_on_each_symbol: -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) -+int module_kallsyms_on_each_symbol(const char *modname, -+ int (*fn)(void *, const char *, -+ unsigned long), -+ void *data) -+#else -+int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, -+ unsigned long), -+ void *data) -+#endif -+{ -+ /* First, try to use a kallsyms_lookup_name address passed to us -+ through the relocation mechanism. */ -+ if (_stp_module_kallsyms_on_each_symbol != NULL) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) -+ return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(modname, fn, data); -+#else -+ return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(fn, data); -+#endif -+ -+ /* Next, give up and signal a BUG. We should have detected -+ that this function is not available and used a different -+ mechanism! */ -+ _stp_error("BUG: attempting to use unavailable module_kallsyms_on_each_symbol!!\n"); -+ return 0; -+} -+#endif -+ - #endif - - -diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c -index 7f2fe0fc8..3af9a1098 100644 ---- a/runtime/transport/symbols.c -+++ b/runtime/transport/symbols.c -@@ -119,6 +119,10 @@ static void _stp_do_relocation(const char __user *buf, size_t count) - _stp_kallsyms_on_each_symbol = (void *) msg.address; - } - #endif -+ if (!strcmp ("kernel", msg.module) -+ && !strcmp ("module_kallsyms_on_each_symbol", msg.reloc)) { -+ _stp_module_kallsyms_on_each_symbol = (void *) msg.address; -+ } - - _stp_kmodule_update_address(msg.module, msg.reloc, msg.address); - } -diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c -index 3db76badf..cf57d4286 100644 ---- a/runtime/transport/transport.c -+++ b/runtime/transport/transport.c -@@ -614,6 +614,7 @@ static int _stp_transport_init(void) - #if defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL) && !defined(STAPCONF_KALLSYMS_ON_EACH_SYMBOL_EXPORTED) - _stp_kallsyms_on_each_symbol = NULL; - #endif -+ _stp_module_kallsyms_on_each_symbol = NULL; - #if defined(CONFIG_KALLSYMS) && !defined(STAPCONF_KALLSYMS_LOOKUP_NAME_EXPORTED) - _stp_need_kallsyms_stext = 0; - #endif -diff --git a/staprun/staprun.c b/staprun/staprun.c -index edd1bc67a..8437f3af6 100644 ---- a/staprun/staprun.c -+++ b/staprun/staprun.c -@@ -640,6 +640,7 @@ int send_relocation_kernel () - int found_stext = 0; - int found_kallsyms_lookup_name = 0; - int found_kallsyms_on_each_symbol = 0; -+ int found_module_kallsyms_on_each_symbol = 0; - int done_with_kallsyms = 0; - char *line = NULL; - size_t linesz = 0; -@@ -681,10 +682,20 @@ int send_relocation_kernel () - - found_kallsyms_on_each_symbol = 1; - } -+ else if (linesize - pos == sizeof "module_kallsyms_on_each_symbol" -+ && !strcmp(line + pos, "module_kallsyms_on_each_symbol" "\n")) -+ { -+ rc = send_a_relocation ("kernel", "module_kallsyms_on_each_symbol", address); -+ if (rc != 0) // non fatal, follows perror() -+ dbug(1, "Relocation was reloc module_kallsyms_on_each_symbol=%llx\n", address); -+ -+ found_module_kallsyms_on_each_symbol = 1; -+ } - } - done_with_kallsyms = found_stext - && found_kallsyms_lookup_name -- && found_kallsyms_on_each_symbol; -+ && found_kallsyms_on_each_symbol -+ && found_module_kallsyms_on_each_symbol; - } - free (line); - fclose (kallsyms); diff --git a/rhbz2230079b.patch b/rhbz2230079b.patch deleted file mode 100644 index 8165482..0000000 --- a/rhbz2230079b.patch +++ /dev/null @@ -1,41 +0,0 @@ -commit 5251b3060790faafa9f94c14801baaa76a2bf8ea -Author: William Cohen -Date: Wed Jun 7 13:18:01 2023 -0400 - - Adjust runtime module_kallsyms_on_each_symbol to work with Linux 6.3 kernels - - The recent fix for PR30415 worked for new Linux 6.4 kernels and - pre-6.3 kernels, but did not work for Linux 6.3 kernels. The Linux - 6.3 kernel module_kallsyms_on_each_symbol function has both the - modname argument of the 6.4 kernels and the function passed in has the - earlier kernel's struct module pointer argument. The runtime/sym.c has - been adjusted to work with the the Linux 6.3 kernels. - -diff --git a/runtime/sym.c b/runtime/sym.c -index 29171b45f..cc5c7c4dd 100644 ---- a/runtime/sym.c -+++ b/runtime/sym.c -@@ -1187,15 +1187,22 @@ int module_kallsyms_on_each_symbol(const char *modname, - unsigned long), - void *data) - #else -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) -+int module_kallsyms_on_each_symbol(const char *modname, -+ int (*fn)(void *, const char *, struct module *, -+ unsigned long), -+ void *data) -+#else - int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, - unsigned long), - void *data) - #endif -+#endif - { - /* First, try to use a kallsyms_lookup_name address passed to us - through the relocation mechanism. */ - if (_stp_module_kallsyms_on_each_symbol != NULL) --#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,3,0) - return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(modname, fn, data); - #else - return (* (module_kallsyms_on_each_symbol_fn)_stp_module_kallsyms_on_each_symbol)(fn, data); diff --git a/rhbz2230079c.patch b/rhbz2230079c.patch deleted file mode 100644 index 906232a..0000000 --- a/rhbz2230079c.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit fc6519089d3f9366470ce442b648d69ed9b56f53 -Author: William Cohen -Date: Wed Jun 7 21:50:34 2023 -0400 - - Make runtime/transport/symbols.c compatible with newer struct module_memory - - The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e - changed the structures for modules. The runtime/transport/symbols.c - made an access to the struct module_memory and needed the appropriate - field name for the newer kernels. This change allows another dozen of - the systemtap examples to pass on Linux 6.4 kernels. - -diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c -index 3af9a1098..85cbc4bab 100644 ---- a/runtime/transport/symbols.c -+++ b/runtime/transport/symbols.c -@@ -390,6 +390,8 @@ static int _stp_module_update_self (void) - _stp_module_self.sections[1].static_addr = address; - #ifdef STAPCONF_MODULE_LAYOUT - _stp_module_self.sections[1].size = mod->core_layout.text_size; -+#elif STAPCONF_MODULE_MEMORY -+ _stp_module_self.sections[1].size = mod->mem[MOD_TEXT].size; - #elif defined(STAPCONF_GRSECURITY) - _stp_module_self.sections[1].size = mod->core_size_rx; - #else diff --git a/rhbz2230079d.patch b/rhbz2230079d.patch deleted file mode 100644 index dd62467..0000000 --- a/rhbz2230079d.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 56054abb4efb3ef95808306b2f22339ab5c96352 -Author: William Cohen -Date: Thu Jun 8 13:10:00 2023 -0400 - - Make runtime/transport/alloc.c compatible with newer struct module_memory - - The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e - changed the structures for modules. The runtime/transport/alloc.c - made an access to the struct module_memory when -DSTP_MAXMEMORY is - used on the command line and needed the appropriate field name for the - newer kernels. This change allows stap script builds using - -DSTP_MAXMEMORY to work on Linux 6.4 kernels. - -diff --git a/runtime/linux/alloc.c b/runtime/linux/alloc.c -index 885800d9f..9fbe8ae0a 100644 ---- a/runtime/linux/alloc.c -+++ b/runtime/linux/alloc.c -@@ -271,6 +271,8 @@ static void _stp_mem_debug_validate(void *addr) - #ifdef STP_MAXMEMORY - #ifdef STAPCONF_MODULE_LAYOUT - #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_layout.size) -+#elif STAPCONF_MODULE_MEMORY -+#define _STP_MODULE_CORE_SIZE (THIS_MODULE->mem[MOD_TEXT].size) - #elif defined(STAPCONF_GRSECURITY) - #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_size_rw) - #else diff --git a/rhbz2230079e.patch b/rhbz2230079e.patch deleted file mode 100644 index 18aa4d8..0000000 --- a/rhbz2230079e.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 788c58ced532537b87f596355d3e9b6dec30e61a -Author: William Cohen -Date: Thu Jun 29 13:17:38 2023 -0400 - - Fedora rawhide kernels are now flagging use of zero length arrays - - The kernel has switched from using zero length arrays to flexible - arrays. The kernel compiles have gotten picker and now flags accesses - beyond the end of end of arrays when possible. When trying to run the - testsuite on Fedora rawhide got the following error due to a zero - length array: - - In file included from /tmp/stapaBPtwB/stap_6b7e9ee7df4a3f6e4cfbffb7f92d8405_1736_src.c:543: - /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/stp_tracepoint.c: In function 'add_tracepoint': - /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/stp_tracepoint.c:148:22: error: 'strcmp' reading 1 or more bytes from a region of size 0 [-Werror=stringop-overread] - 148 | if (!strcmp(name, e->name)) { - | ^~~~~~~~~~~~~~~~~~~~~ - /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/stp_tracepoint.c:61:14: note: source object 'name' of size 0 - 61 | char name[0]; - | ^~~~ - - Switched the zero length array in the struct to a flexible array to - eliminate the issue. - -diff --git a/runtime/linux/stp_tracepoint.c b/runtime/linux/stp_tracepoint.c -index 1edac313c..508948dce 100644 ---- a/runtime/linux/stp_tracepoint.c -+++ b/runtime/linux/stp_tracepoint.c -@@ -58,7 +58,7 @@ struct tracepoint_entry { - struct tracepoint *tp; - int refcount; - struct list_head probes; -- char name[0]; -+ char name[]; - }; - - struct stp_tp_probe { diff --git a/rhbz2230079f.patch b/rhbz2230079f.patch deleted file mode 100644 index 4f56bb0..0000000 --- a/rhbz2230079f.patch +++ /dev/null @@ -1,59 +0,0 @@ -commit c893e0eaa4dedc90fafc9353ea00fc34ad4b6d42 -Author: William Cohen -Date: Wed May 17 10:38:31 2023 -0400 - - Support newer kernels with struct module_memory - - The upstream kernel commit ac3b43283923440900b4f36ca5f9f0b1ca43b70e - changed the structures for modules. The runtime printing of kernel - information accessed information about modules and the fields in - module structure. A test has been added to the autoconf list to - determine the appropriate fields to get information about the - module. - -diff --git a/buildrun.cxx b/buildrun.cxx -index a4a254c7d..7f4ad860d 100644 ---- a/buildrun.cxx -+++ b/buildrun.cxx -@@ -512,6 +512,8 @@ compile_pass (systemtap_session& s) - - output_autoconf(s, o, cs, "autoconf-module_layout.c", - "STAPCONF_MODULE_LAYOUT", NULL); -+ output_autoconf(s, o, cs, "autoconf-module_memory.c", -+ "STAPCONF_MODULE_MEMORY", NULL); - output_autoconf(s, o, cs, "autoconf-mod_kallsyms.c", - "STAPCONF_MOD_KALLSYMS", NULL); - output_exportconf(s, o2, "get_user_pages_remote", "STAPCONF_GET_USER_PAGES_REMOTE"); -diff --git a/runtime/linux/autoconf-module_memory.c b/runtime/linux/autoconf-module_memory.c -new file mode 100644 -index 000000000..db04b8d2e ---- /dev/null -+++ b/runtime/linux/autoconf-module_memory.c -@@ -0,0 +1,3 @@ -+#include -+ -+struct module_memory ml; -diff --git a/runtime/linux/print.c b/runtime/linux/print.c -index 57a157986..594b155be 100644 ---- a/runtime/linux/print.c -+++ b/runtime/linux/print.c -@@ -361,6 +361,11 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro - (unsigned long) (THIS_MODULE->core_layout.size - THIS_MODULE->core_layout.text_size)/1024, - (unsigned long) (THIS_MODULE->core_layout.text_size)/1024, - #else -+#if STAPCONF_MODULE_MEMORY -+ (unsigned long) THIS_MODULE->mem[MOD_TEXT].base, -+ (unsigned long) (THIS_MODULE->mem[MOD_DATA].size)/1024, -+ (unsigned long) (THIS_MODULE->mem[MOD_TEXT].size)/1024, -+#else - #ifndef STAPCONF_GRSECURITY - (unsigned long) THIS_MODULE->module_core, - (unsigned long) (THIS_MODULE->core_size - THIS_MODULE->core_text_size)/1024, -@@ -370,6 +375,7 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro - (unsigned long) (THIS_MODULE->core_size_rw - THIS_MODULE->core_size_rx)/1024, - (unsigned long) (THIS_MODULE->core_size_rx)/1024, - #endif -+#endif - #endif - ctx/1024, - _stp_allocated_net_memory/1024, diff --git a/rhbz2230079g.patch b/rhbz2230079g.patch deleted file mode 100644 index ced7c6e..0000000 --- a/rhbz2230079g.patch +++ /dev/null @@ -1,47 +0,0 @@ -commit fabe87cb502d7990b91ed59d9773d308dfdb9a8a -Author: Frank Ch. Eigler -Date: Fri Jun 30 15:56:16 2023 -0400 - - runtime: tweak STAPCONF_MODULE_MEMORY cpp - - Correct build breakage on rhel7. - -diff --git a/runtime/linux/alloc.c b/runtime/linux/alloc.c -index 9fbe8ae0a..796ad5169 100644 ---- a/runtime/linux/alloc.c -+++ b/runtime/linux/alloc.c -@@ -271,7 +271,7 @@ static void _stp_mem_debug_validate(void *addr) - #ifdef STP_MAXMEMORY - #ifdef STAPCONF_MODULE_LAYOUT - #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_layout.size) --#elif STAPCONF_MODULE_MEMORY -+#elif defined(STAPCONF_MODULE_MEMORY) - #define _STP_MODULE_CORE_SIZE (THIS_MODULE->mem[MOD_TEXT].size) - #elif defined(STAPCONF_GRSECURITY) - #define _STP_MODULE_CORE_SIZE (THIS_MODULE->core_size_rw) -diff --git a/runtime/linux/print.c b/runtime/linux/print.c -index 594b155be..db71871d2 100644 ---- a/runtime/linux/print.c -+++ b/runtime/linux/print.c -@@ -361,7 +361,7 @@ static void _stp_print_kernel_info(char *sname, char *vstr, int ctx, int num_pro - (unsigned long) (THIS_MODULE->core_layout.size - THIS_MODULE->core_layout.text_size)/1024, - (unsigned long) (THIS_MODULE->core_layout.text_size)/1024, - #else --#if STAPCONF_MODULE_MEMORY -+#ifdef STAPCONF_MODULE_MEMORY - (unsigned long) THIS_MODULE->mem[MOD_TEXT].base, - (unsigned long) (THIS_MODULE->mem[MOD_DATA].size)/1024, - (unsigned long) (THIS_MODULE->mem[MOD_TEXT].size)/1024, -diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c -index 85cbc4bab..b5951deff 100644 ---- a/runtime/transport/symbols.c -+++ b/runtime/transport/symbols.c -@@ -390,7 +390,7 @@ static int _stp_module_update_self (void) - _stp_module_self.sections[1].static_addr = address; - #ifdef STAPCONF_MODULE_LAYOUT - _stp_module_self.sections[1].size = mod->core_layout.text_size; --#elif STAPCONF_MODULE_MEMORY -+#elif defined(STAPCONF_MODULE_MEMORY) - _stp_module_self.sections[1].size = mod->mem[MOD_TEXT].size; - #elif defined(STAPCONF_GRSECURITY) - _stp_module_self.sections[1].size = mod->core_size_rx; diff --git a/sources b/sources index 6711998..4d190e7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (systemtap-4.9.tar.gz) = a2736223fee0c801c36719a0245f31ed7e2e63c30bb7d5cab631dd57e4eb10e04abf2c9b272bda2a17c207c9dd163a1eb8a3e0759eda0c781946e644625510b7 +SHA512 (systemtap-5.0~pre16958465gca71442b.tar.gz) = 81ef14e8644fd509f2040089047bdbfec34ea709e44373e8e37e339d37e2be88534d3d7111469b1d8ff6552217acd35acb4c0977cfe565e9bfedf63c17ed4f0d diff --git a/systemtap.spec b/systemtap.spec index 0e0d146..318f59a 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -7,7 +7,8 @@ %ifarch ppc ppc64 %{sparc} %{mips} %{riscv} %{!?with_crash: %global with_crash 0} %else -%{!?with_crash: %global with_crash 1} +# rawhide crash-devel breakage rhbz2219728 +%{!?with_crash: %global with_crash 0} %endif %{!?with_rpm: %global with_rpm 1} %{!?elfutils_version: %global elfutils_version 0.179} @@ -45,7 +46,7 @@ %{!?with_sysusers: %global with_sysusers 0%{?fedora} >= 32 || 0%{?rhel} >= 9} # Virt is supported on these arches, even on el7, but it's not in core EL7 -%if 0%{?rhel} <= 7 +%if 0%{?rhel} && 0%{?rhel} <= 7 %ifarch ppc64le aarch64 %global with_virthost 0 %endif @@ -64,9 +65,6 @@ %else %if 0%{?rhel} >= 6 %define udevrulesdir /lib/udev/rules.d - %else - # RHEL5 - %define udevrulesdir /etc/udev/rules.d %endif %endif %endif @@ -83,11 +81,7 @@ %define dracutbindir %{_bindir} %endif -%if 0%{?rhel} == 6 - %{!?_rpmmacrodir: %define _rpmmacrodir /etc/rpm/} -%else - %{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d} -%endif +%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d} # To avoid testsuite/*/*.stp has shebang which doesn't start with '/' %define __brp_mangle_shebangs_exclude_from .stp$ @@ -122,8 +116,8 @@ m stapdev stapdev Name: systemtap # PRERELEASE -Version: 4.9 -Release: 2%{?release_override}%{?dist} +Version: 5.0~pre16958465gca71442b +Release: 1%{?release_override}%{?dist} # for version, see also configure.ac @@ -156,18 +150,9 @@ Release: 2%{?release_override}%{?dist} # intermediary stap-server for --use-server: systemtap-server (-devel unused) Summary: Programmable system-wide instrumentation system -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ -Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz -Patch1: rhbz2230079.patch -Patch2: rhbz2230079a.patch -Patch3: rhbz2230079b.patch -Patch4: rhbz2230079c.patch -Patch5: rhbz2230079d.patch -Patch6: rhbz2230079e.patch -Patch7: rhbz2230079f.patch -Patch8: rhbz2230079g.patch - +Source: %{name}-%{version}.tar.gz # Build* BuildRequires: make @@ -178,6 +163,7 @@ BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(avahi-client) %if %{with_debuginfod} BuildRequires: pkgconfig(libdebuginfod) +BuildRequires: pkgconfig(json-c) %endif %if %{with_dyninst} BuildRequires: dyninst-devel >= 10.0 @@ -229,9 +215,6 @@ BuildRequires: pkgconfig(libvirt) BuildRequires: pkgconfig(libxml-2.0) %endif BuildRequires: readline-devel -%if 0%{?rhel} <= 5 -BuildRequires: pkgconfig(ncurses) -%endif %if %{with_python2_probes} BuildRequires: python2-devel %if 0%{?fedora} >= 1 @@ -271,7 +254,7 @@ the components needed to locally develop and execute systemtap scripts. %package server Summary: Instrumentation System Server -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap-devel = %{version}-%{release} Conflicts: systemtap-devel < %{version}-%{release} @@ -301,7 +284,7 @@ compiles systemtap scripts to kernel objects on their demand. %package devel Summary: Programmable system-wide instrumentation system - development headers, tools -License: GPLv2+ +License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND BSD-2-Clause URL: http://sourceware.org/systemtap/ %if 0%{?rhel} >= 8 || 0%{?fedora} >= 20 @@ -331,7 +314,7 @@ a copy of the standard tapset library and the runtime library C files. %package runtime Summary: Programmable system-wide instrumentation system - runtime -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires(pre): shadow-utils Conflicts: systemtap-devel < %{version}-%{release} @@ -346,7 +329,7 @@ using a local or remote systemtap-devel installation. %package client Summary: Programmable system-wide instrumentation system - client -License: GPLv2+ +License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND GFDL-1.2-or-later AND BSD-2-Clause URL: http://sourceware.org/systemtap/ Requires: zip unzip Requires: systemtap-runtime = %{version}-%{release} @@ -369,7 +352,7 @@ documentation, and a copy of the tapset library for reference. %package initscript Summary: Systemtap Initscripts -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap = %{version}-%{release} %if %{with_systemd} @@ -389,7 +372,7 @@ boot-time probing if supported. %package sdt-devel Summary: Static probe support tools -License: GPLv2+ and Public Domain +License: GPL-2.0-or-later AND CC0-1.0 URL: http://sourceware.org/systemtap/ %if %{with_pyparsing} %if %{with_python3} @@ -412,7 +395,7 @@ with the optional dtrace-compatibility preprocessor to process related %package testsuite Summary: Instrumentation System Testsuite -License: GPLv2+ +License: GPL-2.0-or-later AND GPL AND GPL-2.0-only AND GPL-3.0-or-later AND MIT URL: http://sourceware.org/systemtap/ Requires: systemtap = %{version}-%{release} Requires: systemtap-sdt-devel = %{version}-%{release} @@ -484,7 +467,7 @@ systemtap on the current system. %if %{with_java} %package runtime-java Summary: Systemtap Java Runtime Support -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} # work around fedora ci gating kvetching about i686<->x86-64 conflicts @@ -506,7 +489,7 @@ that probe Java processes running on the OpenJDK runtimes using Byteman. %if %{with_python2_probes} %package runtime-python2 Summary: Systemtap Python 2 Runtime Support -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} @@ -518,7 +501,7 @@ that probe python 2 processes. %if %{with_python3_probes} %package runtime-python3 Summary: Systemtap Python 3 Runtime Support -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} @@ -535,7 +518,7 @@ that probe python 3 processes. %if %{with_python3_probes} %package exporter Summary: Systemtap-prometheus interoperation mechanism -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} @@ -548,7 +531,7 @@ to remote requesters on demand. %if %{with_virthost} %package runtime-virthost Summary: Systemtap Cross-VM Instrumentation - host -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ # only require libvirt-libs really #Requires: libvirt >= 1.0.2 @@ -563,7 +546,7 @@ connection. %if %{with_virtguest} %package runtime-virtguest Summary: Systemtap Cross-VM Instrumentation - guest -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} %if %{with_systemd} @@ -584,7 +567,7 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %if %{with_python3} && %{with_monitor} %package jupyter Summary: ISystemtap jupyter kernel and examples -License: GPLv2+ +License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ Requires: systemtap = %{version}-%{release} @@ -598,15 +581,6 @@ or within a container. %prep %setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 - %build # Enable/disable the dyninst pure-userspace backend @@ -1325,6 +1299,10 @@ exit 0 # PRERELEASE %changelog +* Wed Sep 27 2023 William Cohen - 5.0-16958465gca71442b +- Automated weekly rawhide release +- Applied spec changes from upstream git + * Thu Aug 10 2023 Will Cohen - 4.9-2 - Support for linux 6.4 kernels (rhbz2230079). From f0850bec4ee4cacace46c507a9a06e8e1d53ac63 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Mon, 16 Oct 2023 11:08:43 +0200 Subject: [PATCH 4/7] CI Tests: Update the Regression/python-probing testcase Update the Regression/python-probing testcase to it's newest version in Rawhide. --- tests/Regression/python-probing/main.fmf | 3 +++ tests/Regression/python-probing/runtest.sh | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/tests/Regression/python-probing/main.fmf b/tests/Regression/python-probing/main.fmf index 55b3281..f3abc74 100644 --- a/tests/Regression/python-probing/main.fmf +++ b/tests/Regression/python-probing/main.fmf @@ -9,10 +9,13 @@ framework: beakerlib recommend: - python - python-debuginfo +- python3-debuginfo +- python3.9-debuginfo - systemtap - python2 - python3 - elfutils +- yum-utils duration: 15m extra-summary: /CoreOS/python/Sanity/systemtap extra-task: /CoreOS/python/Sanity/systemtap diff --git a/tests/Regression/python-probing/runtest.sh b/tests/Regression/python-probing/runtest.sh index 5ead47e..81ffd9e 100755 --- a/tests/Regression/python-probing/runtest.sh +++ b/tests/Regression/python-probing/runtest.sh @@ -26,8 +26,8 @@ # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# Include rhts environment . /usr/share/beakerlib/beakerlib.sh || exit 1 +. /etc/os-release || exit 1 # Packages to be tested PACKAGES="${PACKAGES:-python3}" @@ -41,13 +41,19 @@ collection_path=$(which python | sed 's/\/usr\/bin\/python//') rlJournalStart rlPhaseStartSetup - rlAssertRpm --all + # rlAssertRpm --all rlAssertRpm "systemtap" rlLogInfo "Running on kernel: $(uname -r)" rlRun "rpm -qa 'systemtap*'" 0 "Checking systemtap packages" rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" rlRun "cp list.stp top.stp test.py $TmpDir" 0 "Copying scripts" rlRun "pushd $TmpDir" + + # Install needed debuginfo, best effort + rlLogInfo "DEBUGINFOD_URLS=$DEBUGINFOD_URLS" + rlLogInfo "DEBUGINFOD_TIMEOUT=$DEBUGINFOD_TIMEOUT" + rlRun "L=$(stap -p2 -e 'probe python.function.entry {exit()}' | awk -F\" '/process/ {print $2}')" 0-255 + rlRun "debuginfo-install -y $L /usr/bin/python\*" 0-255 rlPhaseEnd rlPhaseStartTest "Verifying ELF file for presence of .probes section" @@ -60,6 +66,8 @@ rlJournalStart # Note that typically you need to be root to run "stap" (or be within # an appropriate group) for script in list top; do + # bz2152970 is a known probem + [ "$ID" == "fedora" ] && [ "$script" == "top" ] && continue rlPhaseStartTest "Test $script" rlRun "rm -rf ~/.systemtap/cache" 0 "Cleaning cache" rlRun "stap $script.stp -v -c \"$PYTHON test.py\" > $script" \ From 12008fc3c1cd7169a0c0e354ff732cf072718a17 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 24 Nov 2023 15:13:38 +0100 Subject: [PATCH 5/7] CI Tests: Robustify Regression/RHEL6Feature-cpp-backtraces --- .../golden-ppc64-17.out | 142 -------------- .../golden-ppc64.out | 76 -------- .../golden-s390x.out | 65 ------- .../golden.el9.aarch64.out | 153 --------------- .../golden.el9.ppc64le.out | 142 -------------- .../golden.el9.s390x.out | 153 --------------- .../golden.el9.x86_64.out | 153 --------------- .../golden.fc39.out | 153 --------------- .../RHEL6Feature-cpp-backtraces/golden.out | 175 ++++++------------ .../RHEL6Feature-cpp-backtraces/main.fmf | 1 - .../RHEL6Feature-cpp-backtraces/runtest.sh | 71 +------ 11 files changed, 63 insertions(+), 1221 deletions(-) delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64-17.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden-s390x.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.aarch64.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.ppc64le.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.s390x.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.x86_64.out delete mode 100644 tests/Regression/RHEL6Feature-cpp-backtraces/golden.fc39.out diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64-17.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64-17.out deleted file mode 100644 index 1a9d1ce..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64-17.out +++ /dev/null @@ -1,142 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64.out deleted file mode 100644 index 0f98c88..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64.out +++ /dev/null @@ -1,76 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -[ADDRESS] [ADDRESS] ADDRESS (inexact) diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden-s390x.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden-s390x.out deleted file mode 100644 index 1f5f902..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden-s390x.out +++ /dev/null @@ -1,65 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.aarch64.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.aarch64.out deleted file mode 100644 index 15c7b1e..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.aarch64.out +++ /dev/null @@ -1,153 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.ppc64le.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.ppc64le.out deleted file mode 100644 index 64f2232..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.ppc64le.out +++ /dev/null @@ -1,142 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.s390x.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.s390x.out deleted file mode 100644 index c0c1262..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.s390x.out +++ /dev/null @@ -1,153 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.x86_64.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.x86_64.out deleted file mode 100644 index ac8d8c9..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.el9.x86_64.out +++ /dev/null @@ -1,153 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.fc39.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.fc39.out deleted file mode 100644 index ac8d8c9..0000000 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.fc39.out +++ /dev/null @@ -1,153 +0,0 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 -================================================================================ -Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] -================================================================================ -Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.out b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.out index 5013977..9f643d6 100644 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/golden.out +++ b/tests/Regression/RHEL6Feature-cpp-backtraces/golden.out @@ -1,142 +1,77 @@ -publicB1 -privateB1 -publicA1 -publicA2 -privateA1 -privateA2 -recursiveA1: 3 -recursiveA1: 2 -recursiveA1: 1 -recursiveA1: 0 ================================================================================ Probed function: [main] - -Backtrace: - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] ================================================================================ Probed function: [publicB1] - -Backtrace: - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +publicB1 ================================================================================ Probed function: [privateB1] - -Backtrace: - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +privateB1 +publicB1 ================================================================================ Probed function: [publicA1] - -Backtrace: - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [publicA2] - -Backtrace: - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +publicA2 +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [privateA1] - -Backtrace: - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +privateA1 +publicA2 +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [privateA2] - -Backtrace: - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +privateA2 +privateA1 +publicA2 +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +recursiveA1 +privateA2 +privateA1 +publicA2 +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +recursiveA1 +recursiveA1 +privateA2 +privateA1 +publicA2 +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +recursiveA1 +recursiveA1 +recursiveA1 +privateA2 +privateA1 +publicA2 +publicA1 +privateB1 +publicB1 ================================================================================ Probed function: [recursiveA1] - -Backtrace: - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA2+ADDRESS/ADDRESS [PATH] - ADDRESS : privateA1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA2+ADDRESS/ADDRESS [PATH] - ADDRESS : publicA1+ADDRESS/ADDRESS [PATH] - ADDRESS : privateB1+ADDRESS/ADDRESS [PATH] - ADDRESS : publicB1+ADDRESS/ADDRESS [PATH] - ADDRESS : main+ADDRESS/ADDRESS [PATH] - ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH] - ADDRESS : _start+ADDRESS/ADDRESS [PATH] +recursiveA1 +recursiveA1 +recursiveA1 +recursiveA1 +privateA2 +privateA1 +publicA2 +publicA1 +privateB1 +publicB1 diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/main.fmf b/tests/Regression/RHEL6Feature-cpp-backtraces/main.fmf index 7b71ea0..88d542d 100644 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/main.fmf +++ b/tests/Regression/RHEL6Feature-cpp-backtraces/main.fmf @@ -8,7 +8,6 @@ framework: beakerlib recommend: - systemtap - gcc-c++ - - glibc-debuginfo duration: 10m extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces diff --git a/tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh b/tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh index a2ad6bc..629c082 100755 --- a/tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh +++ b/tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh @@ -32,36 +32,15 @@ PACKAGE="systemtap" -inputAs_rlLog(){ - while read line - do - rlLog "$line" - done -} - -compareAndLog(){ - rlAssertNotDiffer "$1" "$2" - if [ "$?" != "0" ] - then - rlLog "Difference:" - diff -u "$1" "$2" | inputAs_rlLog - fi -} - rlJournalStart rlPhaseStartSetup rlRun "g++ classes.cpp main.cpp -g -o classes" - rlAssertRpm glibc # show NVR - rlAssertRpm glibc-debuginfo rlRun "stap-prep" 0-255 rlPhaseEnd rlPhaseStartTest - rlRun "stap --ldd backtrackator.stp -c ./classes > output.out" - rlRun "cp output.out unprocessed.out" - rlLog "Processing output" - rlRun "sed -i -r -e 's/0x[0-9a-f]+/ADDRESS/g' output.out" + rlRun "stap --ldd backtrackator.stp -c ./classes -o output.out" rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA1[A-Za-z0-9]*/publicA1/g' output.out" rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA2[A-Za-z0-9]*/publicA2/g' output.out" rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA1[A-Za-z0-9]*/privateA1/g' output.out" @@ -69,53 +48,19 @@ rlPhaseStartTest rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*recursiveA1[A-Za-z0-9]*/recursiveA1/g' output.out" rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicB1[A-Za-z0-9]*/publicB1/g' output.out" rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateB1[A-Za-z0-9]*/privateB1/g' output.out" - rlRun "sed -i -r -e 's!\[((.*\/.*)|(classes))\]!\[PATH\]!g' output.out" - # http://stackoverflow.com/questions/13963150/what-does-the-gcc-function-suffix-isra-mean - rlIsRHEL '>=' 7 && arch | grep -q ppc && \ - rlRun "sed -i 's/generic_start_main.isra.0/generic_start_main/' output.out" - - if rlIsRHEL '>=' 9; then - [[ "`uname -m`" =~ "ppc64" ]] && \ - rlRun "cat golden.el9.`arch`.out > golden-ppc64-17.out" || \ - rlRun "cat golden.el9.`arch`.out > golden.out" - fi - - if [ "$ID" == "fedora" ] && test "0$VERSION_ID" -ge 39; then - rlRun "cat golden.fc39.out > golden.out" - fi - - # RHEL-9 s390x runtime/stack-s390.c:63:52: error: ‘ASYNC_SIZE’ undeclared - # (PAGE_SIZE << 1) on stap side seems to work it around - - - if [ "`uname -m`" == "s390x" ] && ( rlIsRHEL 5 || rlIsRHEL 4 ) - then - rlLog "Detected we are running on: s390x && RHEL <= 5" - rlLog "Using special expected output" - compareAndLog golden-s390x.out output.out - elif [ "`uname -m`" == "ppc64" ] && ( rlIsRHEL 5 || rlIsRHEL 4 ) - then - rlLog "Detected we are running on: ppc64 && RHEL <= 5" - rlLog "Using special expected output" - compareAndLog golden-ppc64.out output.out - elif [[ "`uname -m`" =~ "ppc64" ]] - then - rlLog "Detected we are running on: ppc64" - rlLog "Using special expected output" - compareAndLog golden-ppc64-17.out output.out - else - rlLog "Detected we are running on: nothing special" - rlLog "Using generic expected output" - compareAndLog golden.out output.out - fi + rlRun "grep -o -e publicA1 -e publicA2 -e privateA1 -e privateA2 -e recursiveA1 \ + -e publicB1 -e privateB1 -e 'Probed function:.*' -e '=*' \ + output.out > output.processed" + rlRun "diff output.processed golden.out" rlPhaseEnd rlPhaseStartCleanup rlFileSubmit output.out + rlFileSubmit output.processed rlFileSubmit golden.out - rlFileSubmit unprocessed.out - rlRun "rm -f classes output.out unprocessed.out" + rlRun "rm -f output.out output.processed" rlPhaseEnd rlJournalPrintText + rlJournalEnd From 9239eba3191e5769023f33bfc313f6c68d38b9bb Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 25 Jan 2024 15:03:20 -0500 Subject: [PATCH 6/7] restore SPDX license note --- systemtap.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/systemtap.spec b/systemtap.spec index 44226fb..5c480ee 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -1311,6 +1311,7 @@ exit 0 * Sat Nov 04 2023 Frank Ch. Eigler - 5.0-1 - Upstream release, see wiki page below for detailed notes. https://sourceware.org/systemtap/wiki/SystemTapReleases +- migrated to SPDX license * Fri Apr 28 2023 Frank Ch. Eigler - 4.9-1 - Upstream release, see wiki page below for detailed notes. From 9788ad93d3a4cbf09402c65c0e2e06c374e7d7b4 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 26 Apr 2024 18:15:05 -0400 Subject: [PATCH 7/7] release 5.1 --- .gitignore | 1 + RHEL-16549.patch | 59 ------------------------------------------------ sources | 2 +- systemtap.spec | 47 ++++++++++---------------------------- 4 files changed, 14 insertions(+), 95 deletions(-) delete mode 100644 RHEL-16549.patch diff --git a/.gitignore b/.gitignore index e64fe0a..0d59b35 100644 --- a/.gitignore +++ b/.gitignore @@ -97,3 +97,4 @@ /systemtap-5.1~pre17060399gb6abf4bd.tar.gz /systemtap-5.1~pre17062114g2604d135.tar.gz /systemtap-5.1~pre17062192g5fd8daba.tar.gz +/systemtap-5.1.tar.gz diff --git a/RHEL-16549.patch b/RHEL-16549.patch deleted file mode 100644 index 4469759..0000000 --- a/RHEL-16549.patch +++ /dev/null @@ -1,59 +0,0 @@ -commit 0fef0bd60ff4b359a32da52262855dfe82fe51ae -gpg: Signature made Tue 14 Nov 2023 03:20:12 PM EST -gpg: using RSA key 4B35DCD2EA45C4E0783135BC8094BE9C9F4696A1 -gpg: Can't check signature: No public key -Author: Yichun Zhang (agentzh) -Date: Fri Nov 10 21:51:56 2023 -0800 - - PR31051: memory and uprobe leaks in early uprobe registraton code when errors happen - -diff --git a/runtime/linux/uprobes-inode.c b/runtime/linux/uprobes-inode.c -index 997f4528d..289cce00b 100644 ---- a/runtime/linux/uprobes-inode.c -+++ b/runtime/linux/uprobes-inode.c -@@ -529,6 +529,16 @@ stapiu_init(struct stapiu_consumer *consumers, size_t nconsumers) - } - - if (unlikely(ret != 0)) { -+ for ( ;; ) { -+ struct stapiu_consumer *c = &consumers[i]; -+ // protect against conceivable stapiu_refresh() at same time -+ mutex_lock(& c->consumer_lock); -+ stapiu_consumer_unreg(c); -+ mutex_unlock(& c->consumer_lock); -+ if (i == 0) -+ break; -+ i--; -+ } - return ret; - } - -@@ -545,7 +555,27 @@ stapiu_init(struct stapiu_consumer *consumers, size_t nconsumers) - break; - } - } -- return ret; -+ -+ if (unlikely(ret != 0)) { -+ int j; -+ for (j = 0; j < nconsumers; ++j) { -+ struct stapiu_consumer *c = &consumers[j]; -+ // protect against conceivable stapiu_refresh() at same time -+ mutex_lock(& c->consumer_lock); -+ stapiu_consumer_unreg(c); -+ mutex_unlock(& c->consumer_lock); -+ } -+ for ( ;; ) { -+ struct stapiu_consumer *c = &consumers[i]; -+ stap_cleanup_task_finder_target(&c->finder); -+ if (i == 0) -+ break; -+ i--; -+ } -+ return ret; -+ } -+ -+ return 0; - } - - diff --git a/sources b/sources index 75bc5a4..b6cca60 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (systemtap-5.1~pre17062192g5fd8daba.tar.gz) = 423b09c001a2446d807be9fb8b66226545dddb15e7e57af01780966b17af5e2d8c16f44ce3f77d9a884c4e64a379604f9fb493b2a0f5e6ae50d65de19d9af992 +SHA512 (systemtap-5.1.tar.gz) = da0fe237d2124031a5786d1221dbb420d90da5497376715fd43a7a9f61a354a229c1128e67ce6becbc012aa3796dc5d337149e239e3c1def0651b179e5bf199f diff --git a/systemtap.spec b/systemtap.spec index 28eb08d..5e5f1d3 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -93,7 +93,10 @@ \ g stapusr 156\ g stapsys 157\ -g stapdev 158 +g stapdev 158\ +g stapunpriv 159\ +u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin\ +m stapunpriv stapunpriv %define _systemtap_server_preinstall \ # See systemd-sysusers(8) sysusers.d(5)\ @@ -118,7 +121,7 @@ m stapdev stapdev Name: systemtap # PRERELEASE -Version: 5.1~pre17062192g5fd8daba +Version: 5.1 Release: 1%{?release_override}%{?dist} # for version, see also configure.ac @@ -154,7 +157,7 @@ Release: 1%{?release_override}%{?dist} Summary: Programmable system-wide instrumentation system License: GPL-2.0-or-later URL: http://sourceware.org/systemtap/ -Source: %{name}-%{version}.tar.gz +Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz # Build* BuildRequires: make @@ -843,6 +846,9 @@ echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdi getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev +getent passwd stapunpriv >/dev/null || \ + useradd -c "Systemtap Unprivileged User" -u 159 -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv 2>/dev/null || \ + useradd -c "Systemtap Unprivileged User" -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv %endif exit 0 @@ -1305,38 +1311,9 @@ exit 0 # PRERELEASE %changelog -* Thu Jan 25 2024 Frank Ch. Eigler - 5.1-17062192g5fd8daba -- Automated weekly rawhide release -- Applied spec changes from upstream git - -* Thu Jan 25 2024 Frank Ch. Eigler - 5.1-17062114g2604d135 -- Automated weekly rawhide release -- Applied spec changes from upstream git - -* Tue Jan 23 2024 Frank Ch. Eigler - 5.1-17060399gb6abf4bd -- Automated weekly rawhide release -- Applied spec changes from upstream git - -* Mon Jan 22 2024 Frank Ch. Eigler - 5.1-17059382g67086c54 -- Automated weekly rawhide release -- Applied spec changes from upstream git - -* Thu Jan 18 2024 Frank Ch. Eigler - 5.1-17056139g6c0b92b3 -- Automated weekly rawhide release -- Applied spec changes from upstream git - -* Thu Jan 18 2024 Frank Ch. Eigler - 5.1-17056120g2ccc0c4c -- Automated weekly rawhide release -- Applied spec changes from upstream git - -* Thu Jan 18 2024 Jonathan Wakely - 5.0-4 -- Rebuilt for Boost 1.83 - -* Tue Nov 14 2023 Frank Ch. Eigler - 5.0-3 -- RHEL-16549 - -* Mon Nov 06 2023 Frank Ch. Eigler - 5.0-2 -- License header tweak +* Fri Apr 26 2024 Frank Ch. Eigler - 5.1-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases * Sat Nov 04 2023 Frank Ch. Eigler - 5.0-1 - Upstream release, see wiki page below for detailed notes.