diff --git a/.gitignore b/.gitignore index cbed005..80b3eba 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,13 @@ /testsuite-11.0.0.tar.gz /dyninst-11.0.1.tar.gz /testsuite-11.0.1.tar.gz +/dyninst-12.0.1.tar.gz +/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 +/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-11.0.1-dwarf.patch b/dyninst-11.0.1-dwarf.patch deleted file mode 100644 index f4b5f70..0000000 --- a/dyninst-11.0.1-dwarf.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-11.0.1/symtabAPI/src/dwarfWalker.C.orig 2021-04-08 16:48:12.000000000 -0400 -+++ dyninst-11.0.1/symtabAPI/src/dwarfWalker.C 2021-04-27 12:48:55.643978425 -0400 -@@ -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-11.0.1-rosebc.patch b/dyninst-11.0.1-rosebc.patch deleted file mode 100644 index 989f4e7..0000000 --- a/dyninst-11.0.1-rosebc.patch +++ /dev/null @@ -1,11 +0,0 @@ -rhbz1973038 - ---- dyninst-11.0.1/dataflowAPI/src/RoseInsnFactory.C.orig 2021-06-09 15:54:21.753883619 -0400 -+++ dyninst-11.0.1/dataflowAPI/src/RoseInsnFactory.C 2021-06-23 14:17:37.854933719 -0400 -@@ -317,5 +317,5 @@ - // It looks like the ROSE semantics code will infer the target from - // the bo field. So, what is passed in as the third operands does not matter -- if(branch_target) { -+ if(branch_target || iapi_opcode == power_op_bc) { - rose_operands->append_operand(new SgAsmDoubleWordValueExpression(branch_target)); - } else if(power_op_bcctr == iapi_opcode) { diff --git a/dyninst.spec b/dyninst.spec index 2ef44c4..833197a 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -1,21 +1,19 @@ 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: 3%{?dist} -URL: http://www.dyninst.org -Version: 11.0.1 -ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 +Release: 8%{?dist} +URL: https://www.paradyn.org +Version: 13.0.0 +ExclusiveArch: x86_64 ppc64le aarch64 -Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}.tar.gz -Source1: https://github.com/dyninst/testsuite/archive/%{version}/testsuite-%{version}.tar.gz - -Patch1: dyninst-11.0.1-dwarf.patch -Patch2: dyninst-11.0.1-rosebc.patch -Patch3: testsuite-11.0.1-386.patch +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} -%global testsuite_base testsuite-%{version} BuildRequires: gcc-c++ BuildRequires: elfutils-devel @@ -27,17 +25,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 @@ -54,6 +46,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 @@ -61,38 +54,29 @@ 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 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} -%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} -%patch1 -p1 -b .386 -%patch2 -p1 -b .rose -popd - -pushd %{testsuite_base} -%patch3 -p1 -b .dwarf +%patch -P1 -p1 +%patch -P2 -p1 +%patch -P3 -p1 +%patch -P4 -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 @@ -107,54 +91,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} -%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 + -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 -# 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 +# 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 -cd ../%{testsuite_base} -%cmake_install +# 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 @@ -186,13 +147,92 @@ 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 +* 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 + +* 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. + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* Thu Jul 21 2022 Fedora Release Engineering - 12.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed May 04 2022 Thomas Rodgers - 12.1.0-2 +- Rebuilt for Boost 1.78 + +* Thu Mar 10 2022 William Cohen - 12.1.0-1 +- Update to 12.1.0 + +* Sat Mar 05 2022 Orion Poplawski - 12.0.1-4 +- Fix cmake build dir + +* Mon Feb 07 2022 Stan Cox - 12.0.1-3 +- Quiesce dwarf 5 warnings + +* Thu Jan 20 2022 Fedora Release Engineering - 12.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 10 2022 Stan Cox - 12.0.1-1 +- Update to 12.0.1 + +* Tue Nov 09 2021 Stan Cox - 11.0.1-4 +- Do not create reloc for aarch64 static calls + * Fri Aug 06 2021 Jonathan Wakely - 11.0.1-3 - Rebuilt for Boost 1.76 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/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 diff --git a/github-pr1880-ish.patch b/github-pr1880-ish.patch new file mode 100644 index 0000000..77e763f --- /dev/null +++ b/github-pr1880-ish.patch @@ -0,0 +1,36 @@ +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" + +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" + +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" 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" 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 diff --git a/sources b/sources index a8d66c9..5cadd84 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (dyninst-11.0.1.tar.gz) = 9c439be0252edae0ed3fcfa05b38595b614a91b6627afa85db126df32d5c5de5dc9413a70caf52bee7ac2349d24947626f6370f0dbf19413916c39e01679444f -SHA512 (testsuite-11.0.1.tar.gz) = 3c671adb9fd7e1b7cc6374c45b3fe2325b725f9a2add300ae46d95f3169b75719fb912c536a609631ca3eaf1c632e3d32b93a3d8e5ae26f03f0611bc9226723a +SHA512 (dyninst-13.0.0.tar.gz) = efa09018c411f6138e6e2cf6510007b29b00ed9e0d643df702303ee0ccb39b1ea1640bba18555f4cb0a7dbab677362c88ffe0eccace62b57860daee9350a4eee diff --git a/tests/Sanity/testsuite/main.fmf b/tests/Sanity/testsuite/main.fmf new file mode 100644 index 0000000..63be86c --- /dev/null +++ b/tests/Sanity/testsuite/main.fmf @@ -0,0 +1,19 @@ +summary: Dyninst upstream testsuite wrapper +description: '' +contact: Martin Cermak +component: +- dyninst +test: ./runtest.sh +framework: beakerlib +recommend: +- dyninst +- dyninst-devel +- dyninst-testsuite +- boost +- boost-devel +- elfutils-libelf-devel +- libdwarf-devel +- gcc-c++ +duration: 360m +extra-summary: /tools/dyninst/Sanity/testsuite +extra-task: /tools/dyninst/Sanity/testsuite diff --git a/tests/Sanity/testsuite/runtest.sh b/tests/Sanity/testsuite/runtest.sh new file mode 100755 index 0000000..cc7aeea --- /dev/null +++ b/tests/Sanity/testsuite/runtest.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/dyninst/Sanity/testsuite +# Description: Basic functionality covering testsuite +# Author: Michael Petlan +# Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2013 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE=${PACKAGE:-dyninst} +TESTDIR=${TESTDIR:-/usr/lib64/dyninst/testsuite} + +# Tests known to fail +SKIPLIST=test_thread_2,pc_thread,pc_tls,test_reloc,test_thread_3,\ +test_thread_5,test_thread_6,test_thread_8 + + +rlJournalStart + rlPhaseStartSetup + rlRun "rpm -q $PACKAGE $PACKAGE-testsuite" + + DYNINSTAPI_RT_LIB=$(rpm -ql $PACKAGE | fgrep libdyninstAPI_RT.so | sort | tail -1) + + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$TESTDIR" + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$(dirname $DYNINSTAPI_RT_LIB)" + LD_LIBRARY_PATH=${LD_LIBRARY_PATH#:} + + export DYNINSTAPI_RT_LIB + export LD_LIBRARY_PATH + + rlRun "setsebool allow_execmod on" + rlRun "setsebool allow_execstack on" + rlRun "setsebool deny_ptrace off" + + rlRun "pushd $TESTDIR" + rlPhaseEnd + + rlPhaseStartTest + rlRun "./runTests -v++ -allmode -allcompilers -allopt -exclude $SKIPLIST" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/testsuite-11.0.0-test12.patch b/testsuite-11.0.0-test12.patch deleted file mode 100644 index f6c999a..0000000 --- a/testsuite-11.0.0-test12.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- dyninst-11.0.0/testsuite-11.0.0/CMakeLists.txt -+++ dyninst-11.0.0/testsuite-11.0.0/CMakeLists.txt -@@ -341,5 +341,10 @@ - add_library(Test12 SHARED src/dyninst/libTest12.c) - add_library(dyninstAPI_RT SHARED IMPORTED) -- set_target_properties(dyninstAPI_RT PROPERTIES IMPORTED_LOCATION "${Dyninst_DIR}/../../libdyninstAPI_RT.so") -+ set(_path_suffixes dyninst) -+ find_library(dyninstAPI_RT_LIBRARY -+ NAMES libdyninstAPI_RT.so -+ PATHS ${Dyninst_DIR}/../.. -+ PATH_SUFFIXES ${_path_suffixes}) -+ set_target_properties(dyninstAPI_RT PROPERTIES IMPORTED_LOCATION ${dyninstAPI_RT_LIBRARY}) - target_link_libraries(Test12 dyninstAPI_RT) - install(TARGETS Test12 diff --git a/testsuite-11.0.1-386.patch b/testsuite-11.0.1-386.patch deleted file mode 100644 index 1a2467f..0000000 --- a/testsuite-11.0.1-386.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- testsuite-11.0.1/CMakeLists.txt -+++ testsuite-11.0.1/CMakeLists.txt -@@ -111,7 +111,8 @@ - if(UNIX) - enable_language(ASM-ATT) -- if("${DYNINST_PLATFORM}" MATCHES "i386") -- enable_language(ASM_NASM) -- endif() -+# nasm/yasm are deprecated -+# if("${DYNINST_PLATFORM}" MATCHES "i386") -+# enable_language(ASM_NASM) -+# endif() - elseif(WIN32) - enable_language(ASM_MASM) -