Compare commits
14 Commits
aa6fc8f4c3
...
16ba7e1ae4
Author | SHA1 | Date |
---|---|---|
Miro Hrončok | 16ba7e1ae4 | |
Frank Ch. Eigler | 3a4041d93e | |
Fedora Release Engineering | 0ee54e3e30 | |
Frank Ch. Eigler | 49549bc90e | |
Frank Ch. Eigler | f2ca371421 | |
Igor Gnatenko | b2c2629c5d | |
Igor Gnatenko | 990fc26c0a | |
Stan Cox | bb12cb8ceb | |
Frank Ch. Eigler | 91921b7935 | |
Serhei Makarov | a6724f27dd | |
Serhei Makarov | af410607bf | |
Serhei Makarov | 1a31851092 | |
Frank Ch. Eigler | 34ba7d8158 | |
Frank Ch. Eigler | 840641a3c3 |
|
@ -28,3 +28,10 @@
|
||||||
/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
|
/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
|
||||||
/systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz
|
/systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz
|
||||||
/systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz
|
/systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz
|
||||||
|
/systemtap-4.1-0.20190327git2ede4cecb20c.tar.gz
|
||||||
|
/systemtap-4.1-0.20190502git446e7c358247.tar.gz
|
||||||
|
/systemtap-4.1.tar.gz
|
||||||
|
/systemtap-4.2-0.20190513git8b868f3dd030.tar.gz
|
||||||
|
/systemtap-4.2-0.20190613git2d77f531a5d1.tar.gz
|
||||||
|
/systemtap-4.2-0.20190618git47c3f6c60174.tar.gz
|
||||||
|
/systemtap-4.2-0.20190807gitebfc300ec2ad.tar.gz
|
||||||
|
|
|
@ -1,134 +0,0 @@
|
||||||
commit fba365b4d365f54ab7ef60272996dc2889461640
|
|
||||||
Author: Frank Ch. Eigler <fche@redhat.com>
|
|
||||||
Date: Thu Nov 15 16:27:58 2018 -0500
|
|
||||||
|
|
||||||
PR23890: tolerate f29+ style ELF files
|
|
||||||
|
|
||||||
Reported by kenj@pcp, with mjw et al.'s help, we found out why
|
|
||||||
systemtap on fedora 29+ routinely fails to verify build-ids for
|
|
||||||
userspace programs. F29 adds a separate loadable segment with the
|
|
||||||
relevante .note's, before the main text segment. The runtime code
|
|
||||||
that listens to mmaps-in-progress now accepts this configuration.
|
|
||||||
As long as the .note section is loaded (time-wise and space-wise)
|
|
||||||
before the .text one(s), we're good.
|
|
||||||
|
|
||||||
diff --git a/runtime/linux/uprobes-inode.c b/runtime/linux/uprobes-inode.c
|
|
||||||
index 6d450c90d87c..b9604e6385ce 100644
|
|
||||||
--- a/runtime/linux/uprobes-inode.c
|
|
||||||
+++ b/runtime/linux/uprobes-inode.c
|
|
||||||
@@ -563,9 +563,11 @@ stapiu_change_plus(struct stapiu_target* target, struct task_struct *task,
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Actually do the check. */
|
|
||||||
+ /* Actually do the check. NB: on F29+, offset may not equal 0
|
|
||||||
+ for LOADable "R E" segments, because the read-only .note.*
|
|
||||||
+ stuff may have been loaded earlier, separately. PR23890. */
|
|
||||||
if ((rc = _stp_usermodule_check(task, target->filename,
|
|
||||||
- relocation))) {
|
|
||||||
+ relocation - offset))) {
|
|
||||||
/* Be sure to release the inode on failure. */
|
|
||||||
iput(target->inode);
|
|
||||||
target->inode = NULL;
|
|
||||||
|
|
||||||
commit 824e9ab80108c1882842fc2a4b4abd1aee990ecc (upstream/master)
|
|
||||||
Author: Frank Ch. Eigler <fche@redhat.com>
|
|
||||||
Date: Thu Nov 15 20:22:34 2018 -0500
|
|
||||||
|
|
||||||
PR23890 bonus: show nicer messages upon a buildid mismatch
|
|
||||||
|
|
||||||
Instead of producing only a one-byte error, we now compute the entire
|
|
||||||
builds into hex text strings, and report the whole shebang on an
|
|
||||||
error. (Also, ditch some 2.6.27 kernel-bug compatibiltiy fossil
|
|
||||||
in the area.)
|
|
||||||
|
|
||||||
diff --git a/runtime/sym.c b/runtime/sym.c
|
|
||||||
index 60f0fa980964..111147ee555d 100644
|
|
||||||
--- a/runtime/sym.c
|
|
||||||
+++ b/runtime/sym.c
|
|
||||||
@@ -636,30 +636,46 @@ unsigned long _stp_linenumber_lookup(unsigned long addr, struct task_struct *tas
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+
|
|
||||||
+// Compare two build-id hex strings, each of length m->build_id_len bytes.
|
|
||||||
+// Since mismatches can mystify, produce a hex-textual version of both
|
|
||||||
+// expected and actual strings, and compare textually. Failure messages
|
|
||||||
+// are more intelligible this way.
|
|
||||||
static int _stp_build_id_check (struct _stp_module *m,
|
|
||||||
unsigned long notes_addr,
|
|
||||||
struct task_struct *tsk)
|
|
||||||
{
|
|
||||||
- int j;
|
|
||||||
+ enum { max_buildid_hexstring = 65 };
|
|
||||||
+ static const char hexnibble[16]="0123456789abcdef";
|
|
||||||
+ char hexstring_theory[max_buildid_hexstring], hexstring_practice[max_buildid_hexstring];
|
|
||||||
+ int buildid_len = min((max_buildid_hexstring-1)/2, m->build_id_len);
|
|
||||||
+
|
|
||||||
+ int i, j;
|
|
||||||
+
|
|
||||||
+ memset(hexstring_theory, '\0', max_buildid_hexstring);
|
|
||||||
+ for (i=0, j=0; j<buildid_len; j++) {
|
|
||||||
+ unsigned char theory = m->build_id_bits[j];
|
|
||||||
+ hexstring_theory[i++] = hexnibble[theory >> 4];
|
|
||||||
+ hexstring_theory[i++] = hexnibble[theory & 15];
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- for (j = 0; j < m->build_id_len; j++) {
|
|
||||||
+ memset(hexstring_practice, '\0', max_buildid_hexstring);
|
|
||||||
+ for (i=0, j=0; j<buildid_len; j++) {
|
|
||||||
/* Use set_fs / get_user to access conceivably invalid addresses.
|
|
||||||
* If loc2c-runtime.h were more easily usable, a deref() loop
|
|
||||||
* could do it too. */
|
|
||||||
mm_segment_t oldfs = get_fs();
|
|
||||||
int rc;
|
|
||||||
- unsigned char theory, practice = 0;
|
|
||||||
+ unsigned char practice = 0;
|
|
||||||
|
|
||||||
#ifdef STAPCONF_PROBE_KERNEL
|
|
||||||
if (!tsk) {
|
|
||||||
- theory = m->build_id_bits[j];
|
|
||||||
set_fs(KERNEL_DS);
|
|
||||||
rc = probe_kernel_read(&practice, (void*)(notes_addr + j), 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
- theory = m->build_id_bits[j];
|
|
||||||
set_fs (tsk ? USER_DS : KERNEL_DS);
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -685,21 +701,19 @@ static int _stp_build_id_check (struct _stp_module *m,
|
|
||||||
}
|
|
||||||
set_fs(oldfs);
|
|
||||||
|
|
||||||
- if (rc || (theory != practice)) {
|
|
||||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
|
|
||||||
- _stp_error ("Build-id mismatch [man error::buildid]: \"%s\" byte %d (0x%02x vs 0x%02x) address %#lx rc %d\n",
|
|
||||||
- m->path, j, theory, practice, notes_addr, rc);
|
|
||||||
+ if (rc == 0) { // got actual data byte
|
|
||||||
+ hexstring_practice[i++] = hexnibble[practice >> 4];
|
|
||||||
+ hexstring_practice[i++] = hexnibble[practice & 15];
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // have two strings, will travel
|
|
||||||
+ if (strcmp (hexstring_practice, hexstring_theory)) {
|
|
||||||
+ _stp_error ("Build-id mismatch [man error::buildid]: \"%s\" address %#lx, expected %s actual %s\n",
|
|
||||||
+ m->path, notes_addr, hexstring_theory, hexstring_practice);
|
|
||||||
return 1;
|
|
||||||
-#else
|
|
||||||
- /* This branch is a surrogate for kernels affected by Fedora bug
|
|
||||||
- * #465873. */
|
|
||||||
- _stp_warn (KERN_WARNING
|
|
||||||
- "Build-id mismatch [man error::buildid]: \"%s\" byte %d (0x%02x vs 0x%02x) rc %d\n",
|
|
||||||
- m->path, j, theory, practice, rc);
|
|
||||||
-#endif
|
|
||||||
- break;
|
|
||||||
- } /* end mismatch */
|
|
||||||
- } /* end per-byte check loop */
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
||||||
SHA512 (systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz) = 3ab90e1e3de4177513ea0dede72e8da9208c1f3a55fca0a88aabb63a67f4a3d872fa04287593f1abfdc27193a3cc7ee6c0d540bb61e16a61fd6b9b133f1ff9bf
|
SHA512 (systemtap-4.2-0.20190807gitebfc300ec2ad.tar.gz) = 378d8ba68809318c0a962dbbc2f98034f2396b87dd8bef4e5d81e98cba1aa8dc53e7b56ec2e8cc9a87a14c0d16b2921aaca6dfd63fc871fee3bab070015d3482
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
%{!?with_python2_probes: %global with_python2_probes (0%{?fedora} <= 28 && 0%{?rhel} <= 7)}
|
%{!?with_python2_probes: %global with_python2_probes (0%{?fedora} <= 28 && 0%{?rhel} <= 7)}
|
||||||
%{!?with_python3_probes: %global with_python3_probes (0%{?fedora} >= 23 || 0%{?rhel} > 7)}
|
%{!?with_python3_probes: %global with_python3_probes (0%{?fedora} >= 23 || 0%{?rhel} > 7)}
|
||||||
%{!?with_httpd: %global with_httpd 0}
|
%{!?with_httpd: %global with_httpd 0}
|
||||||
|
%{!?with_specific_python: %global with_specific_python 0%{?fedora} >= 31}
|
||||||
|
|
||||||
# Virt is supported on these arches, even on el7, but it's not in core EL7
|
# Virt is supported on these arches, even on el7, but it's not in core EL7
|
||||||
%if 0%{?rhel} <= 7
|
%if 0%{?rhel} <= 7
|
||||||
|
@ -86,8 +87,8 @@
|
||||||
%define __brp_mangle_shebangs_exclude_from .stp$
|
%define __brp_mangle_shebangs_exclude_from .stp$
|
||||||
|
|
||||||
Name: systemtap
|
Name: systemtap
|
||||||
Version: 4.1
|
Version: 4.2
|
||||||
Release: 0.20190308gitb3627d9aa037%{?dist}
|
Release: 0.20190808gitebfc300ec2ad%{?dist}
|
||||||
# for version, see also configure.ac
|
# for version, see also configure.ac
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,7 +122,7 @@ Release: 0.20190308gitb3627d9aa037%{?dist}
|
||||||
Summary: Programmable system-wide instrumentation system
|
Summary: Programmable system-wide instrumentation system
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://sourceware.org/systemtap/
|
URL: http://sourceware.org/systemtap/
|
||||||
Source: %{name}-%{version}-0.20190308gitb3627d9aa037.tar.gz
|
Source: %{name}-%{version}-0.20190807gitebfc300ec2ad.tar.gz
|
||||||
|
|
||||||
# Build*
|
# Build*
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
|
@ -203,6 +204,9 @@ BuildRequires: python-setuptools
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
BuildRequires: python3-setuptools
|
BuildRequires: python3-setuptools
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with_specific_python}
|
||||||
|
BuildRequires: /usr/bin/pathfix.py
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with_httpd}
|
%if %{with_httpd}
|
||||||
BuildRequires: libmicrohttpd-devel
|
BuildRequires: libmicrohttpd-devel
|
||||||
|
@ -257,8 +261,8 @@ License: GPLv2+
|
||||||
URL: http://sourceware.org/systemtap/
|
URL: http://sourceware.org/systemtap/
|
||||||
|
|
||||||
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
|
||||||
Recommends: kernel-debug-devel
|
Recommends: (kernel-debug-devel if kernel-debug)
|
||||||
Recommends: kernel-devel
|
Recommends: (kernel-devel if kernel)
|
||||||
%else
|
%else
|
||||||
Requires: kernel-devel-uname-r
|
Requires: kernel-devel-uname-r
|
||||||
%endif
|
%endif
|
||||||
|
@ -423,6 +427,7 @@ URL: http://sourceware.org/systemtap/
|
||||||
Requires: systemtap-runtime = %{version}-%{release}
|
Requires: systemtap-runtime = %{version}-%{release}
|
||||||
Requires: byteman > 2.0
|
Requires: byteman > 2.0
|
||||||
Requires: iproute
|
Requires: iproute
|
||||||
|
Requires: java-devel
|
||||||
|
|
||||||
%description runtime-java
|
%description runtime-java
|
||||||
This package includes support files needed to run systemtap scripts
|
This package includes support files needed to run systemtap scripts
|
||||||
|
@ -766,6 +771,11 @@ done
|
||||||
touch $RPM_BUILD_ROOT%{dracutstap}/params.conf
|
touch $RPM_BUILD_ROOT%{dracutstap}/params.conf
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with_specific_python}
|
||||||
|
# Some files got ambiguous python shebangs, we fix them after everything else is done
|
||||||
|
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/*
|
||||||
|
%endif
|
||||||
|
|
||||||
%pre runtime
|
%pre runtime
|
||||||
getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
|
getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
|
||||||
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
|
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
|
||||||
|
@ -1256,43 +1266,39 @@ done
|
||||||
|
|
||||||
# PRERELEASE
|
# PRERELEASE
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Mar 08 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190308gitb3627d9aa037
|
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 4.2-0.20190808gitebfc300ec2ad
|
||||||
|
- Rebuilt for Python 3.8
|
||||||
|
|
||||||
|
* Wed Aug 07 2019 Frank Ch. Eigler <fche@redhat.com> - 4.2-0.20190807gitebfc300ec2ad
|
||||||
- Automated weekly rawhide release
|
- Automated weekly rawhide release
|
||||||
- Applied spec changes from upstream git
|
- Applied spec changes from upstream git
|
||||||
|
|
||||||
* Thu Mar 07 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190307gitf7fb9c9182dc
|
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.2-0.20190619git47c3f6c60174
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 18 2019 Frank Ch. Eigler <fche@redhat.com> - 4.2-0.20190618git47c3f6c60174
|
||||||
- Automated weekly rawhide release
|
- Automated weekly rawhide release
|
||||||
- Applied spec changes from upstream git
|
- Applied spec changes from upstream git
|
||||||
|
|
||||||
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.1-0.20190208git4e76869512d2
|
* Thu Jun 13 2019 Frank Ch. Eigler <fche@redhat.com> - 4.2-0.20190613git2d77f531a5d1
|
||||||
- Rebuild for readline 8.0
|
|
||||||
|
|
||||||
* Thu Feb 07 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190207git4e76869512d2
|
|
||||||
- Automated weekly rawhide release
|
- Automated weekly rawhide release
|
||||||
- Applied spec changes from upstream git
|
- Applied spec changes from upstream git
|
||||||
|
|
||||||
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.1-0.20190126git905865da1024
|
* Mon Jun 10 22:13:24 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.2-0.20190606git8b868f3dd030
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
- Rebuild for RPM 4.15
|
||||||
|
|
||||||
* Fri Jan 25 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190125git905865da1024
|
* Mon Jun 10 15:42:06 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.2-0.20190605git8b868f3dd030
|
||||||
|
- Rebuild for RPM 4.15
|
||||||
|
|
||||||
|
* Tue Jun 04 2019 Stan Cox <scox@redhat.com> - 4.2-0.20190604git8b868f3dd030
|
||||||
|
- Rebuild for dyninst 10.1.0
|
||||||
|
|
||||||
|
* Mon May 13 2019 Frank Ch. Eigler <fche@redhat.com> - 4.2-0.20190513git8b868f3dd030
|
||||||
- Automated weekly rawhide release
|
- Automated weekly rawhide release
|
||||||
- Applied spec changes from upstream git
|
- Applied spec changes from upstream git
|
||||||
|
|
||||||
* Wed Jan 23 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20190123gitc8084763b75f
|
* Tue May 07 2019 Serguei Makarov <smakarov@redhat.com> - 4.1-1
|
||||||
- Automated weekly rawhide release
|
- Upstream release.
|
||||||
- Applied spec changes from upstream git
|
|
||||||
|
|
||||||
* Tue Dec 04 2018 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20181204git891810c246d6
|
|
||||||
- Automated weekly rawhide release
|
|
||||||
- Applied spec changes from upstream git
|
|
||||||
|
|
||||||
* Mon Dec 03 2018 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20181203gitec3b46eb9b19
|
|
||||||
- Automated weekly rawhide release
|
|
||||||
- Applied spec changes from upstream git
|
|
||||||
|
|
||||||
* Mon Nov 26 2018 Frank Ch. Eigler <fche@redhat.com> - 4.1-0.20181126git47ce37a149b6
|
|
||||||
- Automated weekly rawhide release
|
|
||||||
- Applied spec changes from upstream git
|
|
||||||
|
|
||||||
* Sat Oct 13 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-1
|
* Sat Oct 13 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-1
|
||||||
- Upstream release.
|
- Upstream release.
|
||||||
|
|
Loading…
Reference in New Issue