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 72f03c7..27a200c 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,19 +2,19 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 5%{?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 -Patch4: onetbb.patch +Patch2: onetbb.patch +# Support cmake 3.27 - https://github.com/dyninst/dyninst/pull/1438 +Patch3: dyninst-cmake3.27.patch %global dyninst_base dyninst-%{version} %global testsuite_base testsuite-%{__testsuite_version} @@ -83,16 +83,9 @@ 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 -%patch4 -p1 +%patch -P1 -p1 -b .dwerr +%patch -P2 -p1 -b .onetbb +%patch -P3 -p1 -b .cmake3.27 popd # cotire seems to cause non-deterministic gcc errors @@ -195,6 +188,11 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog + +* Tue Jul 04 2023 Orion Poplawski - 12.3.0-1 +- Update to 12.3.0 +- Add patch for cmake 3.27 support + * Tue Jun 27 2023 Jonathan Wakely - 12.2.0-5 - Patch for oneTBB (#2036372) diff --git a/onetbb.patch b/onetbb.patch index 87b72d0..98eae26 100644 --- a/onetbb.patch +++ b/onetbb.patch @@ -10,80 +10,3 @@ 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 { 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