The package rpms/systemtap.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/systemtap.git/commit/?id=e6b0de4d....
Change:
+%ifarch ppc ppc64 %{sparc} %{mips}
Thanks.
Full change:
============
commit 5a6c4fbb044a64052f6725edbe04ed62e68dcc1c
Merge: 8edd27e 840641a
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Fri Mar 29 10:05:43 2019 -0400
Merge branch 'master' into f28
* master:
Automated weekly systemtap rawhide release: 0.20190327git2ede4cecb20c
Automated weekly systemtap rawhide release: 0.20190308gitb3627d9aa037
Automated weekly systemtap rawhide release: 0.20190307gitf7fb9c9182dc
Rebuild for readline 8.0
Automated weekly systemtap rawhide release: 0.20190207git4e76869512d2
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Automated weekly systemtap rawhide release: 0.20190125git905865da1024
Automated weekly systemtap rawhide release: 0.20190123gitc8084763b75f
Automated weekly systemtap rawhide release: 0.20181204git891810c246d6
Automated weekly systemtap rawhide release: 0.20181203gitec3b46eb9b19
Automated weekly systemtap rawhide release: 0.20181126git47ce37a149b6
Automated weekly systemtap rawhide release: 0.20181126gitf082df49dd91
rhbz1650371
Crash and virt host supported on ppc64le and aarch64, Move chkconfig to traditional
initscripts deps (not required for systemd), spec cleanups
upstream release 3.3
3.2-11 spec update.
3.2-11
3.2-10
3.2-9 - Add unwind-fallback.patch.
diff --cc systemtap.spec
index afd579f,b79c237..1acb536
--- a/systemtap.spec
+++ b/systemtap.spec
@@@ -1271,6 -1256,48 +1256,10 @@@ don
# PRERELEASE
%changelog
+ * Wed Mar 27 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190327git2ede4cecb20c
+ - Automated weekly rawhide release
+ - Applied spec changes from upstream git
+
-* Fri Mar 08 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190308gitb3627d9aa037
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Thu Mar 07 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190307gitf7fb9c9182dc
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
4.1-0.20190208git4e76869512d2
-- Rebuild for readline 8.0
-
-* Thu Feb 07 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190207git4e76869512d2
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Sun Feb 03 2019 Fedora Release Engineering <releng(a)fedoraproject.org> -
4.1-0.20190126git905865da1024
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Fri Jan 25 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190125git905865da1024
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Wed Jan 23 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190123gitc8084763b75f
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Tue Dec 04 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181204git891810c246d6
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Mon Dec 03 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181203gitec3b46eb9b19
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
-* Mon Nov 26 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181126git47ce37a149b6
-- Automated weekly rawhide release
-- Applied spec changes from upstream git
-
* Sat Oct 13 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-1
- Upstream release.
commit 840641a3c39c6b34380dfd2db132f7db6d024aac
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Wed Mar 27 12:35:25 2019 -0400
Automated weekly systemtap rawhide release: 0.20190327git2ede4cecb20c
diff --git a/.gitignore b/.gitignore
index 9af6b58..7751480 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,4 @@
/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
/systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz
/systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz
+/systemtap-4.1-0.20190327git2ede4cecb20c.tar.gz
diff --git a/sources b/sources
index 68a6278..4ff23fd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz) =
3ab90e1e3de4177513ea0dede72e8da9208c1f3a55fca0a88aabb63a67f4a3d872fa04287593f1abfdc27193a3cc7ee6c0d540bb61e16a61fd6b9b133f1ff9bf
+SHA512 (systemtap-4.1-0.20190327git2ede4cecb20c.tar.gz) =
a6874faee0bffb05db0afda795e7b55deca4d84cb9e9cba66aa139bb5204dd34516af96d7a5c9fa8131542b2b529e7a1f9b64c6cc58446b3d3a00e16cd1d6bca
diff --git a/systemtap.spec b/systemtap.spec
index 0ac68d4..b79c237 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190308gitb3627d9aa037%{?dist}
+Release: 0.20190327git2ede4cecb20c%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20190308gitb3627d9aa037%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20190308gitb3627d9aa037.tar.gz
+Source: %{name}-%{version}-0.20190327git2ede4cecb20c.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Wed Mar 27 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190327git2ede4cecb20c
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Fri Mar 08 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190308gitb3627d9aa037
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit aa6fc8f4c35df8330b486ad1e15c844957648eb4
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Fri Mar 8 11:40:12 2019 -0500
Automated weekly systemtap rawhide release: 0.20190308gitb3627d9aa037
diff --git a/.gitignore b/.gitignore
index 94411c3..9af6b58 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@
/systemtap-4.1-0.20190125git905865da1024.tar.gz
/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
/systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz
+/systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz
diff --git a/sources b/sources
index 9b0c5ce..68a6278 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz) =
3a4bf3e3d40d9f4bde79796a12868b46a07fe3bec3bf84177da8eb7c3516168b1889e9f5b9a6e5054c9b136596d37b1a08640f87bb8717eb6b831b983baf5581
+SHA512 (systemtap-4.1-0.20190308gitb3627d9aa037.tar.gz) =
3ab90e1e3de4177513ea0dede72e8da9208c1f3a55fca0a88aabb63a67f4a3d872fa04287593f1abfdc27193a3cc7ee6c0d540bb61e16a61fd6b9b133f1ff9bf
diff --git a/systemtap.spec b/systemtap.spec
index 8deb0b3..0ac68d4 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190307gitf7fb9c9182dc%{?dist}
+Release: 0.20190308gitb3627d9aa037%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20190307gitf7fb9c9182dc%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20190307gitf7fb9c9182dc.tar.gz
+Source: %{name}-%{version}-0.20190308gitb3627d9aa037.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Fri Mar 08 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190308gitb3627d9aa037
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Thu Mar 07 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190307gitf7fb9c9182dc
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit 76a4cb15d7248f50f099e98cb3dd5374c0e74711
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Thu Mar 7 15:58:52 2019 -0500
Automated weekly systemtap rawhide release: 0.20190307gitf7fb9c9182dc
diff --git a/.gitignore b/.gitignore
index c6a99cf..94411c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@
/systemtap-4.1-0.20190123gitc8084763b75f.tar.gz
/systemtap-4.1-0.20190125git905865da1024.tar.gz
/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
+/systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz
diff --git a/sources b/sources
index c8a3eeb..9b0c5ce 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20190207git4e76869512d2.tar.gz) =
1b1367d73709514b37d8266b3d04a8a86d45b72e443d9b60a3ba3176418418d341af40c3235aa419d73d4ecf1200957fb3ab8c8956dbddacc6707bde48dc8b94
+SHA512 (systemtap-4.1-0.20190307gitf7fb9c9182dc.tar.gz) =
3a4bf3e3d40d9f4bde79796a12868b46a07fe3bec3bf84177da8eb7c3516168b1889e9f5b9a6e5054c9b136596d37b1a08640f87bb8717eb6b831b983baf5581
diff --git a/systemtap.spec b/systemtap.spec
index 124c839..8deb0b3 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190208git4e76869512d2%{?dist}
+Release: 0.20190307gitf7fb9c9182dc%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20190208git4e76869512d2%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20190207git4e76869512d2.tar.gz
+Source: %{name}-%{version}-0.20190307gitf7fb9c9182dc.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Thu Mar 07 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190307gitf7fb9c9182dc
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
4.1-0.20190208git4e76869512d2
- Rebuild for readline 8.0
commit e85c4ec28f0a1a2f3d95f9a686d77b3e58141e1e
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Feb 17 09:30:53 2019 +0100
Rebuild for readline 8.0
diff --git a/systemtap.spec b/systemtap.spec
index 11739d4..124c839 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190207git4e76869512d2%{?dist}
+Release: 0.20190208git4e76869512d2%{?dist}
# for version, see also configure.ac
@@ -1256,6 +1256,9 @@ done
# PRERELEASE
%changelog
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
4.1-0.20190208git4e76869512d2
+- Rebuild for readline 8.0
+
* Thu Feb 07 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190207git4e76869512d2
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit 38eab87aa28c1735acbe9e18a5cd086a1ef3d9e8
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Thu Feb 7 10:14:17 2019 -0500
Automated weekly systemtap rawhide release: 0.20190207git4e76869512d2
diff --git a/.gitignore b/.gitignore
index bf421ef..c6a99cf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@
/systemtap-4.1-0.20181204git891810c246d6.tar.gz
/systemtap-4.1-0.20190123gitc8084763b75f.tar.gz
/systemtap-4.1-0.20190125git905865da1024.tar.gz
+/systemtap-4.1-0.20190207git4e76869512d2.tar.gz
diff --git a/sources b/sources
index a7b3f51..c8a3eeb 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20190125git905865da1024.tar.gz) =
db03d2c93d5d349af9f086dc1d188c19d459ada8d6f57e9fdca7c54f534bf931685e633667b380e686fe4adbe97e1b191f4472a7cc5a9ddebeb4f236b8dff9f5
+SHA512 (systemtap-4.1-0.20190207git4e76869512d2.tar.gz) =
1b1367d73709514b37d8266b3d04a8a86d45b72e443d9b60a3ba3176418418d341af40c3235aa419d73d4ecf1200957fb3ab8c8956dbddacc6707bde48dc8b94
diff --git a/systemtap.spec b/systemtap.spec
index 7dadadd..11739d4 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190126git905865da1024%{?dist}
+Release: 0.20190207git4e76869512d2%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20190126git905865da1024%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20190125git905865da1024.tar.gz
+Source: %{name}-%{version}-0.20190207git4e76869512d2.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -767,13 +767,13 @@ done
%endif
%pre runtime
-getent group stapusr >/dev/null || groupadd -g 156 -r stapusr 2>/dev/null ||
groupadd -r stapusr
-getent group stapsys >/dev/null || groupadd -g 157 -r stapsys 2>/dev/null ||
groupadd -r stapsys
-getent group stapdev >/dev/null || groupadd -g 158 -r stapdev 2>/dev/null ||
groupadd -r stapdev
+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
exit 0
%pre server
-getent group stap-server >/dev/null || groupadd -g 155 -r stap-server 2>/dev/null
|| groupadd -r stap-server
+getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server
getent passwd stap-server >/dev/null || \
useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d
%{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server 2>/dev/null || \
useradd -c "Systemtap Compile Server" -g stap-server -d
%{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Thu Feb 07 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190207git4e76869512d2
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Sun Feb 03 2019 Fedora Release Engineering <releng(a)fedoraproject.org> -
4.1-0.20190126git905865da1024
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
commit 360a94dd833bf950cb5cffdc751a3043cee8e0ca
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sun Feb 3 09:19:31 2019 +0000
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/systemtap.spec b/systemtap.spec
index 69724b2..7dadadd 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190125git905865da1024%{?dist}
+Release: 0.20190126git905865da1024%{?dist}
# for version, see also configure.ac
@@ -1256,6 +1256,9 @@ done
# PRERELEASE
%changelog
+* Sun Feb 03 2019 Fedora Release Engineering <releng(a)fedoraproject.org> -
4.1-0.20190126git905865da1024
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
* Fri Jan 25 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190125git905865da1024
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit 00a7eb9b22cc08e1916c7fbe0927e0b112551537
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Fri Jan 25 13:05:51 2019 -0500
Automated weekly systemtap rawhide release: 0.20190125git905865da1024
diff --git a/.gitignore b/.gitignore
index 80f32da..bf421ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@
/systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz
/systemtap-4.1-0.20181204git891810c246d6.tar.gz
/systemtap-4.1-0.20190123gitc8084763b75f.tar.gz
+/systemtap-4.1-0.20190125git905865da1024.tar.gz
diff --git a/sources b/sources
index 135cfa3..a7b3f51 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20190123gitc8084763b75f.tar.gz) =
b9bbf8d689b4a8033610bbda82ef64e85cc6170b9dd10a2a2d1ce9385a62fc39083d0fb29e50328f47f771428ed14788df231c7f4bb04c58ce0a70c261fea7bc
+SHA512 (systemtap-4.1-0.20190125git905865da1024.tar.gz) =
db03d2c93d5d349af9f086dc1d188c19d459ada8d6f57e9fdca7c54f534bf931685e633667b380e686fe4adbe97e1b191f4472a7cc5a9ddebeb4f236b8dff9f5
diff --git a/systemtap.spec b/systemtap.spec
index 09d6fd2..69724b2 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20190123gitc8084763b75f%{?dist}
+Release: 0.20190125git905865da1024%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20190123gitc8084763b75f%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20190123gitc8084763b75f.tar.gz
+Source: %{name}-%{version}-0.20190125git905865da1024.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Fri Jan 25 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190125git905865da1024
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Wed Jan 23 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190123gitc8084763b75f
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit 64b52e01379cc730224f6b2d27911cbd6aa18813
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Wed Jan 23 14:42:58 2019 -0500
Automated weekly systemtap rawhide release: 0.20190123gitc8084763b75f
diff --git a/.gitignore b/.gitignore
index fb92aff..80f32da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,4 @@
/systemtap-4.1-0.20181126git47ce37a149b6.tar.gz
/systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz
/systemtap-4.1-0.20181204git891810c246d6.tar.gz
+/systemtap-4.1-0.20190123gitc8084763b75f.tar.gz
diff --git a/sources b/sources
index 3f70909..135cfa3 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20181204git891810c246d6.tar.gz) =
ca83de19e1a1a6a6dbc8b4b278428908ec74b11350984225fada008b4d17b73508954ae05fdd9a14b7493144d6f97de55c701d0db71fad0ef05dc18c47cd8758
+SHA512 (systemtap-4.1-0.20190123gitc8084763b75f.tar.gz) =
b9bbf8d689b4a8033610bbda82ef64e85cc6170b9dd10a2a2d1ce9385a62fc39083d0fb29e50328f47f771428ed14788df231c7f4bb04c58ce0a70c261fea7bc
diff --git a/systemtap.spec b/systemtap.spec
index 8e6ce11..09d6fd2 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20181204git891810c246d6%{?dist}
+Release: 0.20190123gitc8084763b75f%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20181204git891810c246d6%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20181204git891810c246d6.tar.gz
+Source: %{name}-%{version}-0.20190123gitc8084763b75f.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Wed Jan 23 2019 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20190123gitc8084763b75f
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Tue Dec 04 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181204git891810c246d6
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit e398a475bc62020daa720c0d008266ad02754ff9
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Tue Dec 4 14:30:02 2018 -0500
Automated weekly systemtap rawhide release: 0.20181204git891810c246d6
diff --git a/.gitignore b/.gitignore
index a2dfada..fb92aff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@
/systemtap-4.1-0.20181126gitf082df49dd91.tar.gz
/systemtap-4.1-0.20181126git47ce37a149b6.tar.gz
/systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz
+/systemtap-4.1-0.20181204git891810c246d6.tar.gz
diff --git a/sources b/sources
index 270794c..3f70909 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz) =
c318f10eefc2105f24c5ee9c85c852ecdd95c9620c2f5d5306644d0cbdd87cbba9fed7da394f5623d71602113a810866d9e80ed1277213a495215694a5f52693
+SHA512 (systemtap-4.1-0.20181204git891810c246d6.tar.gz) =
ca83de19e1a1a6a6dbc8b4b278428908ec74b11350984225fada008b4d17b73508954ae05fdd9a14b7493144d6f97de55c701d0db71fad0ef05dc18c47cd8758
diff --git a/systemtap.spec b/systemtap.spec
index 941da42..8e6ce11 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20181203gitec3b46eb9b19%{?dist}
+Release: 0.20181204git891810c246d6%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20181203gitec3b46eb9b19%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20181203gitec3b46eb9b19.tar.gz
+Source: %{name}-%{version}-0.20181204git891810c246d6.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1256,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Tue Dec 04 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181204git891810c246d6
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Mon Dec 03 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181203gitec3b46eb9b19
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit c27bf142be6ca4b1340b1d727ba2340c324cf003
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Mon Dec 3 15:46:04 2018 -0500
Automated weekly systemtap rawhide release: 0.20181203gitec3b46eb9b19
diff --git a/.gitignore b/.gitignore
index 6019060..a2dfada 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@
/systemtap-4.0.tar.gz
/systemtap-4.1-0.20181126gitf082df49dd91.tar.gz
/systemtap-4.1-0.20181126git47ce37a149b6.tar.gz
+/systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz
diff --git a/sources b/sources
index be56bc0..270794c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20181126git47ce37a149b6.tar.gz) =
3f46b47c93b82fb835c20d22776a9c9e63038be829c9402bd5681470bb7314ee7376c4b5e60cee133fecc3e6e3fbb300a8f95f3bc3b6152163bfe74fb57e1e06
+SHA512 (systemtap-4.1-0.20181203gitec3b46eb9b19.tar.gz) =
c318f10eefc2105f24c5ee9c85c852ecdd95c9620c2f5d5306644d0cbdd87cbba9fed7da394f5623d71602113a810866d9e80ed1277213a495215694a5f52693
diff --git a/systemtap.spec b/systemtap.spec
index 4832e28..941da42 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20181126git47ce37a149b6%{?dist}
+Release: 0.20181203gitec3b46eb9b19%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20181126git47ce37a149b6%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20181126git47ce37a149b6.tar.gz
+Source: %{name}-%{version}-0.20181203gitec3b46eb9b19.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -255,11 +255,14 @@ compiles systemtap scripts to kernel objects on their demand.
Summary: Programmable system-wide instrumentation system - development headers, tools
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-# The virtual provide 'kernel-devel-uname-r' tries to get the right
-# kernel variant (kernel-PAE, kernel-debug, etc.) devel package
-# installed.
+
+%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
+Recommends: kernel-debug-devel
+Recommends: kernel-devel
+%else
Requires: kernel-devel-uname-r
-%{?fedora:Suggests: kernel-devel}
+%endif
+
Requires: gcc make
Conflicts: systemtap-client < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
@@ -1253,6 +1256,10 @@ done
# PRERELEASE
%changelog
+* Mon Dec 03 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181203gitec3b46eb9b19
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Mon Nov 26 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181126git47ce37a149b6
- Automated weekly rawhide release
- Applied spec changes from upstream git
commit 3f6623da5159138b7ea2b9020a6bdc913cbe5975
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Mon Nov 26 22:38:23 2018 -0500
Automated weekly systemtap rawhide release: 0.20181126git47ce37a149b6
diff --git a/.gitignore b/.gitignore
index 75bde13..6019060 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@
/systemtap-4.0-0.20181003git4ad1e11de831.tar.gz
/systemtap-4.0.tar.gz
/systemtap-4.1-0.20181126gitf082df49dd91.tar.gz
+/systemtap-4.1-0.20181126git47ce37a149b6.tar.gz
diff --git a/sources b/sources
index 7c83cac..be56bc0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.1-0.20181126gitf082df49dd91.tar.gz) =
64391cb8a33049ccf98a31036fe2282239f625cad9e83d158d98b0c79e951fd8a4ee296583823c7579ee02ab038dac3624b67bc99a0a128b8b2efd300fc2224e
+SHA512 (systemtap-4.1-0.20181126git47ce37a149b6.tar.gz) =
3f46b47c93b82fb835c20d22776a9c9e63038be829c9402bd5681470bb7314ee7376c4b5e60cee133fecc3e6e3fbb300a8f95f3bc3b6152163bfe74fb57e1e06
diff --git a/systemtap.spec b/systemtap.spec
index 9727703..4832e28 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -87,7 +87,7 @@
Name: systemtap
Version: 4.1
-Release: 0.20181126gitf082df49dd91%{?dist}
+Release: 0.20181126git47ce37a149b6%{?dist}
# for version, see also configure.ac
@@ -121,7 +121,7 @@ Release: 0.20181126gitf082df49dd91%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source: %{name}-%{version}-0.20181126gitf082df49dd91.tar.gz
+Source: %{name}-%{version}-0.20181126git47ce37a149b6.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -1252,6 +1252,11 @@ done
#
http://sourceware.org/systemtap/wiki/SystemTapReleases
# PRERELEASE
+%changelog
+* Mon Nov 26 2018 Frank Ch. Eigler <fche(a)redhat.com> -
4.1-0.20181126git47ce37a149b6
+- Automated weekly rawhide release
+- Applied spec changes from upstream git
+
* Sat Oct 13 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-1
- Upstream release.
commit 8fa0dba5a276e92526c8fbdfdc85f4edfba679c7
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Mon Nov 26 18:51:48 2018 -0500
Automated weekly systemtap rawhide release: 0.20181126gitf082df49dd91
diff --git a/.gitignore b/.gitignore
index 36cb986..75bde13 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,4 @@
/systemtap-4.0-0.20180914gitfe4e14f4af16.1.tar.gz
/systemtap-4.0-0.20181003git4ad1e11de831.tar.gz
/systemtap-4.0.tar.gz
+/systemtap-4.1-0.20181126gitf082df49dd91.tar.gz
diff --git a/sources b/sources
index b11ecf4..7c83cac 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-4.0.tar.gz) =
66b5ba1902ed974101429dce9fee849273d3dc64e862c057177d158c5f284cc93299819ee8ee49d4bd3b7ff47a3512b1c68b74cad374147ce67fa406c7518c79
+SHA512 (systemtap-4.1-0.20181126gitf082df49dd91.tar.gz) =
64391cb8a33049ccf98a31036fe2282239f625cad9e83d158d98b0c79e951fd8a4ee296583823c7579ee02ab038dac3624b67bc99a0a128b8b2efd300fc2224e
diff --git a/systemtap.spec b/systemtap.spec
index bd3a215..9727703 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -86,8 +86,8 @@
%define __brp_mangle_shebangs_exclude_from .stp$
Name: systemtap
-Version: 4.0
-Release: 3%{?release_override}%{?dist}
+Version: 4.1
+Release: 0.20181126gitf082df49dd91%{?dist}
# for version, see also configure.ac
@@ -121,9 +121,7 @@ Release: 3%{?release_override}%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL:
http://sourceware.org/systemtap/
-Source:
ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
-
-Patch10: rhbz1650371.patch
+Source: %{name}-%{version}-0.20181126gitf082df49dd91.tar.gz
# Build*
BuildRequires: gcc-c++
@@ -520,8 +518,6 @@ find . \( -name configure -o -name config.h.in \) -print | xargs
touch
cd ..
%endif
-%patch10 -p1
-
%build
%if %{with_bundled_elfutils}
@@ -1256,15 +1252,6 @@ done
#
http://sourceware.org/systemtap/wiki/SystemTapReleases
# PRERELEASE
-%changelog
-* Thu Nov 15 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-3
-- rhbz1650371 - buildid mismatch for uprobes
-
-* Sun Oct 14 2018 Peter Robinson <pbrobinson(a)fedoraproject.org> 4.0-2
-- Crash and virt host supported on ppc64le and aarch64
-- Move chkconfig to traditional initscripts deps
-- Minor spec cleanups
-
* Sat Oct 13 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-1
- Upstream release.
commit 5a071c9e4861644d07a52b1b278ee68597049305
Merge: e6b0de4 c0ec242
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Thu Nov 15 20:42:08 2018 -0500
Merge branch 'f29'
* f29:
rhbz1650371
upstream release 3.3
3.2-11 spec update.
3.2-11
3.2-10
3.2-9 - Add unwind-fallback.patch.
Backport fix for removed timers in kernel 4.15 (#1546563)
diff --cc systemtap.spec
index 7227c47,d430575..bd3a215
--- a/systemtap.spec
+++ b/systemtap.spec
@@@ -87,7 -84,7 +87,7 @@@
Name: systemtap
Version: 4.0
--Release: 2%{?release_override}%{?dist}
++Release: 3%{?release_override}%{?dist}
# for version, see also configure.ac
@@@ -1253,11 -1275,9 +1257,14 @@@ don
# PRERELEASE
%changelog
-* Thu Nov 15 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-2
++* Thu Nov 15 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-3
+ - rhbz1650371 - buildid mismatch for uprobes
+
+* Sun Oct 14 2018 Peter Robinson <pbrobinson(a)fedoraproject.org> 4.0-2
+- Crash and virt host supported on ppc64le and aarch64
+- Move chkconfig to traditional initscripts deps
+- Minor spec cleanups
+
* Sat Oct 13 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-1
- Upstream release.
commit c0ec2425f38e65b37793f815f4d7c00a0ca1591c
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Thu Nov 15 20:38:09 2018 -0500
rhbz1650371
diff --git a/rhbz1650371.patch b/rhbz1650371.patch
new file mode 100644
index 0000000..7401c66
--- /dev/null
+++ b/rhbz1650371.patch
@@ -0,0 +1,134 @@
+commit fba365b4d365f54ab7ef60272996dc2889461640
+Author: Frank Ch. Eigler <fche(a)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(a)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;
+ }
+
diff --git a/systemtap.spec b/systemtap.spec
index afd579f..d430575 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -84,7 +84,7 @@
Name: systemtap
Version: 4.0
-Release: 1%{?release_override}%{?dist}
+Release: 2%{?release_override}%{?dist}
# for version, see also configure.ac
@@ -121,6 +121,8 @@ License: GPLv2+
URL:
http://sourceware.org/systemtap/
Source:
ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
+Patch10: rhbz1650371.patch
+
# Build*
BuildRequires: gcc-c++
BuildRequires: cpio
@@ -529,6 +531,8 @@ find . \( -name configure -o -name config.h.in \) -print | xargs
touch
cd ..
%endif
+%patch10 -p1
+
%build
%if %{with_bundled_elfutils}
@@ -1271,6 +1275,9 @@ done
# PRERELEASE
%changelog
+* Thu Nov 15 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-2
+- rhbz1650371 - buildid mismatch for uprobes
+
* Sat Oct 13 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-1
- Upstream release.
commit e6b0de4db8291cbf7a203d0dcce94b33b03837c3
Author: Peter Robinson <pbrobinson(a)gmail.com>
Date: Sun Oct 14 22:14:52 2018 +0100
Crash and virt host supported on ppc64le and aarch64, Move chkconfig to traditional
initscripts deps (not required for systemd), spec cleanups
diff --git a/systemtap.spec b/systemtap.spec
index afd579f..7227c47 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -4,7 +4,7 @@
%{!?with_htmldocs: %global with_htmldocs 0}
%{!?with_monitor: %global with_monitor 1}
# crash is not available
-%ifarch ppc ppc64 %{sparc} aarch64 ppc64le %{mips}
+%ifarch ppc ppc64 %{sparc} %{mips}
%{!?with_crash: %global with_crash 0}
%else
%{!?with_crash: %global with_crash 1}
@@ -39,9 +39,12 @@
%{!?with_python3_probes: %global with_python3_probes (0%{?fedora} >= 23 || 0%{?rhel}
> 7)}
%{!?with_httpd: %global with_httpd 0}
+# Virt is supported on these arches, even on el7, but it's not in core EL7
+%if 0%{?rhel} <= 7
%ifarch ppc64le aarch64
%global with_virthost 0
%endif
+%endif
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 6
%define initdir %{_initddir}
@@ -84,7 +87,7 @@
Name: systemtap
Version: 4.0
-Release: 1%{?release_override}%{?dist}
+Release: 2%{?release_override}%{?dist}
# for version, see also configure.ac
@@ -116,7 +119,6 @@ Release: 1%{?release_override}%{?dist}
# intermediary stap-server for --use-server: systemtap-server (-devel unused)
Summary: Programmable system-wide instrumentation system
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Source:
ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
@@ -221,7 +223,6 @@ the components needed to locally develop and execute systemtap
scripts.
%package server
Summary: Instrumentation System Server
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-devel = %{version}-%{release}
@@ -231,8 +232,6 @@ Conflicts: systemtap-client < %{version}-%{release}
Requires: nss coreutils
Requires: zip unzip
Requires(pre): shadow-utils
-Requires(post): chkconfig
-Requires(preun): chkconfig
BuildRequires: nss-devel avahi-devel
%if %{with_openssl}
Requires: openssl
@@ -240,6 +239,8 @@ Requires: openssl
%if %{with_systemd}
Requires: systemd
%else
+Requires(post): chkconfig
+Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%endif
@@ -252,7 +253,6 @@ compiles systemtap scripts to kernel objects on their demand.
%package devel
Summary: Programmable system-wide instrumentation system - development headers, tools
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
# The virtual provide 'kernel-devel-uname-r' tries to get the right
@@ -277,7 +277,6 @@ a copy of the standard tapset library and the runtime library C
files.
%package runtime
Summary: Programmable system-wide instrumentation system - runtime
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires(pre): shadow-utils
@@ -293,7 +292,6 @@ using a local or remote systemtap-devel installation.
%package client
Summary: Programmable system-wide instrumentation system - client
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: zip unzip
@@ -317,15 +315,14 @@ documentation, and a copy of the tapset library for reference.
%package initscript
Summary: Systemtap Initscripts
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
-Requires(post): chkconfig
-Requires(preun): chkconfig
%if %{with_systemd}
Requires: systemd
%else
+Requires(post): chkconfig
+Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%endif
@@ -338,7 +335,6 @@ boot-time probing if supported.
%package sdt-devel
Summary: Static probe support tools
-Group: Development/System
License: GPLv2+ and Public Domain
URL:
http://sourceware.org/systemtap/
%if %{with_pyparsing}
@@ -362,7 +358,6 @@ with the optional dtrace-compatibility preprocessor to process
related
%package testsuite
Summary: Instrumentation System Testsuite
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
@@ -420,7 +415,6 @@ systemtap on the current system.
%if %{with_java}
%package runtime-java
Summary: Systemtap Java Runtime Support
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@@ -435,7 +429,6 @@ that probe Java processes running on the OpenJDK runtimes using
Byteman.
%if %{with_python2_probes}
%package runtime-python2
Summary: Systemtap Python 2 Runtime Support
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@@ -448,7 +441,6 @@ that probe python 2 processes.
%if %{with_python3_probes}
%package runtime-python3
Summary: Systemtap Python 3 Runtime Support
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@@ -466,7 +458,6 @@ that probe python 3 processes.
%if %{with_python3}
%package exporter
Summary: Systemtap-prometheus interoperation mechanism
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@@ -480,7 +471,6 @@ to remote requesters on demand.
%if %{with_virthost}
%package runtime-virthost
Summary: Systemtap Cross-VM Instrumentation - host
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: libvirt >= 1.0.2
@@ -495,7 +485,6 @@ connection.
%if %{with_virtguest}
%package runtime-virtguest
Summary: Systemtap Cross-VM Instrumentation - guest
-Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
@@ -649,7 +638,6 @@ make %{?_smp_mflags}
%endif
%install
-rm -rf ${RPM_BUILD_ROOT}
make DESTDIR=$RPM_BUILD_ROOT install
%find_lang %{name}
for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do
@@ -1036,7 +1024,6 @@ done
# The master "systemtap" rpm doesn't include any files.
%files server -f systemtap.lang
-%defattr(-,root,root)
%{_bindir}/stap-server
%dir %{_libexecdir}/systemtap
%{_libexecdir}/systemtap/stap-serverd
@@ -1109,7 +1096,6 @@ done
%files runtime -f systemtap.lang
-%defattr(-,root,root)
%attr(4110,root,stapusr) %{_bindir}/staprun
%{_bindir}/stapsh
%{_bindir}/stap-merge
@@ -1145,7 +1131,6 @@ done
%files client -f systemtap.lang
-%defattr(-,root,root)
%doc README README.unprivileged AUTHORS NEWS
%{_datadir}/systemtap/examples
%{!?_licensedir:%global license %%doc}
@@ -1175,7 +1160,6 @@ done
%files initscript
-%defattr(-,root,root)
%if %{with_systemd}
%{_unitdir}/systemtap.service
%{_sbindir}/systemtap-service
@@ -1197,7 +1181,6 @@ done
%files sdt-devel
-%defattr(-,root,root)
%{_bindir}/dtrace
%{_includedir}/sys/sdt.h
%{_includedir}/sys/sdt-config.h
@@ -1209,7 +1192,6 @@ done
%files testsuite
-%defattr(-,root,root)
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/testsuite
@@ -1271,6 +1253,11 @@ done
# PRERELEASE
%changelog
+* Sun Oct 14 2018 Peter Robinson <pbrobinson(a)fedoraproject.org> 4.0-2
+- Crash and virt host supported on ppc64le and aarch64
+- Move chkconfig to traditional initscripts deps
+- Minor spec cleanups
+
* Sat Oct 13 2018 Frank Ch. Eigler <fche(a)redhat.com> - 4.0-1
- Upstream release.
commit a612da876fd9b88197b2dfa698f17d7d17dc70a4
Merge: 3df356e 227f312
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Sat Oct 13 16:21:18 2018 -0400
Merge branch 'master' into f27
* master: (39 commits)
upstream 4.0 release
test simplify more
Automated weekly systemtap rawhide release: 0.20181003git4ad1e11de831
CI try 8
CI try 7
CI try 6
Automated weekly systemtap rawhide release: 0.20180914gitfe4e14f4af16.1
CI take 5, k.i.s.s.
Automated weekly systemtap rawhide release: 0.20180914gitfe4e14f4af16
CI try 4
Automated weekly systemtap rawhide release: 0.20180914git11a0a7aea387
Automated weekly systemtap rawhide release: 0.20180914gitc1befcceae01
CI try 3 - hand-install the kernel-debuginfo
Automated weekly systemtap rawhide release: 0.20180914gitc1befcceae01
more rhts boilerplate imported from acl/
Automated weekly systemtap rawhide release: 0.20180914gitc51d4e55d285
CI experiment
Automated weekly systemtap rawhide release: 0.20180906git37598c4fee7c
Automated weekly systemtap rawhide release: 0.20180906git37598c4fee7c
Automated weekly systemtap rawhide release: 0.20180810git
...
commit 3df356ef9a1ccf19981bcf6e286d235113726ca9
Author: Frank Ch. Eigler <fche(a)redhat.com>
Date: Fri Jun 8 18:46:04 2018 -0400
upstream release 3.3
diff --git a/rhbz1504009.patch b/rhbz1504009.patch
deleted file mode 100644
index 7643891..0000000
--- a/rhbz1504009.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-commit 9f81f10b0caf6dfc49c4b7ceb7902f45d37b532a (HEAD -> master, origin/master,
origin/HEAD)
-Author: Frank Ch. Eigler <fche(a)redhat.com>
-Date: Fri Oct 20 10:01:58 2017 -0400
-
- rhbz1504009: let dtrace -G -o /dev/null run, as in autoconf
-
- commit c245153ca193c471a8c broke the ability of dtrace to be tested in
- autoconf "-G -o /dev/null" usage, because its output file name was too
- simple a function of the input name, and normal users can't write to
- /dev/null.dtrace-temp.c . Now we back down to mkstemp, like before,
- upon a failure of the simple concatenated name.
-
-diff --git a/dtrace.in b/dtrace.in
-index 2e2e002a5c56..25efc253b708 100644
---- a/dtrace.in
-+++ b/dtrace.in
-@@ -410,8 +410,12 @@ from tempfile import mkstemp
- else:
- print("header: " + fname)
-
-- fname = filename + ".dtrace-temp.c"
-- fdesc = open(fname, mode='w')
-+ try: # for reproducible-builds purposes, prefer a fixed path name pattern
-+ fname = filename + ".dtrace-temp.c"
-+ fdesc = open(fname, mode='w')
-+ except: # but that doesn't work for -o /dev/null - see rhbz1504009
-+ (ignore,fname) = mkstemp(suffix=".c")
-+ fdesc = open(fname, mode='w')
- providers.semaphore_write(fdesc)
- fdesc.close()
- cc1 = os.environ.get("CC", "gcc")
-diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp
-index fa6b3ec3f6d3..7c60f09d70b8 100644
---- a/testsuite/systemtap.base/dtrace.exp
-+++ b/testsuite/systemtap.base/dtrace.exp
-@@ -83,6 +83,13 @@ if {[file exists /tmp/XXX.o]} then {
- }
- exec rm -f /tmp/XXX.o
-
-+verbose -log "$dtrace -G -s $dpath -o /dev/null"
-+if [as_non_root "$python $dtrace -G -s $dpath -o /dev/null"] {
-+ fail "$test -G -o /dev/null"
-+} else {
-+ pass "$test -G -o /dev/null"
-+}
-+
- verbose -log "$dtrace -G -s $dpath -o /tmp/XXX"
- catch {exec $python $dtrace -G -s $dpath -o /tmp/XXX} res
- if {[file exists /tmp/XXX]} then {
diff --git a/rhbz1546563.patch b/rhbz1546563.patch
deleted file mode 100644
index 4e4030b..0000000
--- a/rhbz1546563.patch
+++ /dev/null
@@ -1,273 +0,0 @@
-From fbb26e17a4c026f05a497fc5d584516bad3b6950 Mon Sep 17 00:00:00 2001
-From: David Smith <dsmith(a)redhat.com>
-Date: Wed, 6 Dec 2017 14:37:42 -0600
-Subject: [PATCH] Fix PR22551 by updating the use of timers for the 4.15
- kernel.
-
-* runtime/linux/timer_compatibility.h: New file.
-* runtime/time.c: Update timer callback function parameter type. Update
- timer initialization.
-* runtime/transport/relay_v2.c: Ditto.
-* runtime/transport/transport.c: Ditto.
-* tapset-timers.cxx (timer_derived_probe_group::emit_module_decls):
- Ditto. Handle old and new timer callback interface.
-* runtime/linux/runtime.h: Include timer_compatibility.h instead of timer.h.
-* tapset/linux/scsi.stp: Ditto.
----
- runtime/linux/runtime.h | 2 +-
- runtime/linux/timer_compatibility.h | 76 +++++++++++++++++++++++++++++++++++++
- runtime/time.c | 7 ++--
- runtime/transport/relay_v2.c | 8 ++--
- runtime/transport/transport.c | 13 +++----
- tapset-timers.cxx | 14 +++++--
- tapset/linux/scsi.stp | 2 +-
- 7 files changed, 100 insertions(+), 22 deletions(-)
- create mode 100644 runtime/linux/timer_compatibility.h
-
-diff --git a/runtime/linux/runtime.h b/runtime/linux/runtime.h
-index 9c585a2..df9b74c 100644
---- a/runtime/linux/runtime.h
-+++ b/runtime/linux/runtime.h
-@@ -34,7 +34,7 @@
- #include <linux/compat.h>
- #include <linux/sched.h>
- #include <linux/mm.h>
--#include <linux/timer.h>
-+#include "timer_compatibility.h"
- #include <linux/delay.h>
- #include <linux/profile.h>
- #include <linux/rcupdate.h>
-diff --git a/runtime/linux/timer_compatibility.h b/runtime/linux/timer_compatibility.h
-new file mode 100644
-index 0000000..ac03de9
---- /dev/null
-+++ b/runtime/linux/timer_compatibility.h
-@@ -0,0 +1,76 @@
-+/*
-+ * linux/timer.h compatibility defines and inlines
-+ * Copyright (C) 2017 Red Hat Inc.
-+ *
-+ * This file is part of systemtap, and is free software. You can
-+ * redistribute it and/or modify it under the terms of the GNU General
-+ * Public License (GPL); either version 2, or (at your option) any
-+ * later version.
-+ */
-+
-+#ifndef _TIMER_COMPATIBILITY_H_
-+#define _TIMER_COMPATIBILITY_H_
-+
-+#include <linux/timer.h>
-+
-+/*
-+ * Starting with the 4.15 kernel, the timer interface
-+ * changed. Originally, you'd do something like:
-+ *
-+ * static void timer_func(unsigned long val);
-+ *
-+ * init_timer(&timer);
-+ * timer.expires = jiffies + STP_RELAY_TIMER_INTERVAL;
-+ * timer.function = timer_func;
-+ * timer.data = 0;
-+ * add_timer(&timer);
-+ *
-+ * The 'data' parameter would get passed to the callback
-+ * function. Starting with 4.15, you'd do something like this:
-+ *
-+ * static void timer_func(struct timer_list *val);
-+ *
-+ * timer_setup(&timer, timer_func, 0);
-+ * timer.expires = jiffies + STP_RELAY_TIMER_INTERVAL;
-+ * add_timer(&timer);
-+ *
-+ * With the new code, the timer that caused the callback gets passed
-+ * to the timer callback function. The 'data' field has been removed.
-+ *
-+ * So, we're going to use the new interface. To hide the differences
-+ * between the callback function parameter type, we'll define a new
-+ * type, 'stp_timer_callback_parameter_t'.
-+ *
-+ * If code needs to figure out the difference between the old and new
-+ * interface, it should test the TIMER_TRACE_FLAGMASK define (which
-+ * only exists in the new interface).
-+ */
-+
-+#if defined(TIMER_TRACE_FLAGMASK)
-+/* This is the >= 4.15 kernel interface. */
-+
-+typedef struct timer_list * stp_timer_callback_parameter_t;
-+
-+#else
-+/* This is the < 4.15 kernel interface. */
-+
-+typedef unsigned long stp_timer_callback_parameter_t;
-+
-+/**
-+ * timer_setup - prepare a timer for first use
-+ * @timer: the timer in question
-+ * @callback: the function to call when timer expires
-+ * @flags: any TIMER_* flags (note that anything other than 0 is an
-+ * error, since this compatibility function can't support any
-+ * of the TIMER_* flags)
-+ */
-+#define timer_setup(timer, callback, flags) \
-+ { \
-+ init_timer((timer)); \
-+ (timer)->function = callback; \
-+ (timer)->data = 0; \
-+ BUILD_BUG_ON_ZERO((flags) != 0); \
-+ }
-+#endif
-+
-+#endif /* _TIMER_COMPATIBILITY_H_ */
-diff --git a/runtime/time.c b/runtime/time.c
-index 2e666d5..91ceafa 100644
---- a/runtime/time.c
-+++ b/runtime/time.c
-@@ -168,10 +168,10 @@ __stp_time_smp_callback(void *val)
-
- /* The timer callback is in a softIRQ -- interrupts enabled. */
- static void
--__stp_time_timer_callback(unsigned long val)
-+__stp_time_timer_callback(stp_timer_callback_parameter_t unused)
- {
- stp_time_t *time =__stp_time_local_update();
-- (void) val;
-+ (void) unused;
-
- /* PR6481: make sure IRQs are enabled before resetting the timer
- (IRQs are disabled and then reenabled in
-@@ -200,9 +200,8 @@ __stp_init_time(void *info)
- time->freq = __stp_get_freq();
- __stp_time_local_update();
-
-- init_timer(&time->timer);
-+ timer_setup(&time->timer, __stp_time_timer_callback, 0);
- time->timer.expires = jiffies + STP_TIME_SYNC_INTERVAL;
-- time->timer.function = __stp_time_timer_callback;
-
- #ifndef STAPCONF_ADD_TIMER_ON
- add_timer(&time->timer);
-diff --git a/runtime/transport/relay_v2.c b/runtime/transport/relay_v2.c
-index f81d75d..135951a 100644
---- a/runtime/transport/relay_v2.c
-+++ b/runtime/transport/relay_v2.c
-@@ -30,7 +30,7 @@
- #include <linux/debugfs.h>
- #include <linux/mm.h>
- #include <linux/relay.h>
--#include <linux/timer.h>
-+#include "../linux/timer_compatibility.h"
- #include "../uidgid_compatibility.h"
- #include "relay_compat.h"
-
-@@ -120,7 +120,7 @@ static void __stp_relay_wakeup_readers(struct rchan_buf *buf)
- wake_up_interruptible(&buf->read_wait);
- }
-
--static void __stp_relay_wakeup_timer(unsigned long val)
-+static void __stp_relay_wakeup_timer(stp_timer_callback_parameter_t unused)
- {
- #ifdef STP_BULKMODE
- int i;
-@@ -151,10 +151,8 @@ static void __stp_relay_wakeup_timer(unsigned long val)
- static void __stp_relay_timer_init(void)
- {
- atomic_set(&_stp_relay_data.wakeup, 0);
-- init_timer(&_stp_relay_data.timer);
-+ timer_setup(&_stp_relay_data.timer, __stp_relay_wakeup_timer, 0);
- _stp_relay_data.timer.expires = jiffies + STP_RELAY_TIMER_INTERVAL;
-- _stp_relay_data.timer.function = __stp_relay_wakeup_timer;
-- _stp_relay_data.timer.data = 0;
- add_timer(&_stp_relay_data.timer);
- smp_mb();
- }
-diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
-index 3400f22..320fd18 100644
---- a/runtime/transport/transport.c
-+++ b/runtime/transport/transport.c
-@@ -311,7 +311,7 @@ static void _stp_detach(void)
- }
-
-
--static void _stp_ctl_work_callback(unsigned long val);
-+static void _stp_ctl_work_callback(stp_timer_callback_parameter_t unused);
-
- /*
- * Called when stapio opens the control channel.
-@@ -320,13 +320,12 @@ static void _stp_attach(void)
- {
- dbug_trans(1, "attach\n");
- _stp_pid = current->pid;
-- if (_stp_namespaces_pid < 1)
-- _stp_namespaces_pid = _stp_pid;
-+ if (_stp_namespaces_pid < 1)
-+ _stp_namespaces_pid = _stp_pid;
- _stp_transport_data_fs_overwrite(0);
-- init_timer(&_stp_ctl_work_timer);
-+
-+ timer_setup(&_stp_ctl_work_timer, _stp_ctl_work_callback, 0);
- _stp_ctl_work_timer.expires = jiffies + STP_CTL_TIMER_INTERVAL;
-- _stp_ctl_work_timer.function = _stp_ctl_work_callback;
-- _stp_ctl_work_timer.data= 0;
- add_timer(&_stp_ctl_work_timer);
- }
-
-@@ -341,7 +340,7 @@ static void _stp_attach(void)
- * notified. Reschedules itself if someone is still attached
- * to the cmd channel.
- */
--static void _stp_ctl_work_callback(unsigned long val)
-+static void _stp_ctl_work_callback(stp_timer_callback_parameter_t unused)
- {
- int do_io = 0;
- unsigned long flags;
-diff --git a/tapset-timers.cxx b/tapset-timers.cxx
-index 1a40bcd..0ab4d69 100644
---- a/tapset-timers.cxx
-+++ b/tapset-timers.cxx
-@@ -122,9 +122,13 @@ timer_derived_probe_group::emit_module_decls (systemtap_session&
s)
- s.op->newline(-1) << "};";
- s.op->newline();
-
-- s.op->newline() << "static void enter_timer_probe (unsigned long val)
{";
-+ s.op->newline() << "static void enter_timer_probe
(stp_timer_callback_parameter_t val) {";
-+ s.op->newline() << "#if defined(TIMER_TRACE_FLAGMASK)";
-+ s.op->newline(1) << "struct stap_timer_probe* stp = container_of(val,
struct stap_timer_probe, timer_list);";
-+ s.op->newline(-1) << "#else";
- s.op->newline(1) << "struct stap_timer_probe* stp = &
stap_timer_probes [val];";
-- s.op->newline() << "if ((atomic_read (session_state()) ==
STAP_SESSION_STARTING) ||";
-+ s.op->newline(-1) << "#endif";
-+ s.op->newline(1) << "if ((atomic_read (session_state()) ==
STAP_SESSION_STARTING) ||";
- s.op->newline() << " (atomic_read (session_state()) ==
STAP_SESSION_RUNNING))";
- s.op->newline(1) << "mod_timer (& stp->timer_list, jiffies +
";
- emit_interval (s.op);
-@@ -148,9 +152,11 @@ timer_derived_probe_group::emit_module_init (systemtap_session&
s)
- s.op->newline() << "for (i=0; i<" << probes.size()
<< "; i++) {";
- s.op->newline(1) << "struct stap_timer_probe* stp = &
stap_timer_probes [i];";
- s.op->newline() << "probe_point = stp->probe->pp;";
-- s.op->newline() << "init_timer (& stp->timer_list);";
-- s.op->newline() << "stp->timer_list.function = &
enter_timer_probe;";
-+
-+ s.op->newline() << "timer_setup (& stp->timer_list,
enter_timer_probe, 0);";
-+ s.op->newline() << "#if !defined(TIMER_TRACE_FLAGMASK)";
- s.op->newline() << "stp->timer_list.data = i;"; // NB:
important!
-+ s.op->newline() << "#endif";
- // copy timer renew calculations from above :-(
- s.op->newline() << "stp->timer_list.expires = jiffies + ";
- emit_interval (s.op);
-diff --git a/tapset/linux/scsi.stp b/tapset/linux/scsi.stp
-index 44f686c..3577942 100644
---- a/tapset/linux/scsi.stp
-+++ b/tapset/linux/scsi.stp
-@@ -14,7 +14,7 @@
- #include <scsi/scsi_cmnd.h>
- #include <scsi/scsi_device.h>
- #include <scsi/scsi_host.h>
--#include <linux/timer.h>
-+#include "linux/timer_compatibility.h"
- #include <linux/blkdev.h>
- %}
-
---
-2.9.3
-
diff --git a/rhbz1549063.patch b/rhbz1549063.patch
deleted file mode 100644
index 55a56f7..0000000
--- a/rhbz1549063.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-commit d6492e78bd50e923963e3c7aa235100a208f4775
-Author: Mark Wielaard <mark(a)klomp.org>
-Date: Mon Feb 26 11:31:44 2018 +0100
-
- testsuite: Use /usr/bin/env everywhere.
-
- bz5274.stp and bz5274.a.stp where still using /bin/env instead of
- /usr/bin/env like every other testsuite file.
-
- The latest coreutils in rawhide dropped old /bin/* provides.
-
https://bugzilla.redhat.com/show_bug.cgi?id=1549063
-
-diff --git a/testsuite/systemtap.base/bz5274.a.stp
b/testsuite/systemtap.base/bz5274.a.stp
-index 1d3aefc..e6365e4 100755
---- a/testsuite/systemtap.base/bz5274.a.stp
-+++ b/testsuite/systemtap.base/bz5274.a.stp
-@@ -1,4 +1,4 @@
--#! /bin/env stap
-+#! /usr/bin/env stap
- probe process("./bz5274").function("funcb").call,
- process("./bz5274").function("funcc").call,
- process("./bz5274").function("funcd").call
-diff --git a/testsuite/systemtap.base/bz5274.stp b/testsuite/systemtap.base/bz5274.stp
-index b3e26d8..2f62cbc 100755
---- a/testsuite/systemtap.base/bz5274.stp
-+++ b/testsuite/systemtap.base/bz5274.stp
-@@ -1,4 +1,4 @@
--#! /bin/env stap
-+#! /usr/bin/env stap
- probe process("./bz5274").function("*").call {
- printf("%s Entering %s\n", pp(), thread_indent(1))
- }
diff --git a/rhbz1566422.patch b/rhbz1566422.patch
deleted file mode 100644
index 494e4c9..0000000
--- a/rhbz1566422.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit db9c9d6e30c6cfd7b85475b5c79ee2cc51201934
-Author: Serhei Makarov <smakarov(a)redhat.com>
-Date: Tue Apr 17 11:35:00 2018 -0400
-
- RHBZ1566422 - fix spurious Build-id mismatch when probing reinserted kernel module
-
- Code for newer kernels did not clear the address of the notes-section
- when a probed module was unloaded. This caused spurious Build-id mismatch
- when the module was reinserted as new addresses are not computed for
- dynamically loaded modules (see also: PR23068) and the Build-id check
- was trying to read the notes section at the no-longer-valid old address.
-
- * runtime/sym.c (_stp_module_notifier): clear addresses on
- MODULE_STATE_GOING in newer kernels (>=3.10) too.
- * runtime/transport/symbols.c (_stp_kmodule_update_address): fix logic
- error and clear notes section addr when reloc=NULL (aka. 'all').
-
-diff --git a/runtime/sym.c b/runtime/sym.c
-index c11a35a..b6e0fd6 100644
---- a/runtime/sym.c
-+++ b/runtime/sym.c
-@@ -1045,7 +1045,7 @@ static void _stp_kmodule_update_address(const char* module,
- if (strcmp (_stp_modules[mi]->name, module))
- continue;
-
-- if (reloc && !strcmp (note_sectname, reloc)) {
-+ if (!reloc || !strcmp (note_sectname, reloc)) {
- dbug_sym(1, "module %s special section %s address %#lx\n",
- _stp_modules[mi]->name,
- note_sectname,
-diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
-index 64c2aeb..076c562 100644
---- a/runtime/transport/symbols.c
-+++ b/runtime/transport/symbols.c
-@@ -167,6 +167,11 @@ static int _stp_module_notifier (struct notifier_block * nb,
- /* Verify build-id. */
- _stp_kmodule_check (mod->name);
- }
-+ else if (val == MODULE_STATE_GOING) {
-+ /* Unregister all sections. */
-+ dbug_sym(2, "unregister sections\n");
-+ _stp_kmodule_update_address(mod->name, NULL, 0);
-+ }
- else if (val != MODULE_STATE_GOING) {
- return NOTIFY_DONE;
- }
diff --git a/rhbz1566745.patch b/rhbz1566745.patch
deleted file mode 100644
index bf3744f..0000000
--- a/rhbz1566745.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-commit 0f8139eb4bd06a19714608b5f246fc24fcafde6e
-Author: David Smith <dsmith(a)redhat.com>
-Date: Thu Dec 7 16:07:39 2017 -0600
-
- Updated several tapsets for the 4.15 kernel.
-
- * tapset/linux/linuxmib.stp: Update the 'DelayedACKs' probes to handle
- a missing '$data' parameter.
- * tapset/linux/memory.stp: Handle missing '__GFP_COLD' flag.
- * tapset/linux/nfsd.stp: Update the 'nfsd.proc4.rename' probe to handle
- upstream changes.
- * tapset/linux/signal.stp: Update the 'signal.pending' probe to handle a
- missing '$sigsestsize' parameter.
-
-diff --git a/tapset/linux/linuxmib.stp b/tapset/linux/linuxmib.stp
-index ef09929..63ec248 100644
---- a/tapset/linux/linuxmib.stp
-+++ b/tapset/linux/linuxmib.stp
-@@ -1,6 +1,6 @@
- /*
- * Copyright (C) 2009 IBM Corp.
-- * Copyright (C) 2010 Red Hat Inc.
-+ * Copyright (C) 2010-2017 Red Hat Inc.
- *
- * This file is part of systemtap, and is free software. You can
- * redistribute it and/or modify it under the terms of the GNU General
-@@ -39,14 +39,18 @@ probe _linuxmib.DelayedACKs.A =
kernel.function("tcp_send_ack")
-
- probe _linuxmib.DelayedACKs.B = kernel.function("tcp_delack_timer")
- {
-- sk=$data
-+ sk=@choose_defined($data,
-+ &@container_of($t, "inet_connection_sock",
-+ icsk_delack_timer)->icsk_inet->sk)
- indelack_timer[sk]=1
- op=0
- }
-
- probe _linuxmib.DelayedACKs.C = kernel.function("tcp_delack_timer").return
- {
-- sk=@entry($data)
-+ sk=@entry(@choose_defined($data,
-+ &@container_of($t, "inet_connection_sock",
-+ icsk_delack_timer)->icsk_inet->sk))
- indelack_timer[sk]=0;
- op=0
- }
-diff --git a/tapset/linux/memory.stp b/tapset/linux/memory.stp
-index b968fe3..169d0f1 100644
---- a/tapset/linux/memory.stp
-+++ b/tapset/linux/memory.stp
-@@ -1,7 +1,7 @@
- // memory/vm related tapset
- // Copyright (C) 2005, 2006 IBM Corp.
- // Copyright (C) 2006 Intel Corporation.
--// Copyright (C) 2014 Red Hat Inc.
-+// Copyright (C) 2014-2017 Red Hat Inc.
- //
- // This file is part of systemtap, and is free software. You can
- // redistribute it and/or modify it under the terms of the GNU General
-@@ -368,7 +368,9 @@ probe vm.oom_kill = kernel.function("oom_kill_process") !,
- __GFP_BITMASKS(__GFP_HIGH)
- __GFP_BITMASKS(__GFP_IO)
- __GFP_BITMASKS(__GFP_FS)
-+#ifdef __GFP_COLD
- __GFP_BITMASKS(__GFP_COLD)
-+#endif
- __GFP_BITMASKS(__GFP_NOWARN)
- #ifdef __GFP_RETRY_MAYFAIL
- __GFP_BITMASKS(__GFP_RETRY_MAYFAIL)
-diff --git a/tapset/linux/nfsd.stp b/tapset/linux/nfsd.stp
-index 3df1600..5a70e84 100644
---- a/tapset/linux/nfsd.stp
-+++ b/tapset/linux/nfsd.stp
-@@ -1262,18 +1262,26 @@ probe nfsd.proc4.rename =
kernel.function("nfsd4_rename").call !,
- fh = & @nfsd4_compound_state($cstate)->save_fh
- tfh = & @nfsd4_compound_state($cstate)->current_fh
-
-- filelen = $rename->rn_snamelen
-- filename = kernel_string_n($rename->rn_sname, $rename->rn_snamelen)
-- tlen = $rename->rn_tnamelen
-- tname = kernel_string_n($rename->rn_tname, $rename->rn_tnamelen)
-+ if (@defined($rename)) {
-+ filelen = $rename->rn_snamelen
-+ filename = kernel_string_n($rename->rn_sname,
-+ $rename->rn_snamelen)
-+ tlen = $rename->rn_tnamelen
-+ tname = kernel_string_n($rename->rn_tname, $rename->rn_tnamelen)
-+ } else {
-+ filelen = $u->rename->rn_snamelen
-+ filename = kernel_string_n($u->rename->rn_sname,
-+ $u->rename->rn_snamelen)
-+ tlen = $u->rename->rn_tnamelen
-+ tname = kernel_string_n($u->rename->rn_tname,
-+ $u->rename->rn_tnamelen)
-+ }
-
- uid = __rqstp_uid($rqstp)
- gid = __rqstp_gid($rqstp)
-
- name = "nfsd.proc4.rename"
-- argstr = sprintf("%s to %s",
-- kernel_string_n($rename->rn_sname, $rename->rn_snamelen),
-- kernel_string_n($rename->rn_tname, $rename->rn_tnamelen))
-+ argstr = sprintf("%s to %s", filename, tname)
- }
-
- probe nfsd.proc4.rename.return =
-diff --git a/tapset/linux/signal.stp b/tapset/linux/signal.stp
-index 9a94bad..4f9f9f9 100644
---- a/tapset/linux/signal.stp
-+++ b/tapset/linux/signal.stp
-@@ -613,7 +613,11 @@ probe signal.pending =
kernel.function("do_sigpending").call !,
- {
- name = "pending"
- sigset_add=@choose_defined($set, $uset)
-- sigset_size=$sigsetsize
-+
-+ # Note that this isn't 100% correct if $sigsetsize doesn't
-+ # exist (in the case of newer do_sigpending() calls). Instead,
-+ # we're returning the default size of a sigset_t.
-+ sigset_size=@choose_defined($sigsetsize, @cast_sizeof("sigset_t"))
- }
-
- /**
diff --git a/sources b/sources
index eabc5df..80e8943 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (systemtap-3.2.tar.gz) =
6036ed1b5189fd3fcfdeeaa526a3539ac632d0b687a063b5e3424e8f613bfc2c8d079742b0262b547128e97e30e4beb61898b23761657aee519e61346ac92e94
+SHA512 (systemtap-3.3.tar.gz) =
b75a4591bdc021645c15cb8f2b8991f46fdffb29b1d132745bafe4291aee5e1892ea9a63c8e98f011a4fee68decd99aa4401dc2f70e163e801cd140ad4cd6b6e
diff --git a/systemtap.spec b/systemtap.spec
index 9907a65..94d8769 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -1,5 +1,6 @@
%{!?with_sqlite: %global with_sqlite 0%{?fedora} >= 17 || 0%{?rhel} >= 7}
-%{!?with_docs: %global with_docs 1}
+# prefer prebuilt docs
+%{!?with_docs: %global with_docs 0}
%{!?with_htmldocs: %global with_htmldocs 0}
%{!?with_monitor: %global with_monitor 1}
# crash is not available
@@ -33,9 +34,9 @@
%{!?with_openssl: %global with_openssl 0}
%endif
%{!?with_pyparsing: %global with_pyparsing 0%{?fedora} >= 18 || 0%{?rhel} >= 7}
-%{!?with_python3: %global with_python3 0%{?fedora} >= 23}
-%{!?with_python2_probes: %global with_python2_probes 1}
-%{!?with_python3_probes: %global with_python3_probes 0%{?fedora} >= 23}
+%{!?with_python3: %global with_python3 0%{?fedora} >= 23 || 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_httpd: %global with_httpd 0}
%ifarch ppc64le aarch64
@@ -66,44 +67,26 @@
%define dracutstap %{_prefix}/share/dracut/modules.d/99stap
%endif
-%if 0%{?rhel} >= 6
+%if 0%{?rhel} == 6 || 0%{?rhel} == 7
%define dracutbindir /sbin
%else
%define dracutbindir %{_bindir}
%endif
-Name: systemtap
-Version: 3.2
-Release: 11%{?dist}
-# for version, see also configure.ac
-
-Patch10: rhbz1504009.patch
-
-# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1546563
-# upstream:
https://sourceware.org/bugzilla/show_bug.cgi?id=22551
-Patch11: rhbz1546563.patch
-
-# Add a new kernel fallback unwinder.
-# upstream: commit 553b6df07c9b7ab30ed468a6a4374cbdf73d1c0d
-Patch13: unwind-fallback.patch
-# And make the kernel DWARF unwinder work with ksalr.
-# upstream: commit 17ee540dd61113fe4f557f191db3480db875cca1
-Patch14: unwind-ksalr.patch
+%if 0%{?rhel} == 6
+ %{!?_rpmmacrodir: %define _rpmmacrodir /etc/rpm/}
+%else
+ %{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d}
+%endif
-# Build-id mismatch with (re)inserted/removed kernel module probe
-# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1566422
-# upstream: db9c9d6e30c6cfd7b85475b5c79ee2cc51201934
-Patch15: rhbz1566422.patch
+# To avoid testsuite/*/*.stp has shebang which doesn't start with '/'
+%undefine __brp_mangle_shebangs
-# systemtap depends on removed /bin/env
-# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1549063
-# upstream: commit d6492e78bd50e923963e3c7aa235100a208f4775
-Patch16: rhbz1549063.patch
+Name: systemtap
+Version: 3.3
+Release: 1%{?dist}
+# for version, see also configure.ac
-# 4.15 kernel updates (__GFP_COLD undeclared)
-# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1549063
-# upstream: commit 0f8139eb4bd06a19714608b5f246fc24fcafde6e
-Patch17: rhbz1566745.patch
# Packaging abstract:
#
@@ -139,7 +122,6 @@ URL:
http://sourceware.org/systemtap/
Source:
ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
# Build*
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gcc-c++
BuildRequires: gettext-devel
BuildRequires: pkgconfig(nss)
@@ -207,9 +189,13 @@ BuildRequires: readline-devel
BuildRequires: pkgconfig(ncurses)
%endif
%if %{with_python2_probes}
-BuildRequires: python-devel
+BuildRequires: python2-devel
+%if 0%{?fedora} >= 1
+BuildRequires: python2-setuptools
+%else
BuildRequires: python-setuptools
%endif
+%endif
%if %{with_python3_probes}
BuildRequires: python3-devel
BuildRequires: python3-setuptools
@@ -238,10 +224,7 @@ Group: Development/System
License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-devel = %{version}-%{release}
-# On RHEL[45], /bin/mktemp comes from the 'mktemp' package. On newer
-# distributions, /bin/mktemp comes from the 'coreutils' package. To
-# avoid a specific RHEL[45] Requires, we'll do a file-based require.
-Requires: nss /bin/mktemp
+Requires: nss coreutils
Requires: zip unzip
Requires(pre): shadow-utils
Requires(post): chkconfig
@@ -344,7 +327,11 @@ URL:
http://sourceware.org/systemtap/
%if %{with_python3}
Requires: python3-pyparsing
%else
+%if 0%{?rhel} >= 7
Requires: pyparsing
+%else
+Requires: python2-pyparsing
+%endif
%endif
%endif
@@ -420,7 +407,7 @@ License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
Requires: byteman > 2.0
-Requires: net-tools
+Requires: iproute
%description runtime-java
This package includes support files needed to run systemtap scripts
@@ -449,6 +436,11 @@ License: GPLv2+
URL:
http://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
+%if ! (%{with_python2_probes})
+# Provide an clean upgrade path when the python2 package is removed
+Obsoletes: %{name}-runtime-python2 < %{version}-%{release}
+%endif
+
%description runtime-python3
This package includes support files needed to run systemtap scripts
that probe python 3 processes.
@@ -506,15 +498,6 @@ find . \( -name configure -o -name config.h.in \) -print | xargs
touch
cd ..
%endif
-%patch10 -p1
-%patch11 -p1
-
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
-
%build
%if %{with_bundled_elfutils}
@@ -567,7 +550,7 @@ cd ..
%global docs_config --enable-docs --disable-htmldocs
%endif
%else
-%global docs_config --disable-docs
+%global docs_config --enable-docs=prebuilt
%endif
# Enable pie as configure defaults to disabling it
@@ -658,19 +641,21 @@ install -c -m 755 stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
# Copy over the testsuite
cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap
-%if %{with_docs}
# We want the manuals in the special doc dir, not the generic doc install dir.
# We build it in place and then move it away so it doesn't get installed
# twice. rpm can specify itself where the (versioned) docs go with the
# %doc directive.
mkdir docs.installed
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/*.pdf docs.installed/
+%if %{with_docs}
%if %{with_htmldocs}
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/tapsets docs.installed/
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/SystemTap_Beginners_Guide docs.installed/
%endif
%endif
+install -D -m 644 macros.systemtap $RPM_BUILD_ROOT%{_rpmmacrodir}/macros.systemtap
+
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server/.systemtap
@@ -738,9 +723,6 @@ done
touch $RPM_BUILD_ROOT%{dracutstap}/params.conf
%endif
-%clean
-rm -rf ${RPM_BUILD_ROOT}
-
%pre runtime
getent group stapusr >/dev/null || groupadd -g 156 -r stapusr 2>/dev/null ||
groupadd -r stapusr
getent group stapsys >/dev/null || groupadd -g 157 -r stapsys 2>/dev/null ||
groupadd -r stapsys
@@ -753,6 +735,15 @@ getent passwd stap-server >/dev/null || \
useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d
%{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server 2>/dev/null || \
useradd -c "Systemtap Compile Server" -g stap-server -d
%{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server
+%pre testsuite
+getent passwd stapusr >/dev/null || \
+ useradd -c "Systemtap 'stapusr' User" -g stapusr -r -s
/sbin/nologin stapusr
+getent passwd stapsys >/dev/null || \
+ useradd -c "Systemtap 'stapsys' User" -g stapsys -G stapusr -r -s
/sbin/nologin stapsys
+getent passwd stapdev >/dev/null || \
+ useradd -c "Systemtap 'stapdev' User" -g stapdev -G stapusr -r -s
/sbin/nologin stapdev
+exit 0
+
%post server
# We have some duplication between the %files listings for the
@@ -1089,8 +1080,8 @@ done
%{_datadir}/systemtap/examples
%{!?_licensedir:%global license %%doc}
%license COPYING
-%if %{with_docs}
%doc docs.installed/*.pdf
+%if %{with_docs}
%if %{with_htmldocs}
%doc docs.installed/tapsets/*.html
%doc docs.installed/SystemTap_Beginners_Guide
@@ -1135,6 +1126,7 @@ done
%{_includedir}/sys/sdt.h
%{_includedir}/sys/sdt-config.h
%{_mandir}/man1/dtrace.1*
+%{_rpmmacrodir}/macros.systemtap
%doc README AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
@@ -1194,23 +1186,8 @@ done
# PRERELEASE
%changelog
-* Thu Apr 19 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-11
-- Add rhbz1549063.patch (/bin/env -> /usr/bin/env)
-- Add rhbz1566745.patch (4.15 kernel tapset updates)
-- Enable accidentially disabled Suggests: kernel-devel again.
-
-* Wed Apr 18 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-10
-- Add unwind-fallback.patch
-- rhbz1566422.patch
-
-* Tue Apr 17 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-9
-- Add unwind-fallback.patch.
-
-* Thu Feb 22 2018 Sergey Avseyev <sergey.avseyev(a)gmail.com> - 3.2-3
-- rhbz1546563 (backport fix for removed timers in kernel 4.15)
-
-* Fri Oct 20 2017 Frank Ch. Eigler <fche(a)redhat.com> - 3.2-2
-- rhbz1504009 (dtrace -G -o /dev/null)
+* Thu Jun 07 2018 Frank Ch. Eigler <fche(a)redhat.com> - 3.3-1
+- Upstream release.
* Wed Oct 18 2017 Frank Ch. Eigler <fche(a)redhat.com> - 3.2-1
- Upstream release.
@@ -1234,7 +1211,7 @@ done
- Upstream release.
* Mon Jul 07 2014 Josh Stone <jistone(a)redhat.com>
-- Flip with_dyninst to an %ifarch whitelist.
+- Flip with_dyninst to an %%ifarch whitelist.
* Wed Apr 30 2014 Jonathan Lebon <jlebon(a)redhat.com> - 2.5-1
- Upstream release.
diff --git a/unwind-fallback.patch b/unwind-fallback.patch
deleted file mode 100644
index bb57607..0000000
--- a/unwind-fallback.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-From 553b6df07c9b7ab30ed468a6a4374cbdf73d1c0d Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark(a)klomp.org>
-Date: Tue, 17 Apr 2018 14:36:13 +0200
-Subject: [PATCH] linux runtime: Add support for new kernel unwind fallback.
-
-In newer kernels dump_trace got replaced by a new unwind infrastructure.
-Add a new autoconf-unwind-stack-trace.c to detect whether we can use it.
-Extend the runtime/stack.c _stp_stack_print_fallback with a new pt_regs*
-argument. Update all callers and add dbug_unwind output to show which
-fallback unwinder we are selecting (or if we are just giving up).
-Rename the struct unwind_state in unwind.c and unwind.h to uw_state
-because the old name now conflicts with the one used in the kernel.
----
- buildrun.cxx | 2 ++
- runtime/linux/autoconf-unwind-stack-trace.c | 16 +++++++++
- runtime/stack.c | 50 ++++++++++++++++++++++++++---
- runtime/unwind.c | 14 ++++----
- runtime/unwind/unwind.h | 4 +--
- 5 files changed, 72 insertions(+), 14 deletions(-)
- create mode 100644 runtime/linux/autoconf-unwind-stack-trace.c
-
-diff --git a/buildrun.cxx b/buildrun.cxx
-index 403fa71..59b9e88 100644
---- a/buildrun.cxx
-+++ b/buildrun.cxx
-@@ -365,6 +365,8 @@ compile_pass (systemtap_session& s)
- "STAPCONF_KERNEL_STACKTRACE", NULL);
- output_autoconf(s, o, "autoconf-save-stack-trace-no-bp.c",
- "STAPCONF_KERNEL_STACKTRACE_NO_BP", NULL);
-+ output_autoconf(s, o, "autoconf-unwind-stack-trace.c",
-+ "STAPCONF_KERNEL_UNWIND_STACK", NULL);
- output_autoconf(s, o, "autoconf-asm-syscall.c",
- "STAPCONF_ASM_SYSCALL_H", NULL);
- output_autoconf(s, o, "autoconf-ring_buffer-flags.c",
"STAPCONF_RING_BUFFER_FLAGS", NULL);
-diff --git a/runtime/linux/autoconf-unwind-stack-trace.c
b/runtime/linux/autoconf-unwind-stack-trace.c
-new file mode 100644
-index 0000000..2ec399e
---- /dev/null
-+++ b/runtime/linux/autoconf-unwind-stack-trace.c
-@@ -0,0 +1,16 @@
-+#include <linux/sched.h>
-+#include <asm/unwind.h>
-+
-+void unwind_stack_trace (void)
-+{
-+ struct unwind_state state;
-+ unwind_start (&state, current, 0, 0);
-+ while (! unwind_done (&state))
-+ {
-+ unsigned long addr = unwind_get_return_address (&state);
-+ if (addr == 0)
-+ break;
-+ unwind_next_frame (&state);
-+ }
-+}
-+
-diff --git a/runtime/stack.c b/runtime/stack.c
-index c9d2c0c..43f98ef 100644
---- a/runtime/stack.c
-+++ b/runtime/stack.c
-@@ -43,7 +43,11 @@
- #include <asm/stacktrace.h>
- #endif
-
--static void _stp_stack_print_fallback(unsigned long, int, int, int);
-+#if defined(STAPCONF_KERNEL_UNWIND_STACK)
-+#include <asm/unwind.h>
-+#endif
-+
-+static void _stp_stack_print_fallback(unsigned long, struct pt_regs*, int, int, int);
-
- #ifdef STP_USE_DWARF_UNWINDER
- #ifdef STAPCONF_LINUX_UACCESS_H
-@@ -128,7 +132,7 @@ static const struct stacktrace_ops print_stack_ops = {
- };
-
- /* Used for kernel backtrace printing when other mechanisms fail. */
--static void _stp_stack_print_fallback(unsigned long stack,
-+static void _stp_stack_print_fallback(unsigned long stack, struct pt_regs *regs,
- int sym_flags, int levels, int skip)
- {
- struct print_stack_data print_data;
-@@ -136,20 +140,55 @@ static void _stp_stack_print_fallback(unsigned long stack,
- print_data.levels = levels;
- print_data.skip = skip;
- #if defined(STAPCONF_KERNEL_STACKTRACE)
-+ dbug_unwind(1, "fallback kernel stacktrace\n");
- dump_trace(current, NULL, (long *)stack, 0, &print_stack_ops,
- &print_data);
- #else
- /* STAPCONF_KERNEL_STACKTRACE_NO_BP */
-+ dbug_unwind(1, "fallback kernel stacktrace (no bp)\n");
- dump_trace(current, NULL, (long *)stack, &print_stack_ops,
- &print_data);
- #endif
- }
- #else
--static void _stp_stack_print_fallback(unsigned long s, int v, int l, int k) {
-+#if defined(STAPCONF_KERNEL_UNWIND_STACK)
-+static void _stp_stack_print_fallback(unsigned long sp, struct pt_regs *regs,
-+ int sym_flags,
-+ int levels, int skip) {
-+ struct unwind_state state;
-+ unwind_start (&state, current, regs, (unsigned long *) sp);
-+ dbug_unwind(1, "fallback kernel stacktrace (unwind)\n");
-+ while (levels > 0 && ! unwind_done (&state))
-+ {
-+ if (skip == 0)
-+ {
-+ unsigned long addr = unwind_get_return_address (&state);
-+ /* When we have frame pointers, the unwind addresses can be
-+ (mostly) trusted, otherwise it is all guesswork. */
-+#ifdef CONFIG_FRAME_POINTER
-+ _stp_print_addr(addr, sym_flags, NULL);
-+#else
-+ _stp_print_addr(addr, sym_flags | _STP_SYM_INEXACT, NULL);
-+#endif
-+ if (addr == 0)
-+ break;
-+ levels--;
-+ }
-+ else
-+ {
-+ dbug_unwind(1, "skipping frame\n");
-+ skip--;
-+ }
-+ unwind_next_frame(&state);
-+ }
-+}
-+#else /* no new unwind */
-+static void _stp_stack_print_fallback(unsigned long s, struct pt_regs *r, int v, int l,
int k) {
- /* Don't guess, just give up. */
-+ dbug_unwind(1, "no fallback kernel stacktrace (giving up)\n");
- _stp_print_addr(0, v | _STP_SYM_INEXACT, NULL);
- }
--
-+#endif /* new unwind */
- #endif /* defined(STAPCONF_KERNEL_STACKTRACE) ||
defined(STAPCONF_KERNEL_STACKTRACE_NO_BP) */
-
-
-@@ -382,6 +421,7 @@ static void _stp_stack_kernel_print(struct context *c, int
sym_flags)
- if (l == 0) {
- remaining = MAXBACKTRACE - n;
- _stp_stack_print_fallback(UNW_SP(&c->uwcontext_kernel.info),
-+ &c->uwcontext_kernel.info.regs,
- sym_flags, remaining, 0);
- break;
- } else {
-@@ -408,7 +448,7 @@ static void _stp_stack_kernel_print(struct context *c, int
sym_flags)
- sp = 0;
- skip = 5; /* yes, that many framework frames. */
- #endif
-- _stp_stack_print_fallback(sp, sym_flags,
-+ _stp_stack_print_fallback(sp, NULL, sym_flags,
- MAXBACKTRACE, skip);
- #else
- if (sym_flags & _STP_SYM_SYMBOL)
-diff --git a/runtime/unwind.c b/runtime/unwind.c
-index ec7cd58..3a2d991 100644
---- a/runtime/unwind.c
-+++ b/runtime/unwind.c
-@@ -235,7 +235,7 @@ static int parse_fde_cie(const u32 *fde, const u32 *cie,
-
- #define REG_STATE state->reg[state->stackDepth]
-
--static int advance_loc(unsigned long delta, struct unwind_state *state)
-+static int advance_loc(unsigned long delta, struct uw_state *state)
- {
- state->loc += delta * state->codeAlign;
- dbug_unwind(1, "state->loc=%lx\n", state->loc);
-@@ -244,7 +244,7 @@ static int advance_loc(unsigned long delta, struct unwind_state
*state)
-
- /* Set Same or Nowhere rule for register. */
- static void set_no_state_rule(uleb128_t reg, enum item_location where,
-- struct unwind_state *state)
-+ struct uw_state *state)
- {
- dbug_unwind(1, "reg=%lx, where=%d\n", reg, where);
- if (reg < ARRAY_SIZE(REG_STATE.regs)) {
-@@ -254,7 +254,7 @@ static void set_no_state_rule(uleb128_t reg, enum item_location
where,
-
- /* Memory or Value rule */
- static void set_offset_rule(uleb128_t reg, enum item_location where,
-- sleb128_t svalue, struct unwind_state *state)
-+ sleb128_t svalue, struct uw_state *state)
- {
- dbug_unwind(1, "reg=%lx, where=%d, svalue=%lx\n", reg, where, svalue);
- if (reg < ARRAY_SIZE(REG_STATE.regs)) {
-@@ -265,7 +265,7 @@ static void set_offset_rule(uleb128_t reg, enum item_location where,
-
- /* Register rule. */
- static void set_register_rule(uleb128_t reg, uleb128_t value,
-- struct unwind_state *state)
-+ struct uw_state *state)
- {
- dbug_unwind(1, "reg=%lx, value=%lx\n", reg, value);
- if (reg < ARRAY_SIZE(REG_STATE.regs)) {
-@@ -277,7 +277,7 @@ static void set_register_rule(uleb128_t reg, uleb128_t value,
- /* Expr or ValExpr rule. */
- static void set_expr_rule(uleb128_t reg, enum item_location where,
- const u8 **expr, const u8 *end,
-- struct unwind_state *state)
-+ struct uw_state *state)
- {
- const u8 *const start = *expr;
- uleb128_t len = get_uleb128(expr, end);
-@@ -296,7 +296,7 @@ static void set_expr_rule(uleb128_t reg, enum item_location where,
- #define MAX_CFI 512
-
- static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc,
-- signed ptrType, int user, struct unwind_state *state, int compat_task)
-+ signed ptrType, int user, struct uw_state *state, int compat_task)
- {
- union {
- const u8 *p8;
-@@ -1169,7 +1169,7 @@ static int unwind_frame(struct unwind_context *context,
- unsigned i;
- signed ptrType = -1, call_frame = 1;
- uleb128_t retAddrReg = 0;
-- struct unwind_state *state = &context->state;
-+ struct uw_state *state = &context->state;
- unsigned long addr;
-
- if (unlikely(table_len == 0)) {
-diff --git a/runtime/unwind/unwind.h b/runtime/unwind/unwind.h
-index 9d66732..b3ff786 100644
---- a/runtime/unwind/unwind.h
-+++ b/runtime/unwind/unwind.h
-@@ -492,7 +492,7 @@ struct unwind_reg_state {
- unsigned cfa_is_expr:1;
- };
-
--struct unwind_state {
-+struct uw_state {
- uleb128_t loc;
- uleb128_t codeAlign;
- sleb128_t dataAlign;
-@@ -503,7 +503,7 @@ struct unwind_state {
-
- struct unwind_context {
- struct unwind_frame_info info;
-- struct unwind_state state;
-+ struct uw_state state;
- };
-
- static const struct cfa badCFA = { ARRAY_SIZE(reg_info), 1 };
---
-1.8.3.1
-
diff --git a/unwind-ksalr.patch b/unwind-ksalr.patch
deleted file mode 100644
index 6ed43ee..0000000
--- a/unwind-ksalr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-commit 17ee540dd61113fe4f557f191db3480db875cca1
-Author: Mark Wielaard <mark(a)klomp.org>
-Date: Wed Apr 18 15:00:24 2018 +0200
-
- Make kernel DWARF unwinder work with ksalr.
-
- The .debug_frame loaded from disk is already relocated against the
- expected load offset of the kernel, but the actual static (load)
- address might be different (with kaslr). So adjust the startLoc
- for that difference when reading any address from the unwind table.
-
-diff --git a/runtime/unwind.c b/runtime/unwind.c
-index 3a2d991..4c360d2 100644
---- a/runtime/unwind.c
-+++ b/runtime/unwind.c
-@@ -724,10 +724,15 @@ adjustStartLoc (unsigned long startLoc,
- dbug_unwind(2, "adjustStartLoc=%lx, ptrType=%s, m=%s, s=%s eh=%d\n",
- startLoc, _stp_eh_enc_name(ptrType), m->path, s->name, is_ehframe);
- if (startLoc == 0
-- || strcmp (m->name, "kernel") == 0
- || (strcmp (s->name, ".absolute") == 0 && !is_ehframe))
- return startLoc;
-
-+ /* The .debug_frame loaded from disk is already relocated against the
-+ expected load offset of the kernel, but the actual static (load)
-+ address might be different (with kaslr). */
-+ if (strcmp (m->name, "kernel") == 0)
-+ return startLoc - s->sec_load_offset + s->static_addr;
-+
- /* eh_frame data has been loaded in the kernel, so readjust offset. */
- if (is_ehframe) {
- dbug_unwind(2, "eh_frame=%lx, eh_frame_addr=%lx\n", (unsigned long)
m->eh_frame, m->eh_frame_addr);
commit b67c63adc5709322254a53ab77b5a39069e64989
Author: Mark Wielaard <mark(a)klomp.org>
Date: Thu Apr 19 00:56:03 2018 +0200
3.2-11 spec update.
diff --git a/systemtap.spec b/systemtap.spec
index 07ed111..9907a65 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -74,7 +74,7 @@
Name: systemtap
Version: 3.2
-Release: 10%{?dist}
+Release: 11%{?dist}
# for version, see also configure.ac
Patch10: rhbz1504009.patch
@@ -95,6 +95,16 @@ Patch14: unwind-ksalr.patch
# upstream: db9c9d6e30c6cfd7b85475b5c79ee2cc51201934
Patch15: rhbz1566422.patch
+# systemtap depends on removed /bin/env
+# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1549063
+# upstream: commit d6492e78bd50e923963e3c7aa235100a208f4775
+Patch16: rhbz1549063.patch
+
+# 4.15 kernel updates (__GFP_COLD undeclared)
+# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1549063
+# upstream: commit 0f8139eb4bd06a19714608b5f246fc24fcafde6e
+Patch17: rhbz1566745.patch
+
# Packaging abstract:
#
# systemtap empty req:-client req:-devel
@@ -261,7 +271,7 @@ URL:
http://sourceware.org/systemtap/
# kernel variant (kernel-PAE, kernel-debug, etc.) devel package
# installed.
Requires: kernel-devel-uname-r
-#%{?fedora:Suggests: kernel-devel}
+%{?fedora:Suggests: kernel-devel}
Requires: gcc make
# Suggest: kernel-debuginfo
@@ -502,6 +512,8 @@ cd ..
%patch13 -p1
%patch14 -p1
%patch15 -p1
+%patch16 -p1
+%patch17 -p1
%build
@@ -1182,6 +1194,11 @@ done
# PRERELEASE
%changelog
+* Thu Apr 19 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-11
+- Add rhbz1549063.patch (/bin/env -> /usr/bin/env)
+- Add rhbz1566745.patch (4.15 kernel tapset updates)
+- Enable accidentially disabled Suggests: kernel-devel again.
+
* Wed Apr 18 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-10
- Add unwind-fallback.patch
- rhbz1566422.patch
commit 0d3a3a4eeeadb1e95f94e2ed2adef3d91e2eabd8
Author: Mark Wielaard <mark(a)klomp.org>
Date: Thu Apr 19 00:53:27 2018 +0200
3.2-11
- Add rhbz1549063.patch (/bin/env -> /usr/bin/env)
- Add rhbz1566745.patch (4.15 kernel tapset updates)
- Enable accidentially disabled Suggests: kernel-devel again.
diff --git a/rhbz1549063.patch b/rhbz1549063.patch
new file mode 100644
index 0000000..55a56f7
--- /dev/null
+++ b/rhbz1549063.patch
@@ -0,0 +1,32 @@
+commit d6492e78bd50e923963e3c7aa235100a208f4775
+Author: Mark Wielaard <mark(a)klomp.org>
+Date: Mon Feb 26 11:31:44 2018 +0100
+
+ testsuite: Use /usr/bin/env everywhere.
+
+ bz5274.stp and bz5274.a.stp where still using /bin/env instead of
+ /usr/bin/env like every other testsuite file.
+
+ The latest coreutils in rawhide dropped old /bin/* provides.
+
https://bugzilla.redhat.com/show_bug.cgi?id=1549063
+
+diff --git a/testsuite/systemtap.base/bz5274.a.stp
b/testsuite/systemtap.base/bz5274.a.stp
+index 1d3aefc..e6365e4 100755
+--- a/testsuite/systemtap.base/bz5274.a.stp
++++ b/testsuite/systemtap.base/bz5274.a.stp
+@@ -1,4 +1,4 @@
+-#! /bin/env stap
++#! /usr/bin/env stap
+ probe process("./bz5274").function("funcb").call,
+ process("./bz5274").function("funcc").call,
+ process("./bz5274").function("funcd").call
+diff --git a/testsuite/systemtap.base/bz5274.stp b/testsuite/systemtap.base/bz5274.stp
+index b3e26d8..2f62cbc 100755
+--- a/testsuite/systemtap.base/bz5274.stp
++++ b/testsuite/systemtap.base/bz5274.stp
+@@ -1,4 +1,4 @@
+-#! /bin/env stap
++#! /usr/bin/env stap
+ probe process("./bz5274").function("*").call {
+ printf("%s Entering %s\n", pp(), thread_indent(1))
+ }
diff --git a/rhbz1566745.patch b/rhbz1566745.patch
new file mode 100644
index 0000000..bf3744f
--- /dev/null
+++ b/rhbz1566745.patch
@@ -0,0 +1,125 @@
+commit 0f8139eb4bd06a19714608b5f246fc24fcafde6e
+Author: David Smith <dsmith(a)redhat.com>
+Date: Thu Dec 7 16:07:39 2017 -0600
+
+ Updated several tapsets for the 4.15 kernel.
+
+ * tapset/linux/linuxmib.stp: Update the 'DelayedACKs' probes to handle
+ a missing '$data' parameter.
+ * tapset/linux/memory.stp: Handle missing '__GFP_COLD' flag.
+ * tapset/linux/nfsd.stp: Update the 'nfsd.proc4.rename' probe to handle
+ upstream changes.
+ * tapset/linux/signal.stp: Update the 'signal.pending' probe to handle a
+ missing '$sigsestsize' parameter.
+
+diff --git a/tapset/linux/linuxmib.stp b/tapset/linux/linuxmib.stp
+index ef09929..63ec248 100644
+--- a/tapset/linux/linuxmib.stp
++++ b/tapset/linux/linuxmib.stp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (C) 2009 IBM Corp.
+- * Copyright (C) 2010 Red Hat Inc.
++ * Copyright (C) 2010-2017 Red Hat Inc.
+ *
+ * This file is part of systemtap, and is free software. You can
+ * redistribute it and/or modify it under the terms of the GNU General
+@@ -39,14 +39,18 @@ probe _linuxmib.DelayedACKs.A =
kernel.function("tcp_send_ack")
+
+ probe _linuxmib.DelayedACKs.B = kernel.function("tcp_delack_timer")
+ {
+- sk=$data
++ sk=@choose_defined($data,
++ &@container_of($t, "inet_connection_sock",
++ icsk_delack_timer)->icsk_inet->sk)
+ indelack_timer[sk]=1
+ op=0
+ }
+
+ probe _linuxmib.DelayedACKs.C = kernel.function("tcp_delack_timer").return
+ {
+- sk=@entry($data)
++ sk=@entry(@choose_defined($data,
++ &@container_of($t, "inet_connection_sock",
++ icsk_delack_timer)->icsk_inet->sk))
+ indelack_timer[sk]=0;
+ op=0
+ }
+diff --git a/tapset/linux/memory.stp b/tapset/linux/memory.stp
+index b968fe3..169d0f1 100644
+--- a/tapset/linux/memory.stp
++++ b/tapset/linux/memory.stp
+@@ -1,7 +1,7 @@
+ // memory/vm related tapset
+ // Copyright (C) 2005, 2006 IBM Corp.
+ // Copyright (C) 2006 Intel Corporation.
+-// Copyright (C) 2014 Red Hat Inc.
++// Copyright (C) 2014-2017 Red Hat Inc.
+ //
+ // This file is part of systemtap, and is free software. You can
+ // redistribute it and/or modify it under the terms of the GNU General
+@@ -368,7 +368,9 @@ probe vm.oom_kill = kernel.function("oom_kill_process") !,
+ __GFP_BITMASKS(__GFP_HIGH)
+ __GFP_BITMASKS(__GFP_IO)
+ __GFP_BITMASKS(__GFP_FS)
++#ifdef __GFP_COLD
+ __GFP_BITMASKS(__GFP_COLD)
++#endif
+ __GFP_BITMASKS(__GFP_NOWARN)
+ #ifdef __GFP_RETRY_MAYFAIL
+ __GFP_BITMASKS(__GFP_RETRY_MAYFAIL)
+diff --git a/tapset/linux/nfsd.stp b/tapset/linux/nfsd.stp
+index 3df1600..5a70e84 100644
+--- a/tapset/linux/nfsd.stp
++++ b/tapset/linux/nfsd.stp
+@@ -1262,18 +1262,26 @@ probe nfsd.proc4.rename =
kernel.function("nfsd4_rename").call !,
+ fh = & @nfsd4_compound_state($cstate)->save_fh
+ tfh = & @nfsd4_compound_state($cstate)->current_fh
+
+- filelen = $rename->rn_snamelen
+- filename = kernel_string_n($rename->rn_sname, $rename->rn_snamelen)
+- tlen = $rename->rn_tnamelen
+- tname = kernel_string_n($rename->rn_tname, $rename->rn_tnamelen)
++ if (@defined($rename)) {
++ filelen = $rename->rn_snamelen
++ filename = kernel_string_n($rename->rn_sname,
++ $rename->rn_snamelen)
++ tlen = $rename->rn_tnamelen
++ tname = kernel_string_n($rename->rn_tname, $rename->rn_tnamelen)
++ } else {
++ filelen = $u->rename->rn_snamelen
++ filename = kernel_string_n($u->rename->rn_sname,
++ $u->rename->rn_snamelen)
++ tlen = $u->rename->rn_tnamelen
++ tname = kernel_string_n($u->rename->rn_tname,
++ $u->rename->rn_tnamelen)
++ }
+
+ uid = __rqstp_uid($rqstp)
+ gid = __rqstp_gid($rqstp)
+
+ name = "nfsd.proc4.rename"
+- argstr = sprintf("%s to %s",
+- kernel_string_n($rename->rn_sname, $rename->rn_snamelen),
+- kernel_string_n($rename->rn_tname, $rename->rn_tnamelen))
++ argstr = sprintf("%s to %s", filename, tname)
+ }
+
+ probe nfsd.proc4.rename.return =
+diff --git a/tapset/linux/signal.stp b/tapset/linux/signal.stp
+index 9a94bad..4f9f9f9 100644
+--- a/tapset/linux/signal.stp
++++ b/tapset/linux/signal.stp
+@@ -613,7 +613,11 @@ probe signal.pending =
kernel.function("do_sigpending").call !,
+ {
+ name = "pending"
+ sigset_add=@choose_defined($set, $uset)
+- sigset_size=$sigsetsize
++
++ # Note that this isn't 100% correct if $sigsetsize doesn't
++ # exist (in the case of newer do_sigpending() calls). Instead,
++ # we're returning the default size of a sigset_t.
++ sigset_size=@choose_defined($sigsetsize, @cast_sizeof("sigset_t"))
+ }
+
+ /**
commit c6a588ad5d62e4bdf4287e1faf448b32f32ae721
Author: Mark Wielaard <mark(a)klomp.org>
Date: Wed Apr 18 16:57:44 2018 +0200
3.2-10
- Add unwind-fallback.patch
- rhbz1566422.patch
diff --git a/rhbz1566422.patch b/rhbz1566422.patch
new file mode 100644
index 0000000..494e4c9
--- /dev/null
+++ b/rhbz1566422.patch
@@ -0,0 +1,46 @@
+commit db9c9d6e30c6cfd7b85475b5c79ee2cc51201934
+Author: Serhei Makarov <smakarov(a)redhat.com>
+Date: Tue Apr 17 11:35:00 2018 -0400
+
+ RHBZ1566422 - fix spurious Build-id mismatch when probing reinserted kernel module
+
+ Code for newer kernels did not clear the address of the notes-section
+ when a probed module was unloaded. This caused spurious Build-id mismatch
+ when the module was reinserted as new addresses are not computed for
+ dynamically loaded modules (see also: PR23068) and the Build-id check
+ was trying to read the notes section at the no-longer-valid old address.
+
+ * runtime/sym.c (_stp_module_notifier): clear addresses on
+ MODULE_STATE_GOING in newer kernels (>=3.10) too.
+ * runtime/transport/symbols.c (_stp_kmodule_update_address): fix logic
+ error and clear notes section addr when reloc=NULL (aka. 'all').
+
+diff --git a/runtime/sym.c b/runtime/sym.c
+index c11a35a..b6e0fd6 100644
+--- a/runtime/sym.c
++++ b/runtime/sym.c
+@@ -1045,7 +1045,7 @@ static void _stp_kmodule_update_address(const char* module,
+ if (strcmp (_stp_modules[mi]->name, module))
+ continue;
+
+- if (reloc && !strcmp (note_sectname, reloc)) {
++ if (!reloc || !strcmp (note_sectname, reloc)) {
+ dbug_sym(1, "module %s special section %s address %#lx\n",
+ _stp_modules[mi]->name,
+ note_sectname,
+diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
+index 64c2aeb..076c562 100644
+--- a/runtime/transport/symbols.c
++++ b/runtime/transport/symbols.c
+@@ -167,6 +167,11 @@ static int _stp_module_notifier (struct notifier_block * nb,
+ /* Verify build-id. */
+ _stp_kmodule_check (mod->name);
+ }
++ else if (val == MODULE_STATE_GOING) {
++ /* Unregister all sections. */
++ dbug_sym(2, "unregister sections\n");
++ _stp_kmodule_update_address(mod->name, NULL, 0);
++ }
+ else if (val != MODULE_STATE_GOING) {
+ return NOTIFY_DONE;
+ }
diff --git a/systemtap.spec b/systemtap.spec
index 8ba9656..07ed111 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -74,7 +74,7 @@
Name: systemtap
Version: 3.2
-Release: 9%{?dist}
+Release: 10%{?dist}
# for version, see also configure.ac
Patch10: rhbz1504009.patch
@@ -83,9 +83,17 @@ Patch10: rhbz1504009.patch
# upstream:
https://sourceware.org/bugzilla/show_bug.cgi?id=22551
Patch11: rhbz1546563.patch
-# Partial fix for backstrace issues. Add a new kernel fallback unwinder.
+# Add a new kernel fallback unwinder.
# upstream: commit 553b6df07c9b7ab30ed468a6a4374cbdf73d1c0d
Patch13: unwind-fallback.patch
+# And make the kernel DWARF unwinder work with ksalr.
+# upstream: commit 17ee540dd61113fe4f557f191db3480db875cca1
+Patch14: unwind-ksalr.patch
+
+# Build-id mismatch with (re)inserted/removed kernel module probe
+# redhat:
https://bugzilla.redhat.com/show_bug.cgi?id=1566422
+# upstream: db9c9d6e30c6cfd7b85475b5c79ee2cc51201934
+Patch15: rhbz1566422.patch
# Packaging abstract:
#
@@ -253,7 +261,7 @@ URL:
http://sourceware.org/systemtap/
# kernel variant (kernel-PAE, kernel-debug, etc.) devel package
# installed.
Requires: kernel-devel-uname-r
-%{?fedora:Suggests: kernel-devel}
+#%{?fedora:Suggests: kernel-devel}
Requires: gcc make
# Suggest: kernel-debuginfo
@@ -492,6 +500,8 @@ cd ..
%patch11 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
%build
@@ -1172,6 +1182,10 @@ done
# PRERELEASE
%changelog
+* Wed Apr 18 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-10
+- Add unwind-fallback.patch
+- rhbz1566422.patch
+
* Tue Apr 17 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-9
- Add unwind-fallback.patch.
diff --git a/unwind-ksalr.patch b/unwind-ksalr.patch
new file mode 100644
index 0000000..6ed43ee
--- /dev/null
+++ b/unwind-ksalr.patch
@@ -0,0 +1,32 @@
+commit 17ee540dd61113fe4f557f191db3480db875cca1
+Author: Mark Wielaard <mark(a)klomp.org>
+Date: Wed Apr 18 15:00:24 2018 +0200
+
+ Make kernel DWARF unwinder work with ksalr.
+
+ The .debug_frame loaded from disk is already relocated against the
+ expected load offset of the kernel, but the actual static (load)
+ address might be different (with kaslr). So adjust the startLoc
+ for that difference when reading any address from the unwind table.
+
+diff --git a/runtime/unwind.c b/runtime/unwind.c
+index 3a2d991..4c360d2 100644
+--- a/runtime/unwind.c
++++ b/runtime/unwind.c
+@@ -724,10 +724,15 @@ adjustStartLoc (unsigned long startLoc,
+ dbug_unwind(2, "adjustStartLoc=%lx, ptrType=%s, m=%s, s=%s eh=%d\n",
+ startLoc, _stp_eh_enc_name(ptrType), m->path, s->name, is_ehframe);
+ if (startLoc == 0
+- || strcmp (m->name, "kernel") == 0
+ || (strcmp (s->name, ".absolute") == 0 && !is_ehframe))
+ return startLoc;
+
++ /* The .debug_frame loaded from disk is already relocated against the
++ expected load offset of the kernel, but the actual static (load)
++ address might be different (with kaslr). */
++ if (strcmp (m->name, "kernel") == 0)
++ return startLoc - s->sec_load_offset + s->static_addr;
++
+ /* eh_frame data has been loaded in the kernel, so readjust offset. */
+ if (is_ehframe) {
+ dbug_unwind(2, "eh_frame=%lx, eh_frame_addr=%lx\n", (unsigned long)
m->eh_frame, m->eh_frame_addr);
commit a1381b8649149ae5aa340a220535bfc61e1fa272
Author: Mark Wielaard <mark(a)klomp.org>
Date: Tue Apr 17 17:13:18 2018 +0200
3.2-9 - Add unwind-fallback.patch.
diff --git a/systemtap.spec b/systemtap.spec
index 73ec13c..8ba9656 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -74,7 +74,7 @@
Name: systemtap
Version: 3.2
-Release: 3%{?dist}
+Release: 9%{?dist}
# for version, see also configure.ac
Patch10: rhbz1504009.patch
@@ -83,6 +83,10 @@ Patch10: rhbz1504009.patch
# upstream:
https://sourceware.org/bugzilla/show_bug.cgi?id=22551
Patch11: rhbz1546563.patch
+# Partial fix for backstrace issues. Add a new kernel fallback unwinder.
+# upstream: commit 553b6df07c9b7ab30ed468a6a4374cbdf73d1c0d
+Patch13: unwind-fallback.patch
+
# Packaging abstract:
#
# systemtap empty req:-client req:-devel
@@ -487,6 +491,8 @@ cd ..
%patch10 -p1
%patch11 -p1
+%patch13 -p1
+
%build
%if %{with_bundled_elfutils}
@@ -1166,6 +1172,9 @@ done
# PRERELEASE
%changelog
+* Tue Apr 17 2018 Mark Wielaard <mjw(a)fedoraproject.org> - 3.2-9
+- Add unwind-fallback.patch.
+
* Thu Feb 22 2018 Sergey Avseyev <sergey.avseyev(a)gmail.com> - 3.2-3
- rhbz1546563 (backport fix for removed timers in kernel 4.15)
diff --git a/unwind-fallback.patch b/unwind-fallback.patch
new file mode 100644
index 0000000..bb57607
--- /dev/null
+++ b/unwind-fallback.patch
@@ -0,0 +1,249 @@
+From 553b6df07c9b7ab30ed468a6a4374cbdf73d1c0d Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark(a)klomp.org>
+Date: Tue, 17 Apr 2018 14:36:13 +0200
+Subject: [PATCH] linux runtime: Add support for new kernel unwind fallback.
+
+In newer kernels dump_trace got replaced by a new unwind infrastructure.
+Add a new autoconf-unwind-stack-trace.c to detect whether we can use it.
+Extend the runtime/stack.c _stp_stack_print_fallback with a new pt_regs*
+argument. Update all callers and add dbug_unwind output to show which
+fallback unwinder we are selecting (or if we are just giving up).
+Rename the struct unwind_state in unwind.c and unwind.h to uw_state
+because the old name now conflicts with the one used in the kernel.
+---
+ buildrun.cxx | 2 ++
+ runtime/linux/autoconf-unwind-stack-trace.c | 16 +++++++++
+ runtime/stack.c | 50 ++++++++++++++++++++++++++---
+ runtime/unwind.c | 14 ++++----
+ runtime/unwind/unwind.h | 4 +--
+ 5 files changed, 72 insertions(+), 14 deletions(-)
+ create mode 100644 runtime/linux/autoconf-unwind-stack-trace.c
+
+diff --git a/buildrun.cxx b/buildrun.cxx
+index 403fa71..59b9e88 100644
+--- a/buildrun.cxx
++++ b/buildrun.cxx
+@@ -365,6 +365,8 @@ compile_pass (systemtap_session& s)
+ "STAPCONF_KERNEL_STACKTRACE", NULL);
+ output_autoconf(s, o, "autoconf-save-stack-trace-no-bp.c",
+ "STAPCONF_KERNEL_STACKTRACE_NO_BP", NULL);
++ output_autoconf(s, o, "autoconf-unwind-stack-trace.c",
++ "STAPCONF_KERNEL_UNWIND_STACK", NULL);
+ output_autoconf(s, o, "autoconf-asm-syscall.c",
+ "STAPCONF_ASM_SYSCALL_H", NULL);
+ output_autoconf(s, o, "autoconf-ring_buffer-flags.c",
"STAPCONF_RING_BUFFER_FLAGS", NULL);
+diff --git a/runtime/linux/autoconf-unwind-stack-trace.c
b/runtime/linux/autoconf-unwind-stack-trace.c
+new file mode 100644
+index 0000000..2ec399e
+--- /dev/null
++++ b/runtime/linux/autoconf-unwind-stack-trace.c
+@@ -0,0 +1,16 @@
++#include <linux/sched.h>
++#include <asm/unwind.h>
++
++void unwind_stack_trace (void)
++{
++ struct unwind_state state;
++ unwind_start (&state, current, 0, 0);
++ while (! unwind_done (&state))
++ {
++ unsigned long addr = unwind_get_return_address (&state);
++ if (addr == 0)
++ break;
++ unwind_next_frame (&state);
++ }
++}
++
+diff --git a/runtime/stack.c b/runtime/stack.c
+index c9d2c0c..43f98ef 100644
+--- a/runtime/stack.c
++++ b/runtime/stack.c
+@@ -43,7 +43,11 @@
+ #include <asm/stacktrace.h>
+ #endif
+
+-static void _stp_stack_print_fallback(unsigned long, int, int, int);
++#if defined(STAPCONF_KERNEL_UNWIND_STACK)
++#include <asm/unwind.h>
++#endif
++
++static void _stp_stack_print_fallback(unsigned long, struct pt_regs*, int, int, int);
+
+ #ifdef STP_USE_DWARF_UNWINDER
+ #ifdef STAPCONF_LINUX_UACCESS_H
+@@ -128,7 +132,7 @@ static const struct stacktrace_ops print_stack_ops = {
+ };
+
+ /* Used for kernel backtrace printing when other mechanisms fail. */
+-static void _stp_stack_print_fallback(unsigned long stack,
++static void _stp_stack_print_fallback(unsigned long stack, struct pt_regs *regs,
+ int sym_flags, int levels, int skip)
+ {
+ struct print_stack_data print_data;
+@@ -136,20 +140,55 @@ static void _stp_stack_print_fallback(unsigned long stack,
+ print_data.levels = levels;
+ print_data.skip = skip;
+ #if defined(STAPCONF_KERNEL_STACKTRACE)
++ dbug_unwind(1, "fallback kernel stacktrace\n");
+ dump_trace(current, NULL, (long *)stack, 0, &print_stack_ops,
+ &print_data);
+ #else
+ /* STAPCONF_KERNEL_STACKTRACE_NO_BP */
++ dbug_unwind(1, "fallback kernel stacktrace (no bp)\n");
+ dump_trace(current, NULL, (long *)stack, &print_stack_ops,
+ &print_data);
+ #endif
+ }
+ #else
+-static void _stp_stack_print_fallback(unsigned long s, int v, int l, int k) {
++#if defined(STAPCONF_KERNEL_UNWIND_STACK)
++static void _stp_stack_print_fallback(unsigned long sp, struct pt_regs *regs,
++ int sym_flags,
++ int levels, int skip) {
++ struct unwind_state state;
++ unwind_start (&state, current, regs, (unsigned long *) sp);
++ dbug_unwind(1, "fallback kernel stacktrace (unwind)\n");
++ while (levels > 0 && ! unwind_done (&state))
++ {
++ if (skip == 0)
++ {
++ unsigned long addr = unwind_get_return_address (&state);
++ /* When we have frame pointers, the unwind addresses can be
++ (mostly) trusted, otherwise it is all guesswork. */
++#ifdef CONFIG_FRAME_POINTER
++ _stp_print_addr(addr, sym_flags, NULL);
++#else
++ _stp_print_addr(addr, sym_flags | _STP_SYM_INEXACT, NULL);
++#endif
++ if (addr == 0)
++ break;
++ levels--;
++ }
++ else
++ {
++ dbug_unwind(1, "skipping frame\n");
++ skip--;
++ }
++ unwind_next_frame(&state);
++ }
++}
++#else /* no new unwind */
++static void _stp_stack_print_fallback(unsigned long s, struct pt_regs *r, int v, int l,
int k) {
+ /* Don't guess, just give up. */
++ dbug_unwind(1, "no fallback kernel stacktrace (giving up)\n");
+ _stp_print_addr(0, v | _STP_SYM_INEXACT, NULL);
+ }
+-
++#endif /* new unwind */
+ #endif /* defined(STAPCONF_KERNEL_STACKTRACE) ||
defined(STAPCONF_KERNEL_STACKTRACE_NO_BP) */
+
+
+@@ -382,6 +421,7 @@ static void _stp_stack_kernel_print(struct context *c, int
sym_flags)
+ if (l == 0) {
+ remaining = MAXBACKTRACE - n;
+ _stp_stack_print_fallback(UNW_SP(&c->uwcontext_kernel.info),
++ &c->uwcontext_kernel.info.regs,
+ sym_flags, remaining, 0);
+ break;
+ } else {
+@@ -408,7 +448,7 @@ static void _stp_stack_kernel_print(struct context *c, int
sym_flags)
+ sp = 0;
+ skip = 5; /* yes, that many framework frames. */
+ #endif
+- _stp_stack_print_fallback(sp, sym_flags,
++ _stp_stack_print_fallback(sp, NULL, sym_flags,
+ MAXBACKTRACE, skip);
+ #else
+ if (sym_flags & _STP_SYM_SYMBOL)
+diff --git a/runtime/unwind.c b/runtime/unwind.c
+index ec7cd58..3a2d991 100644
+--- a/runtime/unwind.c
++++ b/runtime/unwind.c
+@@ -235,7 +235,7 @@ static int parse_fde_cie(const u32 *fde, const u32 *cie,
+
+ #define REG_STATE state->reg[state->stackDepth]
+
+-static int advance_loc(unsigned long delta, struct unwind_state *state)
++static int advance_loc(unsigned long delta, struct uw_state *state)
+ {
+ state->loc += delta * state->codeAlign;
+ dbug_unwind(1, "state->loc=%lx\n", state->loc);
+@@ -244,7 +244,7 @@ static int advance_loc(unsigned long delta, struct unwind_state
*state)
+
+ /* Set Same or Nowhere rule for register. */
+ static void set_no_state_rule(uleb128_t reg, enum item_location where,
+- struct unwind_state *state)
++ struct uw_state *state)
+ {
+ dbug_unwind(1, "reg=%lx, where=%d\n", reg, where);
+ if (reg < ARRAY_SIZE(REG_STATE.regs)) {
+@@ -254,7 +254,7 @@ static void set_no_state_rule(uleb128_t reg, enum item_location
where,
+
+ /* Memory or Value rule */
+ static void set_offset_rule(uleb128_t reg, enum item_location where,
+- sleb128_t svalue, struct unwind_state *state)
++ sleb128_t svalue, struct uw_state *state)
+ {
+ dbug_unwind(1, "reg=%lx, where=%d, svalue=%lx\n", reg, where, svalue);
+ if (reg < ARRAY_SIZE(REG_STATE.regs)) {
+@@ -265,7 +265,7 @@ static void set_offset_rule(uleb128_t reg, enum item_location where,
+
+ /* Register rule. */
+ static void set_register_rule(uleb128_t reg, uleb128_t value,
+- struct unwind_state *state)
++ struct uw_state *state)
+ {
+ dbug_unwind(1, "reg=%lx, value=%lx\n", reg, value);
+ if (reg < ARRAY_SIZE(REG_STATE.regs)) {
+@@ -277,7 +277,7 @@ static void set_register_rule(uleb128_t reg, uleb128_t value,
+ /* Expr or ValExpr rule. */
+ static void set_expr_rule(uleb128_t reg, enum item_location where,
+ const u8 **expr, const u8 *end,
+- struct unwind_state *state)
++ struct uw_state *state)
+ {
+ const u8 *const start = *expr;
+ uleb128_t len = get_uleb128(expr, end);
+@@ -296,7 +296,7 @@ static void set_expr_rule(uleb128_t reg, enum item_location where,
+ #define MAX_CFI 512
+
+ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc,
+- signed ptrType, int user, struct unwind_state *state, int compat_task)
++ signed ptrType, int user, struct uw_state *state, int compat_task)
+ {
+ union {
+ const u8 *p8;
+@@ -1169,7 +1169,7 @@ static int unwind_frame(struct unwind_context *context,
+ unsigned i;
+ signed ptrType = -1, call_frame = 1;
+ uleb128_t retAddrReg = 0;
+- struct unwind_state *state = &context->state;
++ struct uw_state *state = &context->state;
+ unsigned long addr;
+
+ if (unlikely(table_len == 0)) {
+diff --git a/runtime/unwind/unwind.h b/runtime/unwind/unwind.h
+index 9d66732..b3ff786 100644
+--- a/runtime/unwind/unwind.h
++++ b/runtime/unwind/unwind.h
+@@ -492,7 +492,7 @@ struct unwind_reg_state {
+ unsigned cfa_is_expr:1;
+ };
+
+-struct unwind_state {
++struct uw_state {
+ uleb128_t loc;
+ uleb128_t codeAlign;
+ sleb128_t dataAlign;
+@@ -503,7 +503,7 @@ struct unwind_state {
+
+ struct unwind_context {
+ struct unwind_frame_info info;
+- struct unwind_state state;
++ struct uw_state state;
+ };
+
+ static const struct cfa badCFA = { ARRAY_SIZE(reg_info), 1 };
+--
+1.8.3.1
+