From 6f56eaefa416d3f6f8c0ef161652dcbf5a046738 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Tue, 4 Oct 2022 09:56:25 -0400 Subject: [PATCH 01/32] Update to 12.2.0 --- .gitignore | 2 ++ dyninst.spec | 13 ++++++------- sources | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index dd0cfcc..c757da9 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ /testsuite-12.0.0.tar.gz /dyninst-12.1.0.tar.gz /testsuite-12.1.0.tar.gz +/dyninst-12.2.0.tar.gz +/testsuite-12.2.0.tar.gz diff --git a/dyninst.spec b/dyninst.spec index 6502f06..17cf796 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,12 +2,12 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 4%{?dist} +Release: 1%{?dist} URL: http://www.dyninst.org -Version: 12.1.0 +Version: 12.2.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 -%define __testsuite_version 12.1.0 +%define __testsuite_version 12.2.0 Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}.tar.gz Source1: https://github.com/dyninst/testsuite/archive/%{__testsuite_version}/testsuite-%{__testsuite_version}.tar.gz @@ -137,10 +137,6 @@ cd ../%{testsuite_base} cd %{dyninst_base} %cmake_install -# It doesn't install docs the way we want, so remove them. -# We'll just grab the pdfs later, directly from the build dir. -rm -v %{buildroot}%{_docdir}/*-%{version}.pdf - cd ../%{testsuite_base} %cmake_install @@ -192,6 +188,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Tue Oct 4 2022 William Cohen - 12.2.0-1 +- Update to 12.2.0 + * Wed Aug 03 2022 Stan Cox - 12.1.0-4 - Explicitly include time.h as no longer pulls it in diff --git a/sources b/sources index bc3a810..48d6b2a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dyninst-12.1.0.tar.gz) = ec09b83f288afefd6a30a3253c91554d421305a43c2f2384435207dcabf523d5498d64873f876817c3108c3fc0a43fd4c48ce2c1ca873c73fb98a2d823446549 -SHA512 (testsuite-12.1.0.tar.gz) = 884a33c5b912249166acc0c52bd0ab02b578dcea2a24fbfa2abc7887b6a9c4f3a113934b96079653d60d9dba34c8870eff7d08388c906111a024ec92e629798a +SHA512 (dyninst-12.2.0.tar.gz) = 3c29b77bd2213c58ec0ccb04a8cc70314b66924a151f29b30de14d171cf5d61b53a323d97456e51687d02e6c6095bb8b0e6eab103a75f150507c4eb8657f258c +SHA512 (testsuite-12.2.0.tar.gz) = 4510de4413989a558697c3cf7dbd742d2ccc2c31603f04ed87dc4d7d90908ba99a6993e1a84f820caadbbf46f190ce85c99bbb1030a1fac7022a662f8439bed5 From 7ff5c1b1b5cdfd096dbbdb3eb23fb63652039f37 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 01:58:54 +0000 Subject: [PATCH 02/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 17cf796..1f8937c 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.dyninst.org Version: 12.2.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -188,6 +188,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 12.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Oct 4 2022 William Cohen - 12.2.0-1 - Update to 12.2.0 From 511a74a18bb3be1f7727ce517ed72fe09153a991 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 20 Feb 2023 21:53:20 +0000 Subject: [PATCH 03/32] Rebuilt for Boost 1.81 --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 1f8937c..b03feaa 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.dyninst.org Version: 12.2.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -188,6 +188,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Mon Feb 20 2023 Jonathan Wakely - 12.2.0-3 +- Rebuilt for Boost 1.81 + * Thu Jan 19 2023 Fedora Release Engineering - 12.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 765f4348303edadb9566cef340e8e817add66836 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Feb 2023 15:26:31 -0500 Subject: [PATCH 04/32] rhbz2173030 --- dyninst.spec | 10 +++++++- rhbz2173030.patch | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 rhbz2173030.patch diff --git a/dyninst.spec b/dyninst.spec index b03feaa..fc24e7f 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.dyninst.org Version: 12.2.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -13,6 +13,7 @@ Source1: https://github.com/dyninst/testsuite/archive/%{__testsuite_version}/tes Patch1: dwarf-error.patch Patch2: cmdline.patch +Patch3: rhbz2173030.patch %global dyninst_base dyninst-%{version} %global testsuite_base testsuite-%{__testsuite_version} @@ -88,6 +89,10 @@ pushd %{testsuite_base} %patch2 -p1 -b .cmdline popd +pushd %{dyninst_base} +%patch3 -p1 +popd + # cotire seems to cause non-deterministic gcc errors # https://bugzilla.redhat.com/show_bug.cgi?id=1420551 sed -i.cotire -e 's/USE_COTIRE true/USE_COTIRE false/' \ @@ -188,6 +193,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Thu Feb 23 2023 Frank Ch. Eigler - 12.2.0-4 +- rhbz2173030: ftbfs with gcc 13 + * Mon Feb 20 2023 Jonathan Wakely - 12.2.0-3 - Rebuilt for Boost 1.81 diff --git a/rhbz2173030.patch b/rhbz2173030.patch new file mode 100644 index 0000000..2a165e9 --- /dev/null +++ b/rhbz2173030.patch @@ -0,0 +1,62 @@ +commit 358db4610e4919690d928797713bef3cf67ef61d +gpg: Signature made Wed 22 Feb 2023 10:51:01 AM EST +gpg: using RSA key 4AEE18F83AFDEB23 +gpg: Good signature from "GitHub (web-flow commit signing) " [full] +Author: kupsch +Date: Wed Feb 22 09:51:01 2023 -0600 + + explicitly include (#1384) + + - std::array is used in this file, but not included explicitly as + on many systems this header is implicitly included recursively + via another included file. On new versions of headers this may + no longer be the case, so explicitly include it. + +diff --git a/instructionAPI/src/InstructionDecoder-aarch64.h b/instructionAPI/src/InstructionDecoder-aarch64.h +index 7994d0b1cc81..ae516232a68b 100644 +--- a/instructionAPI/src/InstructionDecoder-aarch64.h ++++ b/instructionAPI/src/InstructionDecoder-aarch64.h +@@ -28,6 +28,7 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include + #include "InstructionDecoderImpl.h" + #include + #include "Immediate.h" + +commit 0cd2b8b7858f48cd60e070010bb6600a1f44180e +gpg: Signature made Wed 22 Feb 2023 04:03:20 PM EST +gpg: using RSA key 4AEE18F83AFDEB23 +gpg: Good signature from "GitHub (web-flow commit signing) " [full] +Author: Tim Haines +Date: Wed Feb 22 15:03:20 2023 -0600 + + Add missing includes (#1385) + + These were showing up on ufront@rice. + +diff --git a/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C b/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C +index e852f47437a1..f62b1f5463e8 100644 +--- a/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C ++++ b/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C +@@ -30,6 +30,7 @@ + + #include "Ternary.h" + #include "InstructionDecoder-amdgpu-cdna2.h" ++#include + + namespace Dyninst { + namespace InstructionAPI { +diff --git a/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C b/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C +index 449255ae00b4..3093ece41002 100644 +--- a/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C ++++ b/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C +@@ -30,6 +30,7 @@ + + #include "Ternary.h" + #include "InstructionDecoder-amdgpu-vega.h" ++#include + + namespace Dyninst { + namespace InstructionAPI { From df818674e3bb6e08872b83471069bfc7a18beb30 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Feb 2023 15:53:39 -0500 Subject: [PATCH 05/32] rhbz2173030 cont'd - backport dyninst upstream commits 0cd2b8b7858 358db4610e49 2e3bf92eedf575 --- rhbz2173030.patch | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rhbz2173030.patch b/rhbz2173030.patch index 2a165e9..d04b67e 100644 --- a/rhbz2173030.patch +++ b/rhbz2173030.patch @@ -60,3 +60,29 @@ index 449255ae00b4..3093ece41002 100644 namespace Dyninst { namespace InstructionAPI { +commit 2e3bf92eedf575c780e4381ae810a050ee404f03 +gpg: Signature made Thu 05 Jan 2023 02:13:14 PM EST +gpg: using RSA key 4AEE18F83AFDEB23 +gpg: Good signature from "GitHub (web-flow commit signing) " [full] +Author: kupsch +Date: Thu Jan 5 13:13:14 2023 -0600 + + add missing include file (#1344) + + - add missing #include + + On more platforms and library combinations is included via + some other header, but there is combination where this is not true + +diff --git a/dataflowAPI/src/AbslocInterface.C b/dataflowAPI/src/AbslocInterface.C +index 9d7ad000c2b6..582e64004967 100644 +--- a/dataflowAPI/src/AbslocInterface.C ++++ b/dataflowAPI/src/AbslocInterface.C +@@ -29,6 +29,7 @@ + */ + + ++#include + #include "Absloc.h" + #include "AbslocInterface.h" + From 05e041c92007b29f0f22af4aa3cf2a73c3bc4567 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 9 Jun 2023 20:11:41 -0600 Subject: [PATCH 06/32] Update to 12.3.0 Add patch for cmake 3.27 support --- .gitignore | 2 + cmdline.patch | 12 ------ dyninst-cmake3.27.patch | 11 ++++++ dyninst.spec | 27 ++++++------- rhbz2173030.patch | 88 ----------------------------------------- sources | 4 +- 6 files changed, 27 insertions(+), 117 deletions(-) delete mode 100644 cmdline.patch create mode 100644 dyninst-cmake3.27.patch delete mode 100644 rhbz2173030.patch diff --git a/.gitignore b/.gitignore index c757da9..9423139 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,5 @@ /testsuite-12.1.0.tar.gz /dyninst-12.2.0.tar.gz /testsuite-12.2.0.tar.gz +/dyninst-12.3.0.tar.gz +/testsuite-12.3.0.tar.gz diff --git a/cmdline.patch b/cmdline.patch deleted file mode 100644 index 5286c2a..0000000 --- a/cmdline.patch +++ /dev/null @@ -1,12 +0,0 @@ -# c++/12/bits/basic_string.h in libstdc++-devel-12.1.1-3 no longer includes -# atomicity.h includes gthr -> gthr-default -> pthread .h -> time.h -> struct-tm.h -# so explicitly include time.h - ---- testsuite-12.1.0/src/CmdLine.C -+++ testsuite-12.1.0/src/CmdLine.C -@@ -38,5 +38,3 @@ - --#if defined(os_windows_test) - #include --#endif - diff --git a/dyninst-cmake3.27.patch b/dyninst-cmake3.27.patch new file mode 100644 index 0000000..c9da62a --- /dev/null +++ b/dyninst-cmake3.27.patch @@ -0,0 +1,11 @@ +diff -up dyninst-12.3.0/cmake/warnings.cmake.cmake3.27 dyninst-12.3.0/cmake/warnings.cmake +--- dyninst-12.3.0/cmake/warnings.cmake.cmake3.27 2023-02-22 14:39:56.000000000 -0700 ++++ dyninst-12.3.0/cmake/warnings.cmake 2023-06-09 19:59:32.831350952 -0600 +@@ -127,6 +127,7 @@ endif() + + if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang)$") + include(CheckCXXCompilerFlag) ++ include(CheckCXXSourceCompiles) + foreach(f IN LISTS REQUESTED_WARNING_FLAGS) + string(REGEX REPLACE "[^a-zA-Z0-9]" "_" v "HAS_CPP_FLAG_${f}") + set(CMAKE_REQUIRED_FLAGS "-${f}") diff --git a/dyninst.spec b/dyninst.spec index fc24e7f..b9d8e29 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,18 +2,18 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 4%{?dist} +Release: 1%{?dist} URL: http://www.dyninst.org -Version: 12.2.0 +Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 -%define __testsuite_version 12.2.0 +%define __testsuite_version 12.3.0 Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}.tar.gz -Source1: https://github.com/dyninst/testsuite/archive/%{__testsuite_version}/testsuite-%{__testsuite_version}.tar.gz +Source1: https://github.com/dyninst/testsuite/archive/v%{__testsuite_version}/testsuite-%{__testsuite_version}.tar.gz Patch1: dwarf-error.patch -Patch2: cmdline.patch -Patch3: rhbz2173030.patch +# Support cmake 3.27 - https://github.com/dyninst/dyninst/pull/1438 +Patch2: dyninst-cmake3.27.patch %global dyninst_base dyninst-%{version} %global testsuite_base testsuite-%{__testsuite_version} @@ -82,15 +82,8 @@ making sure that dyninst works properly. %setup -q -T -D -a 1 pushd %{dyninst_base} -%patch1 -p1 -b .dwerr -popd - -pushd %{testsuite_base} -%patch2 -p1 -b .cmdline -popd - -pushd %{dyninst_base} -%patch3 -p1 +%patch -P1 -p1 -b .dwerr +%patch -P2 -p1 -b .cmake3.27 popd # cotire seems to cause non-deterministic gcc errors @@ -193,6 +186,10 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Sat Jun 10 2023 Orion Poplawski - 12.3.0-1 +- Update to 12.3.0 +- Add patch for cmake 3.27 support + * Thu Feb 23 2023 Frank Ch. Eigler - 12.2.0-4 - rhbz2173030: ftbfs with gcc 13 diff --git a/rhbz2173030.patch b/rhbz2173030.patch deleted file mode 100644 index d04b67e..0000000 --- a/rhbz2173030.patch +++ /dev/null @@ -1,88 +0,0 @@ -commit 358db4610e4919690d928797713bef3cf67ef61d -gpg: Signature made Wed 22 Feb 2023 10:51:01 AM EST -gpg: using RSA key 4AEE18F83AFDEB23 -gpg: Good signature from "GitHub (web-flow commit signing) " [full] -Author: kupsch -Date: Wed Feb 22 09:51:01 2023 -0600 - - explicitly include (#1384) - - - std::array is used in this file, but not included explicitly as - on many systems this header is implicitly included recursively - via another included file. On new versions of headers this may - no longer be the case, so explicitly include it. - -diff --git a/instructionAPI/src/InstructionDecoder-aarch64.h b/instructionAPI/src/InstructionDecoder-aarch64.h -index 7994d0b1cc81..ae516232a68b 100644 ---- a/instructionAPI/src/InstructionDecoder-aarch64.h -+++ b/instructionAPI/src/InstructionDecoder-aarch64.h -@@ -28,6 +28,7 @@ - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -+#include - #include "InstructionDecoderImpl.h" - #include - #include "Immediate.h" - -commit 0cd2b8b7858f48cd60e070010bb6600a1f44180e -gpg: Signature made Wed 22 Feb 2023 04:03:20 PM EST -gpg: using RSA key 4AEE18F83AFDEB23 -gpg: Good signature from "GitHub (web-flow commit signing) " [full] -Author: Tim Haines -Date: Wed Feb 22 15:03:20 2023 -0600 - - Add missing includes (#1385) - - These were showing up on ufront@rice. - -diff --git a/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C b/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C -index e852f47437a1..f62b1f5463e8 100644 ---- a/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C -+++ b/instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C -@@ -30,6 +30,7 @@ - - #include "Ternary.h" - #include "InstructionDecoder-amdgpu-cdna2.h" -+#include - - namespace Dyninst { - namespace InstructionAPI { -diff --git a/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C b/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C -index 449255ae00b4..3093ece41002 100644 ---- a/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C -+++ b/instructionAPI/src/AMDGPU/vega/InstructionDecoder-amdgpu-vega.C -@@ -30,6 +30,7 @@ - - #include "Ternary.h" - #include "InstructionDecoder-amdgpu-vega.h" -+#include - - namespace Dyninst { - namespace InstructionAPI { -commit 2e3bf92eedf575c780e4381ae810a050ee404f03 -gpg: Signature made Thu 05 Jan 2023 02:13:14 PM EST -gpg: using RSA key 4AEE18F83AFDEB23 -gpg: Good signature from "GitHub (web-flow commit signing) " [full] -Author: kupsch -Date: Thu Jan 5 13:13:14 2023 -0600 - - add missing include file (#1344) - - - add missing #include - - On more platforms and library combinations is included via - some other header, but there is combination where this is not true - -diff --git a/dataflowAPI/src/AbslocInterface.C b/dataflowAPI/src/AbslocInterface.C -index 9d7ad000c2b6..582e64004967 100644 ---- a/dataflowAPI/src/AbslocInterface.C -+++ b/dataflowAPI/src/AbslocInterface.C -@@ -29,6 +29,7 @@ - */ - - -+#include - #include "Absloc.h" - #include "AbslocInterface.h" - diff --git a/sources b/sources index 48d6b2a..eb53865 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dyninst-12.2.0.tar.gz) = 3c29b77bd2213c58ec0ccb04a8cc70314b66924a151f29b30de14d171cf5d61b53a323d97456e51687d02e6c6095bb8b0e6eab103a75f150507c4eb8657f258c -SHA512 (testsuite-12.2.0.tar.gz) = 4510de4413989a558697c3cf7dbd742d2ccc2c31603f04ed87dc4d7d90908ba99a6993e1a84f820caadbbf46f190ce85c99bbb1030a1fac7022a662f8439bed5 +SHA512 (dyninst-12.3.0.tar.gz) = 894980c2ce0701c0544877e841e2933a59963eb49ff9b8cde17f67e300d618b77e9fc95f60301a4b8ecaee729010fbab3ec78ef6e2c2fcea118c56d26cb1c3ce +SHA512 (testsuite-12.3.0.tar.gz) = c8d09395cc37ac1ebbd73049e365b703d1fc904d84b73c7749809d8f9dc36ce0b3b842a2fa9e28ba6ffda4e6d2aeb4ca70c2265d3cacc199db3d10c26a12df33 From afaa35c98c4a6c46cd3970ebda7843002ba2b5f1 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 27 Jun 2023 22:37:31 +0100 Subject: [PATCH 07/32] Patch for oneTBB (#2036372) Update FindTBB.cmake to look in the new version.h header. Fix the incorrect allocator used with tbb::concurrent_hash_map. Define a tbb_hash_compare specialization for std::pair to cope with the deprecated tbb_hasher function being removed. Adjust tbb_hash_compare specialization to account for TBB 2021.x defining it in a different namespace. --- dyninst.spec | 7 ++++- onetbb.patch | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 onetbb.patch diff --git a/dyninst.spec b/dyninst.spec index fc24e7f..72f03c7 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 4%{?dist} +Release: 5%{?dist} URL: http://www.dyninst.org Version: 12.2.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -14,6 +14,7 @@ Source1: https://github.com/dyninst/testsuite/archive/%{__testsuite_version}/tes Patch1: dwarf-error.patch Patch2: cmdline.patch Patch3: rhbz2173030.patch +Patch4: onetbb.patch %global dyninst_base dyninst-%{version} %global testsuite_base testsuite-%{__testsuite_version} @@ -91,6 +92,7 @@ popd pushd %{dyninst_base} %patch3 -p1 +%patch4 -p1 popd # cotire seems to cause non-deterministic gcc errors @@ -193,6 +195,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Tue Jun 27 2023 Jonathan Wakely - 12.2.0-5 +- Patch for oneTBB (#2036372) + * Thu Feb 23 2023 Frank Ch. Eigler - 12.2.0-4 - rhbz2173030: ftbfs with gcc 13 diff --git a/onetbb.patch b/onetbb.patch new file mode 100644 index 0000000..87b72d0 --- /dev/null +++ b/onetbb.patch @@ -0,0 +1,89 @@ +--- dyninst-12.2.0/cmake/Modules/FindTBB.cmake~ 2023-06-27 22:52:25.396598265 +0100 ++++ dyninst-12.2.0/cmake/Modules/FindTBB.cmake 2023-06-27 22:52:27.776601825 +0100 +@@ -154,7 +154,8 @@ + if(TBB_INCLUDE_DIRS) + # Starting in 2020.1.1, tbb_stddef.h is replaced by version.h + set(_version_files "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" +- "${TBB_INCLUDE_DIRS}/tbb/version.h") ++ "${TBB_INCLUDE_DIRS}/tbb/version.h" ++ "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h") + foreach(f IN ITEMS ${_version_files}) + if(EXISTS ${f}) + set(_version_file ${f}) +--- dyninst-12.2.0/common/h/concurrent.h~ 2023-06-27 23:31:35.971166585 +0100 ++++ dyninst-12.2.0/common/h/concurrent.h 2023-06-27 23:32:31.889253848 +0100 +@@ -41,6 +41,22 @@ + #include + #include + ++#if __has_include() ++#include ++#if TBB_INTERFACE_VERSION_MAJOR >= 12 ++// oneTBB version of tbb_hash_compare doesn't work for std::pair. ++template ++struct tbb::tbb_hash_compare> { ++ static size_t hash(const std::pair& p) { ++ return tbb_hash_compare().hash(p.first) ^ tbb_hash_compare().hash(p.second); ++ } ++ static bool equal(const std::pair& p1, const std::pair& p2) { ++ return p1 == p2; ++ } ++}; ++#endif ++#endif ++ + namespace Dyninst { + + namespace dyn_c_annotations { +@@ -54,10 +70,10 @@ + + template + class dyn_c_hash_map : protected tbb::concurrent_hash_map, std::allocator>> { ++ tbb::tbb_hash_compare, std::allocator>> { + + typedef tbb::concurrent_hash_map, std::allocator>> base; ++ tbb::tbb_hash_compare, std::allocator>> base; + public: + using typename base::value_type; + using typename base::mapped_type; +--- dyninst-12.2.0/symtabAPI/src/dwarfWalker.h~ 2023-06-27 23:49:03.290956830 +0100 ++++ dyninst-12.2.0/symtabAPI/src/dwarfWalker.h 2023-06-28 09:12:36.672398326 +0100 +@@ -35,22 +35,20 @@ + } + } + +-namespace tbb { +- using namespace Dyninst::SymtabAPI; +- template<> +- struct tbb_hash_compare { +- static size_t hash(const type_key& k) { +- size_t seed = 0; +- boost::hash_combine(seed, k.off); +- boost::hash_combine(seed, k.file); +- boost::hash_combine(seed, static_cast(k.m)); +- return seed; +- } +- static bool equal(const type_key& k1, const type_key& k2) { +- return (k1.off==k2.off && k1.file==k2.file && k1.m==k2.m); +- } +- }; +-} ++template<> ++struct tbb::tbb_hash_compare { ++ using type_key = Dyninst::SymtabAPI::type_key; ++ static size_t hash(const type_key& k) { ++ size_t seed = 0; ++ boost::hash_combine(seed, k.off); ++ boost::hash_combine(seed, k.file); ++ boost::hash_combine(seed, static_cast(k.m)); ++ return seed; ++ } ++ static bool equal(const type_key& k1, const type_key& k2) { ++ return (k1.off==k2.off && k1.file==k2.file && k1.m==k2.m); ++ } ++}; + + namespace Dyninst { + namespace SymtabAPI { From 3c9bcecebd997359364c74769219d1d33d0a1e73 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 4 Jul 2023 17:23:52 -0400 Subject: [PATCH 08/32] dyninst.spec: approximate SPDX License tag migration --- dyninst.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 27a200c..34f1c47 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -1,5 +1,5 @@ Summary: An API for Run-time Code Generation -License: LGPLv2+ +License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries Release: 1%{?dist} @@ -56,6 +56,7 @@ Summary: Documentation for using the Dyninst API Group: Documentation %description doc dyninst-doc contains API documentation for the Dyninst libraries. +License: LGPL-2.1-or-later %package devel Summary: Header files for compiling programs with Dyninst @@ -63,6 +64,8 @@ Group: Development/System Requires: dyninst = %{version}-%{release} Requires: boost-devel Requires: tbb-devel +License: LGPL-2.1-or-later AND BSD-3-Clause AND MIT +# FindTBB.cmake: presumed MIT, removed in next version of dyninst %description devel dyninst-devel includes the C header files that specify the Dyninst user-space @@ -74,6 +77,9 @@ Summary: Programs for testing Dyninst Group: Development/System Requires: dyninst = %{version}-%{release} Requires: dyninst-devel = %{version}-%{release} +License: BSD-3-Clause AND LGPL-2.1-or-later + + %description testsuite dyninst-testsuite includes the test harness and target programs for making sure that dyninst works properly. @@ -189,6 +195,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %changelog +* Tue Jul 04 2023 Frank Ch. Eigler - 12.3.0-1 +- migrated to SPDX license + * Tue Jul 04 2023 Orion Poplawski - 12.3.0-1 - Update to 12.3.0 - Add patch for cmake 3.27 support From 8c06128c9fc4d16c99875afe8065c4dd3be3ab69 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Tue, 11 Jul 2023 19:29:04 -0400 Subject: [PATCH 09/32] release bump --- dyninst.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 34f1c47..bb17289 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,8 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Tue Jul 11 2023 Frank Ch. Eigler - 12.3.0-2 +- side-tag respin * Tue Jul 04 2023 Frank Ch. Eigler - 12.3.0-1 - migrated to SPDX license From 6fd60358419e515017a1e6b2dfdcd3041812e210 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 18:05:53 +0000 Subject: [PATCH 10/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index bb17289..ad70d78 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 12.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 11 2023 Frank Ch. Eigler - 12.3.0-2 - side-tag respin From b958d1d861d1bc2b479b4e79bf1533fb434d006f Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 17 Jan 2024 22:41:15 +0000 Subject: [PATCH 11/32] Rebuilt for Boost 1.83 --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index ad70d78..524b0d9 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Wed Jan 17 2024 Jonathan Wakely - 12.3.0-4 +- Rebuilt for Boost 1.83 + * Wed Jul 19 2023 Fedora Release Engineering - 12.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 6b692d8ea31f8b637e36823e61ad97c02381a26d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 19 Jan 2024 00:15:32 +0000 Subject: [PATCH 12/32] Fix CI gating plan Remove obsolete options. --- plans/ci.fmf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plans/ci.fmf b/plans/ci.fmf index 1ad2c12..3fd3ab7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,5 @@ summary: CI Gating Plan discover: how: fmf - directory: tests execute: - how: beakerlib + how: tmt From a4ccd3089072d54448b5a139d616eee3e0c44424 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 17:44:17 +0000 Subject: [PATCH 13/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 524b0d9..4bd6980 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 4%{?dist} +Release: 5%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 12.3.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Jan 17 2024 Jonathan Wakely - 12.3.0-4 - Rebuilt for Boost 1.83 From 7262c855913d1f272497bcadf6fd29e808f44169 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 10:01:19 +0000 Subject: [PATCH 14/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 4bd6980..3982a2d 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 5%{?dist} +Release: 6%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 12.3.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 12.3.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 407d316605b14c888b4c4fa890c2d02766a0b96f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 21:35:55 +0000 Subject: [PATCH 15/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 3982a2d..059aa45 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 6%{?dist} +Release: 7%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 12.3.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jan 24 2024 Fedora Release Engineering - 12.3.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 0139cfdb77c9966cfae91ddaa91c86ebf02fa7d4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 16:29:54 +0000 Subject: [PATCH 16/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 059aa45..0d3ef86 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 7%{?dist} +Release: 8%{?dist} URL: http://www.dyninst.org Version: 12.3.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 @@ -194,6 +194,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jul 17 2024 Fedora Release Engineering - 12.3.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 15cf32d088a98a08df8d1cd3db2dd6390829a3e8 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 14:39:50 -0500 Subject: [PATCH 17/32] rhbz2339725: work around dyninst ftbfs on rawhide - switch to a recent git/master snapshot, after v13.0 - also: eliminating dyninst-testsuite --- .gitignore | 1 + dwarf-error.patch | 11 ----- dyninst-cmake3.27.patch | 11 ----- dyninst.spec | 105 +++++++++++----------------------------- onetbb.patch | 12 ----- sources | 3 +- 6 files changed, 30 insertions(+), 113 deletions(-) delete mode 100644 dwarf-error.patch delete mode 100644 dyninst-cmake3.27.patch delete mode 100644 onetbb.patch diff --git a/.gitignore b/.gitignore index 9423139..1299cc7 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ /testsuite-12.2.0.tar.gz /dyninst-12.3.0.tar.gz /testsuite-12.3.0.tar.gz +/dyninst-13.snap.20250123.g80e1adaf.tar.gz diff --git a/dwarf-error.patch b/dwarf-error.patch deleted file mode 100644 index 9efff30..0000000 --- a/dwarf-error.patch +++ /dev/null @@ -1,11 +0,0 @@ -Remove extraneous error messages of the form: - err message: .debug_loclists section missing - err message: invalid DWARF -which are repeated in some circumstances without adding useful context - ---- dyninst-12.1.0/symtabAPI/src/dwarfWalker.C -+++ dyninst-12.1.0/symtabAPI/src/dwarfWalker.C -@@ -1858,1 +1858,1 @@ -- cerr << "err message: " << dwarf_errmsg(dwarf_errno()) << endl; -+ dwarf_printf("(0x%lx) Error while decoding location: %s\n", id(), dwarf_errmsg(dwarf_errno())); - diff --git a/dyninst-cmake3.27.patch b/dyninst-cmake3.27.patch deleted file mode 100644 index c9da62a..0000000 --- a/dyninst-cmake3.27.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up dyninst-12.3.0/cmake/warnings.cmake.cmake3.27 dyninst-12.3.0/cmake/warnings.cmake ---- dyninst-12.3.0/cmake/warnings.cmake.cmake3.27 2023-02-22 14:39:56.000000000 -0700 -+++ dyninst-12.3.0/cmake/warnings.cmake 2023-06-09 19:59:32.831350952 -0600 -@@ -127,6 +127,7 @@ endif() - - if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang)$") - include(CheckCXXCompilerFlag) -+ include(CheckCXXSourceCompiles) - foreach(f IN LISTS REQUESTED_WARNING_FLAGS) - string(REGEX REPLACE "[^a-zA-Z0-9]" "_" v "HAS_CPP_FLAG_${f}") - set(CMAKE_REQUIRED_FLAGS "-${f}") diff --git a/dyninst.spec b/dyninst.spec index 0d3ef86..2b22752 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,22 +2,15 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 8%{?dist} +Release: 1%{?dist} URL: http://www.dyninst.org -Version: 12.3.0 +Version: 13.snap.20250123.g80e1adaf ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 -%define __testsuite_version 12.3.0 -Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}.tar.gz -Source1: https://github.com/dyninst/testsuite/archive/v%{__testsuite_version}/testsuite-%{__testsuite_version}.tar.gz - -Patch1: dwarf-error.patch -Patch2: onetbb.patch -# Support cmake 3.27 - https://github.com/dyninst/dyninst/pull/1438 -Patch3: dyninst-cmake3.27.patch +Source0: dyninst-13.snap.20250123.g80e1adaf.tar.gz +Patch1: github-pr1880.patch %global dyninst_base dyninst-%{version} -%global testsuite_base testsuite-%{__testsuite_version} BuildRequires: gcc-c++ BuildRequires: elfutils-devel @@ -29,17 +22,11 @@ BuildRequires: cmake BuildRequires: libtirpc-devel BuildRequires: tbb tbb-devel BuildRequires: tex-latex - -# Extra requires just for the testsuite -BuildRequires: gcc-gfortran libxml2-devel BuildRequires: make -# Testsuite files should not provide/require anything -%{?filter_setup: -%filter_provides_in %{_libdir}/dyninst/testsuite/ -%filter_requires_in %{_libdir}/dyninst/testsuite/ -%filter_setup -} +# https://fedoraproject.org/wiki/Changes/Linker_Error_On_Security_Issues +# may impact the RT library +%undefine _hardened_linker_errors %description @@ -72,32 +59,18 @@ dyninst-devel includes the C header files that specify the Dyninst user-space libraries and interfaces. This is required for rebuilding any program that uses Dyninst. -%package testsuite -Summary: Programs for testing Dyninst -Group: Development/System -Requires: dyninst = %{version}-%{release} -Requires: dyninst-devel = %{version}-%{release} -License: BSD-3-Clause AND LGPL-2.1-or-later - - -%description testsuite -dyninst-testsuite includes the test harness and target programs for -making sure that dyninst works properly. - %prep %setup -q -n %{name}-%{version} -c -%setup -q -T -D -a 1 +# %setup -q -T -D -a 1 pushd %{dyninst_base} -%patch -P1 -p1 -b .dwerr -%patch -P2 -p1 -b .onetbb -%patch -P3 -p1 -b .cmake3.27 +%patch -P1 -p1 popd # cotire seems to cause non-deterministic gcc errors # https://bugzilla.redhat.com/show_bug.cgi?id=1420551 -sed -i.cotire -e 's/USE_COTIRE true/USE_COTIRE false/' \ - %{dyninst_base}/cmake/shared.cmake +# sed -i.cotire -e 's/USE_COTIRE true/USE_COTIRE false/' \ +# %{dyninst_base}/cmake/shared.cmake %build @@ -112,50 +85,31 @@ LDFLAGS="$LDFLAGS $RPM_LD_FLAGS" CXXFLAGS="$CFLAGS" export CFLAGS CXXFLAGS LDFLAGS -%cmake \ +%cmake --log-level=DEBUG \ -DENABLE_DEBUGINFOD=1 \ - -DINSTALL_LIB_DIR:PATH=%{_libdir}/dyninst \ - -DINSTALL_INCLUDE_DIR:PATH=%{_includedir}/dyninst \ - -DINSTALL_CMAKE_DIR:PATH=%{_libdir}/cmake/Dyninst \ -DCMAKE_BUILD_TYPE=None \ - -DCMAKE_SKIP_RPATH:BOOL=YES -%cmake_build - -# Hack to install dyninst nearby, so the testsuite can use it -DESTDIR="../install" %__cmake --install "%{__cmake_builddir}" -find ../install -name '*.cmake' -execdir \ - sed -i -e "s!%{_prefix}!$PWD/../install&!" '{}' '+' -# cmake mistakenly looks for libtbb.so in the dyninst install dir -sed -i '/libtbb.so/ s/".*usr/"\/usr/' $PWD/../install%{_libdir}/cmake/Dyninst/commonTargets.cmake - -cd ../%{testsuite_base} -# testsuite build sometimes encounters dependency issues with -jN -%define _smp_mflags -j1 -%cmake \ - -DDyninst_DIR:PATH=$PWD/../install%{_libdir}/cmake/Dyninst \ - -DINSTALL_DIR:PATH=%{_libdir}/dyninst/testsuite \ - -DCMAKE_BUILD_TYPE:STRING=Debug \ - -DCMAKE_SKIP_RPATH:BOOL=YES -%cmake_build + -DCMAKE_SKIP_RPATH:BOOL=YES \ + -DINSTALL_CMAKE_DIR:PATH=/usr/lib64/cmake/Dyninst \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_INSTALL_INCLUDEDIR:PATH=/usr/include/dyninst \ + -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64/dyninst +%cmake_build -v -v -v %install cd %{dyninst_base} -%cmake_install +%cmake_install -v -v -v -cd ../%{testsuite_base} -%cmake_install +# move /usr/lib64//dyninst/cmake/Dyninst to /usr/lib64/cmake/Dyninst +mkdir -p %{buildroot}/%{_libdir}/cmake +mv %{buildroot}/%{_libdir}/dyninst/cmake/Dyninst %{buildroot}/%{_libdir}/cmake/Dyninst + +# this is a testsuite-like binary, not needed in main package +rm -f "%{buildroot}%{_bindir}/parseThat" mkdir -p %{buildroot}/etc/ld.so.conf.d echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf -# Ugly hack to mask testsuite files from debuginfo extraction. Running the -# testsuite requires debuginfo, so extraction is useless. However, debuginfo -# extraction is still nice for the main libraries, so we don't want to disable -# it package-wide. The permissions are restored by attr(755,-,-) in files. -find %{buildroot}%{_libdir}/dyninst/testsuite/ \ - -type f '!' -name '*.a' -execdir chmod 644 '{}' '+' - %post -p /sbin/ldconfig %postun -p /sbin/ldconfig @@ -187,13 +141,10 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %{_libdir}/dyninst/*.so %{_libdir}/cmake/Dyninst -%files testsuite -%{_bindir}/parseThat -%dir %{_libdir}/dyninst/testsuite/ -%attr(755,root,root) %{_libdir}/dyninst/testsuite/*[!a] -%attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a - %changelog +* Thu Jan 23 2025 Frank Ch. Eigler - 13.snap.20250123.g80e1adaf +- Rebuilt for F42 FTBFS with dyninst git snapshot (temporarily). + * Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/onetbb.patch b/onetbb.patch deleted file mode 100644 index 98eae26..0000000 --- a/onetbb.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- dyninst-12.2.0/cmake/Modules/FindTBB.cmake~ 2023-06-27 22:52:25.396598265 +0100 -+++ dyninst-12.2.0/cmake/Modules/FindTBB.cmake 2023-06-27 22:52:27.776601825 +0100 -@@ -154,7 +154,8 @@ - if(TBB_INCLUDE_DIRS) - # Starting in 2020.1.1, tbb_stddef.h is replaced by version.h - set(_version_files "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" -- "${TBB_INCLUDE_DIRS}/tbb/version.h") -+ "${TBB_INCLUDE_DIRS}/tbb/version.h" -+ "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h") - foreach(f IN ITEMS ${_version_files}) - if(EXISTS ${f}) - set(_version_file ${f}) diff --git a/sources b/sources index eb53865..2cf21a7 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (dyninst-12.3.0.tar.gz) = 894980c2ce0701c0544877e841e2933a59963eb49ff9b8cde17f67e300d618b77e9fc95f60301a4b8ecaee729010fbab3ec78ef6e2c2fcea118c56d26cb1c3ce -SHA512 (testsuite-12.3.0.tar.gz) = c8d09395cc37ac1ebbd73049e365b703d1fc904d84b73c7749809d8f9dc36ce0b3b842a2fa9e28ba6ffda4e6d2aeb4ca70c2265d3cacc199db3d10c26a12df33 +SHA512 (dyninst-13.snap.20250123.g80e1adaf.tar.gz) = a4896a72f1934b676a0997b4d7b5bd834b677f131c42e5cebf2670ef02dbfe2b09245c80a183c0faaacb0c79b69cc947e445f2655d7355f6913eea330be809a4 From bd527a689eafb76c9f762a64d25a1aa1c92fff27 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 15:05:18 -0500 Subject: [PATCH 18/32] cont'd --- github-pr1880.patch | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 github-pr1880.patch diff --git a/github-pr1880.patch b/github-pr1880.patch new file mode 100644 index 0000000..c8f8795 --- /dev/null +++ b/github-pr1880.patch @@ -0,0 +1,23 @@ +commit 165402aa1640afb394b11a096b38c6bc3a5bf9d0 (github-fche/patch-1) +gpg: Signature made Wed 22 Jan 2025 03:35:55 PM EST +gpg: using RSA key B5690EEEBB952194 +gpg: Can't check signature: No public key +Author: Frank Ch. Eigler +Date: Wed Jan 22 15:35:55 2025 -0500 + + Update sha1.C: #include + + Subject header is needed on gcc15 to compile sha1.C, supplying declaration of types like uint32_t. + +diff --git a/common/src/sha1.C b/common/src/sha1.C +index 91e9ad291561..d6e76c5727ac 100644 +--- a/common/src/sha1.C ++++ b/common/src/sha1.C +@@ -102,6 +102,7 @@ A million repetitions of "a" + + #include + #include ++#include + + #include "dyntypes.h" + #include "common/src/sha1.h" From 83283f30bb4754aecd38533c9deaa66a9bccbe52 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 15:48:44 -0500 Subject: [PATCH 19/32] exclude i686 --- dyninst.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 2b22752..0db8274 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -5,7 +5,7 @@ Group: Development/Libraries Release: 1%{?dist} URL: http://www.dyninst.org Version: 13.snap.20250123.g80e1adaf -ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 +ExclusiveArch: x86_64 ppc64le aarch64 Source0: dyninst-13.snap.20250123.g80e1adaf.tar.gz Patch1: github-pr1880.patch From a0b8b3efb5883d979e129b5f005ff433ecbafd5f Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 20:59:46 -0500 Subject: [PATCH 20/32] rebase to 13.0.0 + fedora-cmake patch --- .gitignore | 1 + dyninst.spec | 10 ++++----- github-pr1721.patch | 55 +++++++++++++++++++++++++++++++++++++++++++++ sources | 2 +- 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 github-pr1721.patch diff --git a/.gitignore b/.gitignore index 1299cc7..80b3eba 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ /dyninst-12.3.0.tar.gz /testsuite-12.3.0.tar.gz /dyninst-13.snap.20250123.g80e1adaf.tar.gz +/dyninst-13.0.0.tar.gz diff --git a/dyninst.spec b/dyninst.spec index 0db8274..29789d6 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -4,11 +4,11 @@ Name: dyninst Group: Development/Libraries Release: 1%{?dist} URL: http://www.dyninst.org -Version: 13.snap.20250123.g80e1adaf +Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 -Source0: dyninst-13.snap.20250123.g80e1adaf.tar.gz -Patch1: github-pr1880.patch +Source0: dyninst-13.0.0.tar.gz +Patch1: github-pr1721.patch %global dyninst_base dyninst-%{version} @@ -142,8 +142,8 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog -* Thu Jan 23 2025 Frank Ch. Eigler - 13.snap.20250123.g80e1adaf -- Rebuilt for F42 FTBFS with dyninst git snapshot (temporarily). +* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0 +- Rebuilt for F42 FTBFS with 13.0.0 + backported cmake fixes * Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/github-pr1721.patch b/github-pr1721.patch new file mode 100644 index 0000000..3fde0c9 --- /dev/null +++ b/github-pr1721.patch @@ -0,0 +1,55 @@ +commit e70b1001eb5082bb0204b602e3ca1cfccd67fc94 +gpg: Signature made Tue 09 Apr 2024 11:21:17 AM EDT +gpg: using RSA key B5690EEEBB952194 +gpg: Can't check signature: No public key +Author: kupsch +Date: Tue Apr 9 10:21:17 2024 -0500 + + improve cmake install dirs (#1721) + + * Use cmake's GNUInstallDirs to get the lib, bin and include directory + names instead of always using 'lib', 'bin', and 'include'. This + results in two changes to the installation: + + - lib directory becomes 'lib64' on platforms where this is the + convention + + - the lib, bin and include may be overwritten using the cmake + variables CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_LIBDIR and + CMAKE_INSTALL_INCLUDEDIR respectively + + * Update github workflows to handle the lib install dir lib64: + + - use Dyninst_ROOT instead of Dyninst_DIR as it searches for the + directory used + + - for non-cmake uses search for lib* to find either lib or lib64 + +diff --git a/cmake/DyninstLibrarySettings.cmake b/cmake/DyninstLibrarySettings.cmake +index d3627f8789f2..e8cb26b95c39 100644 +--- a/cmake/DyninstLibrarySettings.cmake ++++ b/cmake/DyninstLibrarySettings.cmake +@@ -25,9 +25,10 @@ else() + set(CMAKE_VISIBILITY_INLINES_HIDDEN ON) + endif() + +-set(DYNINST_INSTALL_BINDIR "bin") +-set(DYNINST_INSTALL_LIBDIR "lib") +-set(DYNINST_INSTALL_INCLUDEDIR "include") ++include(GNUInstallDirs) ++set(DYNINST_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}") ++set(DYNINST_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}") ++set(DYNINST_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") + set(DYNINST_INSTALL_CMAKEDIR "${DYNINST_INSTALL_LIBDIR}/cmake/Dyninst") + + # -- Set up the RPATH --- +diff --git a/parseThat/CMakeLists.txt b/parseThat/CMakeLists.txt +index ffe4b7aea29c..d4697a8a1d99 100644 +--- a/parseThat/CMakeLists.txt ++++ b/parseThat/CMakeLists.txt +@@ -29,4 +29,4 @@ target_link_libraries(parseThat PRIVATE dyninstAPI) + target_include_directories(parseThat BEFORE + PRIVATE "$") + +-install(TARGETS parseThat RUNTIME DESTINATION bin) ++install(TARGETS parseThat RUNTIME DESTINATION "${DYNINST_INSTALL_BINDIR}") diff --git a/sources b/sources index 2cf21a7..5cadd84 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dyninst-13.snap.20250123.g80e1adaf.tar.gz) = a4896a72f1934b676a0997b4d7b5bd834b677f131c42e5cebf2670ef02dbfe2b09245c80a183c0faaacb0c79b69cc947e445f2655d7355f6913eea330be809a4 +SHA512 (dyninst-13.0.0.tar.gz) = efa09018c411f6138e6e2cf6510007b29b00ed9e0d643df702303ee0ccb39b1ea1640bba18555f4cb0a7dbab677362c88ffe0eccace62b57860daee9350a4eee From ba863fce9d2c74eb62434739a68a60ef19a81a7d Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 21:12:48 -0500 Subject: [PATCH 21/32] Add PR1880 patch too. --- dyninst.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dyninst.spec b/dyninst.spec index 29789d6..eab8acd 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -9,6 +9,7 @@ ExclusiveArch: x86_64 ppc64le aarch64 Source0: dyninst-13.0.0.tar.gz Patch1: github-pr1721.patch +Patch2: github-pr1880.patch %global dyninst_base dyninst-%{version} @@ -65,6 +66,7 @@ that uses Dyninst. pushd %{dyninst_base} %patch -P1 -p1 +%patch -P2 -p1 popd # cotire seems to cause non-deterministic gcc errors From 1a6e35086a366132e878be8e254a3e996bb0b5d1 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 21:38:27 -0500 Subject: [PATCH 22/32] one more patch --- dyninst.spec | 4 +++- github-pr1880-ish.patch | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 github-pr1880-ish.patch diff --git a/dyninst.spec b/dyninst.spec index eab8acd..3573fdf 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -10,6 +10,7 @@ ExclusiveArch: x86_64 ppc64le aarch64 Source0: dyninst-13.0.0.tar.gz Patch1: github-pr1721.patch Patch2: github-pr1880.patch +Patch3: github-pr1880-ish.patch %global dyninst_base dyninst-%{version} @@ -67,6 +68,7 @@ that uses Dyninst. pushd %{dyninst_base} %patch -P1 -p1 %patch -P2 -p1 +%patch -P3 -p1 popd # cotire seems to cause non-deterministic gcc errors @@ -145,7 +147,7 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %changelog * Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0 -- Rebuilt for F42 FTBFS with 13.0.0 + backported cmake fixes +- Rebuilt for F42 FTBFS with 13.0.0 + backported fixes * Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/github-pr1880-ish.patch b/github-pr1880-ish.patch new file mode 100644 index 0000000..5ad67b8 --- /dev/null +++ b/github-pr1880-ish.patch @@ -0,0 +1,12 @@ +diff --git a/common/h/Annotatable.h b/common/h/Annotatable.h +index 6588e3dd36da..262a193ffbb8 100644 +--- a/common/h/Annotatable.h ++++ b/common/h/Annotatable.h +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + #include "util.h" + #include "compiler_annotations.h" + From 9dde4656ab8cd06e21fefaa06e4034a827b9acba Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 23 Jan 2025 21:51:33 -0500 Subject: [PATCH 23/32] more cstdint --- github-pr1880-ish.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/github-pr1880-ish.patch b/github-pr1880-ish.patch index 5ad67b8..a6cada4 100644 --- a/github-pr1880-ish.patch +++ b/github-pr1880-ish.patch @@ -10,3 +10,15 @@ index 6588e3dd36da..262a193ffbb8 100644 #include "util.h" #include "compiler_annotations.h" +diff --git a/instructionAPI/h/ArchSpecificFormatters.h b/instructionAPI/h/ArchSpecificFormatters.h +index b32d4cc14e03..145c604f9619 100644 +--- a/instructionAPI/h/ArchSpecificFormatters.h ++++ b/instructionAPI/h/ArchSpecificFormatters.h +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include "Architecture.h" + #include "registers/MachRegister.h" + From 05fb71cf62a9e070c7190fa926bddfebeb153aa1 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 24 Jan 2025 14:08:51 -0500 Subject: [PATCH 24/32] add another cstdint --- github-pr1880-ish.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/github-pr1880-ish.patch b/github-pr1880-ish.patch index a6cada4..77e763f 100644 --- a/github-pr1880-ish.patch +++ b/github-pr1880-ish.patch @@ -22,3 +22,15 @@ index b32d4cc14e03..145c604f9619 100644 #include "Architecture.h" #include "registers/MachRegister.h" +diff --git a/common/src/arch-x86.h b/common/src/arch-x86.h +index ecdc3dc13..7745306d3 100644 +--- a/common/src/arch-x86.h ++++ b/common/src/arch-x86.h +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + #include "entryIDs.h" + #include "registers/MachRegister.h" + #include "common/src/ia32_locations.h" From 1e4aa1f8f93a66faf65baa457bded259ff54272a Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 24 Jan 2025 17:20:25 -0500 Subject: [PATCH 25/32] chain-build prep --- dyninst.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dyninst.spec b/dyninst.spec index 3573fdf..176664a 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 1%{?dist} +Release: 2%{?dist} URL: http://www.dyninst.org Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 @@ -146,7 +146,7 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog -* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0 +* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0-2 - Rebuilt for F42 FTBFS with 13.0.0 + backported fixes * Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 From 6600f8b882c1fe31afd58c5f6e98d6713750e1f6 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 24 Jan 2025 18:43:11 -0500 Subject: [PATCH 26/32] try with i686++ --- dyninst.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dyninst.spec b/dyninst.spec index 176664a..202db8c 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,10 +2,10 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.dyninst.org Version: 13.0.0 -ExclusiveArch: x86_64 ppc64le aarch64 +ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 Source0: dyninst-13.0.0.tar.gz Patch1: github-pr1721.patch @@ -146,7 +146,7 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog -* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0-2 +* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0-3 - Rebuilt for F42 FTBFS with 13.0.0 + backported fixes * Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 From e8cdcd672a14ceaf9a12588921cceaa7c4a4c6a9 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Fri, 24 Jan 2025 18:53:01 -0500 Subject: [PATCH 27/32] disable i686 again, ftbfs --- dyninst.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dyninst.spec b/dyninst.spec index 202db8c..44a08f1 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,10 +2,10 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.dyninst.org Version: 13.0.0 -ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 +ExclusiveArch: x86_64 ppc64le aarch64 Source0: dyninst-13.0.0.tar.gz Patch1: github-pr1721.patch @@ -146,8 +146,8 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog -* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0-3 -- Rebuilt for F42 FTBFS with 13.0.0 + backported fixes +* Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0-4 +- Rebuilt for F42 FTBFS with 13.0.0 + backported fixes + sans i686 * Thu Jan 16 2025 Fedora Release Engineering - 12.3.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 75a479c9cc41f00bf632fee3cfae9f5a97a9bd0a Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 6 Feb 2025 08:48:17 -0500 Subject: [PATCH 28/32] Backport https://github.com/dyninst/dyninst/issues/1730 for ctor ordering --- dyninst.spec | 7 +- github-pr1730.patch | 151 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 github-pr1730.patch diff --git a/dyninst.spec b/dyninst.spec index 44a08f1..08619a1 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 4%{?dist} +Release: 5%{?dist} URL: http://www.dyninst.org Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 @@ -11,6 +11,7 @@ Source0: dyninst-13.0.0.tar.gz Patch1: github-pr1721.patch Patch2: github-pr1880.patch Patch3: github-pr1880-ish.patch +Patch4: github-pr1730.patch %global dyninst_base dyninst-%{version} @@ -69,6 +70,7 @@ pushd %{dyninst_base} %patch -P1 -p1 %patch -P2 -p1 %patch -P3 -p1 +%patch -P4 -p1 popd # cotire seems to cause non-deterministic gcc errors @@ -146,6 +148,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog +* Thu Feb 06 2025 Frank Ch. Eigler - 13.0.0-5 +- Backported github PR/1370 for constructor ordering. + * Thu Jan 23 2025 Frank Ch. Eigler - 13.0.0-4 - Rebuilt for F42 FTBFS with 13.0.0 + backported fixes + sans i686 diff --git a/github-pr1730.patch b/github-pr1730.patch new file mode 100644 index 0000000..72c667e --- /dev/null +++ b/github-pr1730.patch @@ -0,0 +1,151 @@ +commit eae798d4e5f938cb85758571dbab9afbbea7b5d2 (HEAD -> v13.0.0) +Author: Frank Ch. Eigler +Date: Thu Feb 6 08:35:33 2025 -0500 + + MachRegister: fix initialization order bug (#1731) + + Backported upstream commit to 13.0.0 base. + + commit a29f32ac87c4483b97a2c5cb9beed5642124ae8f + Author: Tim Haines + Date: Mon Apr 22 15:32:12 2024 -0500 + + MachRegister: fix initialization order bug (#1731) + + This fixes the static initialization ordering issue reported in https://github.com/dyninst/dyninst/issues/1730. + +diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt +index 669659e44c76..b6507772858c 100644 +--- a/common/CMakeLists.txt ++++ b/common/CMakeLists.txt +@@ -39,7 +39,6 @@ set(_public_headers + h/registers/AMDGPU/amdgpu_gfx90a_regs.h + h/registers/AMDGPU/amdgpu_gfx940_regs.h + h/registers/cuda_regs.h +- h/registers/MachRegister.h + h/registers/ppc32_regs.h + h/registers/ppc64_regs.h + h/registers/reg_def.h +@@ -72,12 +71,12 @@ set(_private_headers + src/lprintf.h + src/lru_cache.h + src/MappedFile.h ++ src/registers/MachRegisterCache.h + src/NodeIterator.h + src/ntHeaders.h + src/parseauxv.h + src/pathName.h + src/pool_allocators.h +- src/registers/MachRegister.C + src/sha1.h + src/singleton_object_pool.h + src/stats.h +@@ -111,6 +110,7 @@ set(_sources + src/debug_common.C + src/VariableLocation.C + src/Buffer.C ++ src/registers/MachRegister.C + src/MachSyscall.C) + + if(DYNINST_OS_UNIX) +diff --git a/common/src/dyn_regs.C b/common/src/dyn_regs.C +index 3fcd194a71dd..7951dbe753bc 100644 +--- a/common/src/dyn_regs.C ++++ b/common/src/dyn_regs.C +@@ -28,8 +28,16 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include "registers/MachRegisterCache.h" ++ ++namespace Dyninst { namespace registers { ++ // These are used in MachRegister.C ++ name_cache names; ++}} ++ + //clang-format: off + #define DYN_DEFINE_REGS + #include "dyn_regs.h" + #undef DYN_DEFINE_REGS + //clang-format: on ++ +diff --git a/common/src/registers/MachRegister.C b/common/src/registers/MachRegister.C +index ccd01abc1811..93c020c04415 100644 +--- a/common/src/registers/MachRegister.C ++++ b/common/src/registers/MachRegister.C +@@ -1,4 +1,5 @@ + #include "common/h/registers/MachRegister.h" ++#include "registers/MachRegisterCache.h" + #include "debug_common.h" + #include "dyn_regs.h" + #include "external/rose/amdgpuInstructionEnum.h" +@@ -10,17 +11,24 @@ + #include + + namespace { +- std::unordered_map names; + const std::string invalid_reg_name{""}; + } + ++namespace Dyninst { namespace registers { ++ // These are defined in dyn_regs.C to ensure global constructor initialization ordering ++ extern name_cache names; ++ } ++} ++ ++ + namespace Dyninst { + + MachRegister::MachRegister() : reg(0) {} + + MachRegister::MachRegister(signed int r) : reg(r) {} + +- MachRegister::MachRegister(signed int r, std::string n) : reg(r) { names.emplace(r, std::move(n)); } ++ MachRegister::MachRegister(signed int r, std::string n) : reg(r) { ++ registers::names.emplace(r, std::move(n)); } + + unsigned int MachRegister::regClass() const { return reg & 0x00ff0000; } + +@@ -106,8 +114,8 @@ namespace Dyninst { + bool MachRegister::isValid() const { return (reg != InvalidReg.reg); } + + std::string const& MachRegister::name() const { +- auto iter = names.find(reg); +- if(iter != names.end()) { ++ auto iter = registers::names.find(reg); ++ if(iter != registers::names.end()) { + return iter->second; + } + common_parsing_printf("No MachRegister found with value %x\n", static_cast(reg)); +diff --git a/common/src/dyn_regs.C b/common/src/registers/MachRegisterCache.h +similarity index 80% +copy from common/src/dyn_regs.C +copy to common/src/registers/MachRegisterCache.h +index 3fcd194a71dd..2a74bbde821a 100644 +--- a/common/src/dyn_regs.C ++++ b/common/src/registers/MachRegisterCache.h +@@ -28,8 +28,19 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-//clang-format: off +-#define DYN_DEFINE_REGS +-#include "dyn_regs.h" +-#undef DYN_DEFINE_REGS +-//clang-format: on ++#ifndef DYNINST_COMMON_REGISTERS_MACHREGISTERCACHE_H ++#define DYNINST_COMMON_REGISTERS_MACHREGISTERCACHE_H ++ ++#include "registers/MachRegister.h" ++ ++#include ++#include ++#include ++#include ++ ++namespace Dyninst { namespace registers { ++ typedef std::unordered_map name_cache; ++}} ++ ++ ++#endif From 4d320a0508101d619bcd12444f84628c76d291d6 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Mon, 14 Jul 2025 17:07:51 -0400 Subject: [PATCH 29/32] update .spec to remove deprecated project web site url --- dyninst.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 08619a1..accb871 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -3,7 +3,7 @@ License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND Lic Name: dyninst Group: Development/Libraries Release: 5%{?dist} -URL: http://www.dyninst.org +URL: https://www.paradyn.org Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 From 1aaacf00c0294dfd61b4350f545002c9437ecafe Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 19:38:49 +0000 Subject: [PATCH 30/32] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index accb871..422d402 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 5%{?dist} +Release: 6%{?dist} URL: https://www.paradyn.org Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 @@ -148,6 +148,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 13.0.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu Feb 06 2025 Frank Ch. Eigler - 13.0.0-5 - Backported github PR/1370 for constructor ordering. From 2c3bf3ff72a8f6d9a3971da05d105eff6164cc97 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 20 Aug 2025 13:21:18 -0600 Subject: [PATCH 31/32] Rebuild for tbb 2022.2.0 --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 422d402..774c61c 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 6%{?dist} +Release: 7%{?dist} URL: https://www.paradyn.org Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 @@ -148,6 +148,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog +* Wed Aug 20 2025 Jerry James - 13.0.0-7 +- Rebuild for tbb 2022.2.0 + * Wed Jul 23 2025 Fedora Release Engineering - 13.0.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 238a2d5e5957b07951a8b8c84e3e20a2b5b19bfe Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 12 Jan 2026 17:11:49 +0000 Subject: [PATCH 32/32] Rebuilt for Boost 1.90 --- dyninst.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dyninst.spec b/dyninst.spec index 774c61c..833197a 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPL-2.1-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2 AND LicenseRef-Fedora-Public-Domain AND BSD-3-Clause Name: dyninst Group: Development/Libraries -Release: 7%{?dist} +Release: 8%{?dist} URL: https://www.paradyn.org Version: 13.0.0 ExclusiveArch: x86_64 ppc64le aarch64 @@ -148,6 +148,9 @@ echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf %{_libdir}/cmake/Dyninst %changelog +* Mon Jan 12 2026 Jonathan Wakely - 13.0.0-8 +- Rebuilt for Boost 1.90 + * Wed Aug 20 2025 Jerry James - 13.0.0-7 - Rebuild for tbb 2022.2.0