From 3d77a87b645d433c6c8014e8d7cc7833467b0837 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 8 Nov 2022 01:31:08 -0500 Subject: [PATCH] import systemtap-4.7-1.el8 --- .gitignore | 2 +- .systemtap.metadata | 2 +- SOURCES/sdt-asm-glibc.patch | 154 ------------------------------------ SPECS/systemtap.spec | 60 +++++++++++--- 4 files changed, 50 insertions(+), 168 deletions(-) delete mode 100644 SOURCES/sdt-asm-glibc.patch diff --git a/.gitignore b/.gitignore index 5e535be..d6f13bf 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/systemtap-4.6.tar.gz +SOURCES/systemtap-4.7.tar.gz diff --git a/.systemtap.metadata b/.systemtap.metadata index dad6e4d..496d9fb 100644 --- a/.systemtap.metadata +++ b/.systemtap.metadata @@ -1 +1 @@ -ecc45371b378fc3824a5547b02c030b4123d6769 SOURCES/systemtap-4.6.tar.gz +fc943fc3233b111fd80c9cbd063859dc1b699dcb SOURCES/systemtap-4.7.tar.gz diff --git a/SOURCES/sdt-asm-glibc.patch b/SOURCES/sdt-asm-glibc.patch deleted file mode 100644 index 0aa9261..0000000 --- a/SOURCES/sdt-asm-glibc.patch +++ /dev/null @@ -1,154 +0,0 @@ -commit ecab2afea46099b4e7dfd551462689224afdbe3a -Author: Stan Cox -Date: Wed Dec 1 16:19:22 2021 -0500 - - Handle user supplied sdt probe argument template - - User supplied templates were erroneously removed by commit eaa15b047, - which complicated the template expansion. To do the above the - expansion of STAP_PROBE_ASM(provider, fooprobe, - STAP_PROBE_ASM_TEMPLATE(3)) adds an unused argument: - STAP_PROBE_ASM(provider, fooprobe, /*template expansion*/ "%[SDT..]..", - "use _SDT_ASM_TEMPLATE") A supplied template - STAP_PROBE_ASM(provider, fooprobe, "4@%rdx 8@%rax") is left alone. If - the varargs has 2 args (the fake "use ..") then macro expansion - inserts the expanded string, otherwise "4@.." becomes an ascii op. - -diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h -index 28d236d91..24d5e01c3 100644 ---- a/includes/sys/sdt.h -+++ b/includes/sys/sdt.h -@@ -290,7 +290,7 @@ __extension__ extern unsigned long long __sdt_unsp; - _SDT_ASM_1(.purgem _SDT_TYPE_) \ - _SDT_ASM_1(.purgem _SDT_TYPE) - --#define _SDT_ASM_BODY(provider, name, pack_args, args) \ -+#define _SDT_ASM_BODY(provider, name, pack_args, args, ...) \ - _SDT_DEF_MACROS \ - _SDT_ASM_1(990: _SDT_NOP) \ - _SDT_ASM_3( .pushsection .note.stapsdt,_SDT_ASM_AUTOGROUP,"note") \ -@@ -417,9 +417,9 @@ __extension__ extern unsigned long long __sdt_unsp; - counted, so we don't have to worry about the behavior of macros - called without any arguments. */ - --#ifdef SDT_USE_VARIADIC - #define _SDT_NARG(...) __SDT_NARG(__VA_ARGS__, 12,11,10,9,8,7,6,5,4,3,2,1,0) - #define __SDT_NARG(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12, N, ...) N -+#ifdef SDT_USE_VARIADIC - #define _SDT_PROBE_N(provider, name, N, ...) \ - _SDT_PROBE(provider, name, N, (__VA_ARGS__)) - #define STAP_PROBEV(provider, name, ...) \ -@@ -468,9 +468,15 @@ __extension__ extern unsigned long long __sdt_unsp; - Note that these can use operand templates like %0 or %[name], - and likewise they must write %%reg for a literal operand of %reg. */ - -+#define _SDT_ASM_BODY_1(p,n,...) _SDT_ASM_BODY(p,n,_SDT_ASM_SUBSTR,(__VA_ARGS__)) -+#define _SDT_ASM_BODY_2(p,n,...) _SDT_ASM_BODY(p,n,/*_SDT_ASM_STRING */,__VA_ARGS__) -+#define _SDT_ASM_BODY_N2(p,n,no,...) _SDT_ASM_BODY_ ## no(p,n,__VA_ARGS__) -+#define _SDT_ASM_BODY_N1(p,n,no,...) _SDT_ASM_BODY_N2(p,n,no,__VA_ARGS__) -+#define _SDT_ASM_BODY_N(p,n,...) _SDT_ASM_BODY_N1(p,n,_SDT_NARG(0, __VA_ARGS__),__VA_ARGS__) -+ - #if __STDC_VERSION__ >= 199901L - # define STAP_PROBE_ASM(provider, name, ...) \ -- _SDT_ASM_BODY(provider, name, /*_SDT_ASM_STRING */, __VA_ARGS__) \ -+ _SDT_ASM_BODY_N(provider, name, __VA_ARGS__) \ - _SDT_ASM_BASE - # define STAP_PROBE_ASM_OPERANDS(n, ...) _SDT_ASM_OPERANDS_##n(__VA_ARGS__) - #else -@@ -478,7 +484,7 @@ __extension__ extern unsigned long long __sdt_unsp; - _SDT_ASM_BODY(provider, name, /* _SDT_ASM_STRING */, (args)) \ - _SDT_ASM_BASE - #endif --#define STAP_PROBE_ASM_TEMPLATE(n) _SDT_ASM_TEMPLATE_##n -+#define STAP_PROBE_ASM_TEMPLATE(n) _SDT_ASM_TEMPLATE_##n,"use _SDT_ASM_TEMPLATE_" - - - /* DTrace compatible macro names. */ -diff --git a/testsuite/systemtap.base/sdt_casm.c b/testsuite/systemtap.base/sdt_casm.c -index 1cff23c5f..9b357086c 100644 ---- a/testsuite/systemtap.base/sdt_casm.c -+++ b/testsuite/systemtap.base/sdt_casm.c -@@ -3,6 +3,7 @@ - int main() - { - int x = 42; -+ int y = 43; - __asm__ __volatile__ ( - STAP_PROBE_ASM(testsuite, probe0, STAP_PROBE_ASM_TEMPLATE(0)) - ); -@@ -10,5 +11,9 @@ int main() - STAP_PROBE_ASM(testsuite, probe1, STAP_PROBE_ASM_TEMPLATE(1)) - :: STAP_PROBE_ASM_OPERANDS(1, x) - ); -+ // Create a template to test explicit template support -+ __asm__ __volatile__ ( -+ STAP_PROBE_ASM(testsuite, probe2, -4@%[ARG1] -4@%[ARG2]) -+ :: [ARG1] "rm" (x), [ARG2] "rm" (y)); - return 0; - } -diff --git a/testsuite/systemtap.base/sdt_casm.exp b/testsuite/systemtap.base/sdt_casm.exp -index 5791cb2b9..0cd1cb517 100644 ---- a/testsuite/systemtap.base/sdt_casm.exp -+++ b/testsuite/systemtap.base/sdt_casm.exp -@@ -18,7 +18,8 @@ proc cleanup_handler { verbose } { - - set script $srcdir/$subdir/$test.stp - set ::result_string {PASS: probe0 --PASS: probe1} -+PASS: probe1 -+PASS: probe2} - - set asm_flags [sdt_includes] - set asm_flags "$asm_flags additional_flags=-std=c99" -diff --git a/testsuite/systemtap.base/sdt_casm.stp b/testsuite/systemtap.base/sdt_casm.stp -index 4f2539c93..530a79175 100644 ---- a/testsuite/systemtap.base/sdt_casm.stp -+++ b/testsuite/systemtap.base/sdt_casm.stp -@@ -10,3 +10,11 @@ probe process.mark("probe1") - else - printf("FAIL: %s (%d != 42)\n", $$name, $arg1) - } -+ -+probe process.mark("probe2") -+{ -+ if ($arg1 == 42 && $arg2 == 43) -+ printf("PASS: %s\n", $$name) -+ else -+ printf("FAIL: %s (%d/%d != 42/43)\n", $$name, $arg1, $arg2) -+} -commit 209b5a19c (HEAD -> master, origin/master, origin/HEAD) -Author: Stan Cox -Date: Tue Dec 7 09:55:01 2021 -0500 - - sys/sdt.h fp constraints: aarch64, s390 - - Remove float constraints as per commit 1d3653936 but for aarch64 and s390. - -commit 1d3653936 (HEAD -> master, origin/master, origin/HEAD) -Author: Frank Ch. Eigler -Date: Mon Dec 6 12:06:06 2021 -0500 - - sys/sdt.h fp constraints cont'd, x86-64 edition - - It appears that various versions of gcc continue to show signs of - confusion at our newly offered asm-operand alternatives for floating - point sdt.h marker parameters. - - e.g., https://bugzilla.redhat.com/show_bug.cgi?id=2028798 - - We may need to restore previous constraints broadly, forcing the - compiler to plop floating point parameters into integer storage. - ---- a/includes/sys/sdt.h -+++ b/includes/sys/sdt.h -@@ -102,9 +102,5 @@ - # define STAP_SDT_ARG_CONSTRAINT nZr - # elif defined __x86_64__ --# define STAP_SDT_ARG_CONSTRAINT norfxy --# elif defined __aarch64__ --# define STAP_SDT_ARG_CONSTRAINT norw --# elif defined __s390__ || defined __s390x__ --# define STAP_SDT_ARG_CONSTRAINT norf -+# define STAP_SDT_ARG_CONSTRAINT norx - # else - # define STAP_SDT_ARG_CONSTRAINT nor diff --git a/SPECS/systemtap.spec b/SPECS/systemtap.spec index 8c5f4a8..e63747e 100644 --- a/SPECS/systemtap.spec +++ b/SPECS/systemtap.spec @@ -88,9 +88,37 @@ # To avoid testsuite/*/*.stp has shebang which doesn't start with '/' %define __brp_mangle_shebangs_exclude_from .stp$ +%define _systemtap_runtime_preinstall \ +# See systemd-sysusers(8) sysusers.d(5)\ +\ +g stapusr 156\ +g stapsys 157\ +g stapdev 158 + +%define _systemtap_server_preinstall \ +# See systemd-sysusers(8) sysusers.d(5)\ +\ +g stap-server -\ +u stap-server - "systemtap compiler server" /var/lib/stap-server /sbin/nologin\ +m stap-server stap-server + + +%define _systemtap_testsuite_preinstall \ +# See systemd-sysusers(8) sysusers.d(5)\ +\ +u stapusr - "systemtap testsuite user" / /sbin/nologin\ +u stapsys - "systemtap testsuite user" / /sbin/nologin\ +u stapdev - "systemtap testsuite user" / /sbin/nologin\ +m stapusr stapusr\ +m stapsys stapusr\ +m stapsys stapsys\ +m stapdev stapusr\ +m stapdev stapdev + + Name: systemtap -Version: 4.6 -Release: 4%{?release_override}%{?dist} +Version: 4.7 +Release: 1%{?release_override}%{?dist} # for version, see also configure.ac @@ -126,8 +154,6 @@ License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz -Patch1: sdt-asm-glibc.patch - # Build* BuildRequires: make BuildRequires: gcc-c++ @@ -547,7 +573,6 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %prep %setup -q -%patch1 -p1 %build @@ -659,9 +684,10 @@ for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do done %if %{with_sysusers} -install -p -D -m 0644 systemtap-runtime.sysusers %{buildroot}%{_sysusersdir}/systemtap-runtime.conf -install -p -D -m 0644 systemtap-server.sysusers %{buildroot}%{_sysusersdir}/systemtap-server.conf -install -p -D -m 0644 systemtap-testsuite.sysusers %{buildroot}%{_sysusersdir}/systemtap-testsuite.conf +mkdir -p %{buildroot}%{_sysusersdir} +echo '%_systemtap_runtime_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-runtime.conf +echo '%_systemtap_server_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-server.conf +echo '%_systemtap_testsuite_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-testsuite.conf %endif @@ -714,6 +740,9 @@ install -m 644 initscript/logrotate.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/lo %if %{with_systemd} mkdir -p $RPM_BUILD_ROOT%{_unitdir} touch $RPM_BUILD_ROOT%{_unitdir}/systemtap.service +# RHBZ2070857 +mkdir -p $RPM_BUILD_ROOT%{_presetdir} +echo 'enable systemtap.service' > $RPM_BUILD_ROOT%{_presetdir}/42-systemtap.preset install -m 644 initscript/systemtap.service $RPM_BUILD_ROOT%{_unitdir}/systemtap.service mkdir -p $RPM_BUILD_ROOT%{_sbindir} install -m 755 initscript/systemtap $RPM_BUILD_ROOT%{_sbindir}/systemtap-service @@ -789,7 +818,7 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch %pre runtime %if %{with_sysusers} -%sysusers_create_compat $RPM_BUILD_ROOT/systemtap-runtime.sysusers +echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-runtime.conf - %else getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys @@ -799,7 +828,7 @@ exit 0 %pre server %if %{with_sysusers} -%sysusers_create_compat $RPM_BUILD_ROOT/systemtap-server.sysusers +echo '%_systemtap_server_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-server.conf - %else getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server getent passwd stap-server >/dev/null || \ @@ -810,7 +839,7 @@ exit 0 %pre testsuite %if %{with_sysusers} -%sysusers_create_compat $RPM_BUILD_ROOT/systemtap-testsuite.sysusers +echo '%_systemtap_testsuite_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-testsuite.conf - %else getent passwd stapusr >/dev/null || \ useradd -c "Systemtap 'stapusr' User" -g stapusr -r -s /sbin/nologin stapusr @@ -895,7 +924,8 @@ exit 0 %post initscript %if %{with_systemd} - /bin/systemctl enable systemtap.service >/dev/null 2>&1 || : + # RHBZ2070857 - use systemd presets instead + # /bin/systemctl enable systemtap.service >/dev/null 2>&1 || : %else /sbin/chkconfig --add systemtap %endif @@ -1048,6 +1078,7 @@ exit 0 %files devel -f systemtap.lang %{_bindir}/stap %{_bindir}/stap-prep +%{_bindir}/stap-profile-annotate %{_bindir}/stap-report %dir %{_datadir}/systemtap %{_datadir}/systemtap/runtime @@ -1148,6 +1179,7 @@ exit 0 %files initscript %if %{with_systemd} +%{_presetdir}/42-systemtap.preset %{_unitdir}/systemtap.service %{_sbindir}/systemtap-service %else @@ -1243,6 +1275,10 @@ exit 0 # PRERELEASE %changelog +* Mon May 02 2022 Stan Cox - 4.7-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases + * Tue Dec 07 2021 Stan Cox - 4.6.4 - sys/sdt.h remove aarch64 and s390 float constraints