diff --git a/dist b/dist new file mode 100644 index 0000000000000000000000000000000000000000..9c0e36ec42a2d9bfefacb21ac6354c9ddd910533 --- /dev/null +++ b/dist @@ -0,0 +1 @@ +an8 diff --git a/download b/download index 36e891ceae15eeae38f5099ad2661fc8354091f6..5a03db706085d10823408b95327a4f8a3f92a4b6 100644 --- a/download +++ b/download @@ -1 +1 @@ -beef7d84c5142f36c5591c3b67e95fbc systemtap-4.6.tar.gz +e9dd34e8f8b0ffa55663c58269524db7 systemtap-4.7.tar.gz diff --git a/sdt-asm-glibc.patch b/sdt-asm-glibc.patch deleted file mode 100644 index 0aa9261dcd058a45c062221811b531ea7a477de1..0000000000000000000000000000000000000000 --- a/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/systemtap.spec b/systemtap.spec index 4066e1b986944cfd4c30d78023d3e93263ff9d28..76e06473cca2bce247b6ff3b128afb1b40faa22b 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -89,9 +89,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 @@ -127,7 +155,6 @@ License: GPLv2+ URL: http://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz -Patch1: sdt-asm-glibc.patch Patch10: 0001-add-loongarch-support-for-systemtap.patch # Build* @@ -549,7 +576,6 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %prep %setup -q -%patch1 -p1 %patch10 -p1 %build @@ -662,9 +688,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 @@ -717,6 +744,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 @@ -792,7 +822,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 @@ -802,7 +832,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 || \ @@ -813,7 +843,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 @@ -898,7 +928,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 @@ -1051,6 +1082,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 @@ -1151,6 +1183,7 @@ exit 0 %files initscript %if %{with_systemd} +%{_presetdir}/42-systemtap.preset %{_unitdir}/systemtap.service %{_sbindir}/systemtap-service %else @@ -1246,9 +1279,13 @@ exit 0 # PRERELEASE %changelog -* Thu Jun 30 2022 WenlongZhang - 4.6.4.0.1 +* Tue Dec 13 2022 WenlongZhang - 4.7-1.0.1 - add loongarch support for systemtap +* 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