diff --git a/.gitignore b/.gitignore index 3fd4028..a0f9540 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ /dyninst-10.1.0.tar.gz /dyninst-10.2.0.tar.gz /dyninst-10.2.1.tar.gz +/dyninst-11.0.0.tar.gz +/testsuite-11.0.0.tar.gz diff --git a/dyninst-10.2.1-dbid.patch b/dyninst-10.2.1-dbid.patch deleted file mode 100644 index 78f3997..0000000 --- a/dyninst-10.2.1-dbid.patch +++ /dev/null @@ -1,317 +0,0 @@ -Debuginfod is a lightweight web service that indexes ELF/DWARF debugging -resources by build-id and serves them over HTTP. - -This patch enables dyninst to query debuginfod servers for a file's -separate debuginfo when it otherwise cannot be found. - -This patch also adds a cmake option -DENABLE_DEBUGINFOD to control -whether dyninst is built with debuginfod support. - -This requires having the debuginfod client library (libdebuginfod) -and header installed. - -Debuginfod is distributed with elfutils, for more information see -https://sourceware.org/elfutils/Debuginfod.html ---- - cmake/ElfUtils.cmake | 37 ++++++++--- - cmake/Modules/FindLibDebuginfod.cmake | 76 +++++++++++++++++++++ - cmake/options.cmake | 2 + - elf/CMakeLists.txt | 3 + - elf/src/Elf_X.C | 95 ++++++++++++++++++++------- - 5 files changed, 178 insertions(+), 35 deletions(-) - create mode 100644 cmake/Modules/FindLibDebuginfod.cmake - ---- dyninst-10.2.1/dyninst-10.2.1/cmake/ElfUtils.cmake -+++ dyninst-10.2.1/dyninst-10.2.1/cmake/ElfUtils.cmake -@@ -28,7 +28,7 @@ - # - #====================================================================================== - --if(LibElf_FOUND AND LibDwarf_FOUND) -+if(LibElf_FOUND AND LibDwarf_FOUND AND (LibDebuginfod_FOUND OR NOT ENABLE_DEBUGINFOD)) - return() - endif() - -@@ -37,7 +37,12 @@ if(NOT UNIX) - endif() - - # Minimum acceptable version of elfutils --set(_min_version 0.178) -+if(ENABLE_DEBUGINFOD) -+ set(_min_version 0.179) -+else() -+ set(_min_version 0.178) -+endif() -+ - set(ElfUtils_MIN_VERSION ${_min_version} - CACHE STRING "Minimum acceptable elfutils version") - if(${ElfUtils_MIN_VERSION} VERSION_LESS ${_min_version}) -@@ -62,7 +67,7 @@ set(ElfUtils_LIBRARYDIR "${ElfUtils_ROOT_DIR}/lib" - CACHE PATH "Hint directory that contains the elfutils library files") - - # libelf/dwarf-specific directory hints --foreach(l LibElf LibDwarf) -+foreach(l LibElf LibDwarf LibDebuginfod) - foreach(d ROOT_DIR INCLUDEDIR LIBRARYDIR) - set(${l}_${d} ${ElfUtils_${d}}) - endforeach() -@@ -72,18 +77,30 @@ endforeach() - - find_package(LibElf ${ElfUtils_MIN_VERSION}) - --# Don't search for libdw if we didn't find a suitable libelf -+# Don't search for libdw or libdebuginfod if we didn't find a suitable libelf - if(LibElf_FOUND) - find_package(LibDwarf ${ElfUtils_MIN_VERSION}) -+ if (ENABLE_DEBUGINFOD) -+ find_package(LibDebuginfod ${ElfUtils_MIN_VERSION}) -+ endif() - endif() - - # -------------- SOURCE BUILD ------------------------------------------------- --if(LibElf_FOUND AND LibDwarf_FOUND) -- set(_eu_root ${ElfUtils_ROOT_DIR}) -- set(_eu_inc_dirs ${LibElf_INCLUDE_DIRS} ${LibDwarf_INCLUDE_DIRS}) -- set(_eu_lib_dirs ${LibElf_LIBRARY_DIRS} ${LibDwarf_LIBRARY_DIRS}) -- set(_eu_libs ${LibElf_LIBRARIES} ${LibDwarf_LIBRARIES}) -+if(LibElf_FOUND AND LibDwarf_FOUND AND (NOT ENABLE_DEBUGINFOD OR LibDebuginfod_FOUND)) -+ if(ENABLE_DEBUGINFOD AND LibDebuginfod_FOUND) -+ set(_eu_root ${ElfUtils_ROOT_DIR}) -+ set(_eu_inc_dirs ${LibElf_INCLUDE_DIRS} ${LibDwarf_INCLUDE_DIRS} ${LibDebuginfod_INCLUDE_DIRS}) -+ set(_eu_lib_dirs ${LibElf_LIBRARY_DIRS} ${LibDwarf_LIBRARY_DIRS} ${LibDebuginfod_LIBRARY_DIRS}) -+ set(_eu_libs ${LibElf_LIBRARIES} ${LibDwarf_LIBRARIES} ${LibDebuginfod_LIBRARIES}) -+ else() -+ set(_eu_root ${ElfUtils_ROOT_DIR}) -+ set(_eu_inc_dirs ${LibElf_INCLUDE_DIRS} ${LibDwarf_INCLUDE_DIRS}) -+ set(_eu_lib_dirs ${LibElf_LIBRARY_DIRS} ${LibDwarf_LIBRARY_DIRS}) -+ set(_eu_libs ${LibElf_LIBRARIES} ${LibDwarf_LIBRARIES}) -+ endif() - add_library(ElfUtils SHARED IMPORTED) -+elseif(ENABLE_DEBUGINFOD AND NOT LibDebuginfod_FOUND) -+ message(FATAL_ERROR "Debuginfod enabled but not found") - elseif(NOT (LibElf_FOUND AND LibDwarf_FOUND) AND STERILE_BUILD) - message(FATAL_ERROR "Elfutils not found and cannot be downloaded because build is sterile.") - else() - ---- /dev/null -+++ dyninst-10.2.1/dyninst-10.2.1/cmake/Modules/FindLibDebuginfod.cmake -@@ -0,0 +1,76 @@ -+#======================================================================================== -+# FindDebuginfod -+# ----------- -+# -+# Find debuginfod library and headers -+# -+# The module defines the following variables: -+# -+# This module reads hints about search locations from variables:: -+# -+# LibDebuginfod_ROOT_DIR - Base directory the of libdebuginfod installation -+# LibDebuginfod_INCLUDEDIR - Hint directory that contains the libdebuginfod headers files -+# LibDebuginfod_LIBRARYDIR - Hint directory that contains the libdebuginfod library files -+# -+# and saves search results persistently in CMake cache entries:: -+# -+# LibDebuginfod_FOUND - True if headers and requested libraries were found -+# LibDebuginfod_INCLUDE_DIRS - libdebuginfod include directories -+# LibDebuginfod_LIBRARY_DIRS - Link directories for libdebuginfod libraries -+# LibDebuginfod_LIBRARIES - libdebuginfod library files -+# -+# Utilize package config (e.g. /usr/lib64/pkgconfig/libdebuginfod.pc) to fetch -+# version information. -+# -+#======================================================================================== -+ -+find_package(PkgConfig QUIET) -+pkg_check_modules(PC_Debuginfod QUIET REQUIRED libdebuginfod>=${ElfUtils_MIN_VERSION}) -+set(LibDebuginfod_VERSION "${PC_Debuginfod_VERSION}") -+ -+find_path(LibDebuginfod_INCLUDE_DIRS -+ NAMES -+ debuginfod.h -+ HINTS -+ ${PC_Debuginfod_INCLUDEDIR} -+ ${PC_Debuginfod_INCLUDE_DIRS} -+ ${LibDebuginfod_ROOT_DIR}/include -+ ${LibDebuginfod_ROOT_DIR} -+ ${LibDebuginfod_INCLUDEDIR} -+ PATHS -+ ${DYNINST_SYSTEM_INCLUDE_PATHS} -+ PATH_SUFFIXES -+ ${_path_suffixes} -+ DOC -+ "libdebuginfod include directories") -+ -+find_library(LibDebuginfod_LIBRARIES -+ NAMES -+ libdebuginfod.so.1 libdebuginfod.so -+ HINTS -+ ${PC_Debuginfod_LIBDIR} -+ ${PC_Debuginfod_LIBRARY_DIRS} -+ ${LibDebuginfod_ROOT_DIR}/lib -+ ${LibDebuginfod_ROOT_DIR} -+ ${LibDebuginfod_LIBRARYDIR} -+ PATHS -+ ${DYNINST_SYSTEM_LIBRARY_PATHS} -+ PATH_SUFFIXES -+ ${_path_suffixes}) -+ -+include(FindPackageHandleStandardArgs) -+find_package_handle_standard_args(LibDebuginfod -+ FOUND_VAR -+ LibDebuginfod_FOUND -+ REQUIRED_VARS -+ LibDebuginfod_INCLUDE_DIRS -+ LibDebuginfod_LIBRARIES -+ VERSION_VAR -+ LibDebuginfod_VERSION) -+ -+if(LibDebuginfod_FOUND) -+ set(LibDebuginfod_INCLUDE_DIRS ${LibDebuginfod_INCLUDE_DIRS}) -+ set(LibDebuginfod_LIBRARIES ${LibDebuginfod_LIBRARIES}) -+ get_filename_component(_debuginfod_dir ${LibDebuginfod_LIBRARIES} DIRECTORY) -+ set(LibDebuginfod_LIBRARY_DIRS ${_debuginfod_dir} "${_debuginfod_dir}/elfutils") -+endif() - ---- dyninst-10.2.1/dyninst-10.2.1/cmake/options.cmake -+++ dyninst-10.2.1/dyninst-10.2.1/cmake/options.cmake -@@ -16,6 +16,8 @@ option(USE_COTIRE "Enable Cotire precompiled headers") - - option (ENABLE_LTO "Enable Link-Time Optimization" OFF) - -+option(ENABLE_DEBUGINFOD "Enable debuginfod support" OFF) -+ - # Some global on/off switches - if (LIGHTWEIGHT_SYMTAB) - add_definitions (-DWITHOUT_SYMTAB_API -DWITH_SYMLITE) - ---- dyninst-10.2.1/dyninst-10.2.1/elf/CMakeLists.txt -+++ dyninst-10.2.1/dyninst-10.2.1/elf/CMakeLists.txt -@@ -27,5 +27,8 @@ endif() - add_dependencies(dynElf ElfUtils) - target_link_private_libraries(dynElf ${ElfUtils_LIBRARIES}) - -+if (ENABLE_DEBUGINFOD AND LibDebuginfod_FOUND) -+ add_definitions(-DDEBUGINFOD_LIB) -+endif() - - add_definitions(-DDYNELF_LIB) - - ---- dyninst-10.2.1/dyninst-10.2.1/elf/src/Elf_X.C -+++ dyninst-10.2.1/dyninst-10.2.1/elf/src/Elf_X.C -@@ -47,6 +47,9 @@ - #include - #include - -+#if DEBUGINFOD_LIB -+#include -+#endif - - using namespace std; - using boost::crc_32_type; -@@ -1722,37 +1725,79 @@ bool Elf_X::findDebugFile(std::string origfilename, string &output_name, char* & - } - } - -- if (debugFileFromDebugLink.empty()) -- return false; -+ if (!debugFileFromDebugLink.empty()) { -+ char *mfPathNameCopy = strdup(origfilename.c_str()); -+ string objectFileDirName = dirname(mfPathNameCopy); - -- char *mfPathNameCopy = strdup(origfilename.c_str()); -- string objectFileDirName = dirname(mfPathNameCopy); -+ vector fnames = list_of -+ (objectFileDirName + "/" + debugFileFromDebugLink) -+ (objectFileDirName + "/.debug/" + debugFileFromDebugLink) -+ ("/usr/lib/debug/" + objectFileDirName + "/" + debugFileFromDebugLink); - -- vector fnames = list_of -- (objectFileDirName + "/" + debugFileFromDebugLink) -- (objectFileDirName + "/.debug/" + debugFileFromDebugLink) -- ("/usr/lib/debug/" + objectFileDirName + "/" + debugFileFromDebugLink); -+ free(mfPathNameCopy); - -- free(mfPathNameCopy); -+ for(unsigned i = 0; i < fnames.size(); i++) { -+ bool result = loadDebugFileFromDisk(fnames[i], output_buffer, output_buffer_size); -+ if (!result) -+ continue; - -- for(unsigned i = 0; i < fnames.size(); i++) { -- bool result = loadDebugFileFromDisk(fnames[i], output_buffer, output_buffer_size); -- if (!result) -- continue; -- -- boost::crc_32_type crcComputer; -- crcComputer.process_bytes(output_buffer, output_buffer_size); -- if(crcComputer.checksum() != debugFileCrc) { -- munmap(output_buffer, output_buffer_size); -- continue; -- } -+ boost::crc_32_type crcComputer; -+ crcComputer.process_bytes(output_buffer, output_buffer_size); -+ if(crcComputer.checksum() != debugFileCrc) { -+ munmap(output_buffer, output_buffer_size); -+ continue; -+ } -+ -+ output_name = fnames[i]; -+ cached_debug_buffer = output_buffer; -+ cached_debug_size = output_buffer_size; -+ cached_debug_name = output_name; -+ return true; -+ } -+ } - -- output_name = fnames[i]; -- cached_debug_buffer = output_buffer; -- cached_debug_size = output_buffer_size; -- cached_debug_name = output_name; -- return true; -+#ifdef DEBUGINFOD_LIB -+ if (!debugFileFromBuildID.empty()) { -+ // Given /usr/lib/debug/.buildid/XX/YYYYYY.debug, isolate XXYYYYYY. -+ size_t idx1 = debugFileFromBuildID.find_last_of("/"); -+ size_t idx2 = debugFileFromBuildID.find_last_of("."); -+ -+ if (idx1 == string::npos || idx2 == string::npos -+ || idx1 < 2 || idx1 > idx2) -+ return false; -+ -+ idx1 -= 2; -+ string buildid(debugFileFromBuildID.substr(idx1, idx2 - idx1)); -+ buildid.erase(2, 1); -+ -+ debuginfod_client *client = debuginfod_begin(); -+ if (client == NULL) -+ return false; -+ -+ char *filename; -+ int fd = debuginfod_find_debuginfo(client, -+ (const unsigned char *)buildid.c_str(), -+ 0, &filename); -+ debuginfod_end(client); -+ -+ if (fd >= 0) { -+ string fname = string(filename); -+ free(filename); -+ close(fd); -+ -+ bool result = loadDebugFileFromDisk(fname, -+ output_buffer, -+ output_buffer_size); -+ if (result) { -+ output_name = fname; -+ cached_debug_buffer = output_buffer; -+ cached_debug_size = output_buffer_size; -+ cached_debug_name = output_name; -+ return true; -+ } -+ } - } -+#endif - - return false; - } diff --git a/dyninst-11.0.0-dwarf.patch b/dyninst-11.0.0-dwarf.patch new file mode 100644 index 0000000..6172a9c --- /dev/null +++ b/dyninst-11.0.0-dwarf.patch @@ -0,0 +1,11 @@ +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.0/dyninst-11.0.0/symtabAPI/src/dwarfWalker.C.orig 2021-04-08 16:48:12.000000000 -0400 ++++ dyninst-11.0.0/dyninst-11.0.0/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-gcc11.patch b/dyninst-gcc11.patch deleted file mode 100644 index 8fc536c..0000000 --- a/dyninst-gcc11.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/testsuite-10.1.0/src/dyninst/test1_3.C b/testsuite-10.1.0/src/dyninst/test1_3.C -index d32f630..b9bd0ba 100644 ---- a/testsuite-10.1.0/src/dyninst/test1_3.C -+++ b/testsuite-10.1.0/src/dyninst/test1_3.C -@@ -134,7 +134,7 @@ test_results_t test1_3_Mutator::executeTest() - } - - // see if we can find the address -- if (expr3_1->getBaseAddr() <= 0) -+ if (expr3_1->getBaseAddr() == 0) - { - logerror("*Error*: address %p for %s is not valid\n", - expr3_1->getBaseAddr(), globalVar); diff --git a/dyninst.spec b/dyninst.spec index a49689f..be8367c 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -1,23 +1,20 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst -Release: 7%{?dist} +Release: 1%{?dist} URL: http://www.dyninst.org -Version: 10.2.1 +Version: 11.0.0 ExclusiveArch: %{ix86} x86_64 ppc64le aarch64 -%define __testsuite_version 10.1.0 Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}.tar.gz -Source1: https://github.com/dyninst/testsuite/archive/v10.1.0/testsuite-%{__testsuite_version}.tar.gz +Source1: https://github.com/dyninst/testsuite/archive/%{version}/testsuite-%{version}.tar.gz -Patch1: %{name}-gcc11.patch -Patch2: %{name}-10.2.1-dbid.patch -Patch3: testsuite-10.1.0-gettid.patch -Patch4: testsuite-10.1.0-386.patch -Patch5: testsuite-10.1.0-throw.patch +Patch1: testsuite-11.0.0-test12.patch +Patch2: testsuite-11.0.0-386.patch +Patch3: dyninst-11.0.0-dwarf.patch %global dyninst_base dyninst-%{version} -%global testsuite_base testsuite-%{__testsuite_version} +%global testsuite_base testsuite-%{version} BuildRequires: gcc-c++ BuildRequires: elfutils-devel @@ -79,11 +76,9 @@ making sure that dyninst works properly. %setup -q -n %{name}-%{version} -c %setup -q -T -D -a 1 -%patch1 -p1 -b .gcc11 -%patch2 -p1 -b .dbid -%patch3 -p1 -b .gettid -%patch4 -p1 -b .386 -%patch5 -p1 -b .throw +%patch1 -p1 -b .test12 +%patch2 -p1 -b .386 +%patch3 -p1 -b .dwarf # cotire seems to cause non-deterministic gcc errors # https://bugzilla.redhat.com/show_bug.cgi?id=1420551 @@ -187,6 +182,9 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Fri Apr 30 2021 Stan Cox - 11.0.0 +- Update to 11.0.0 + * Thu Apr 15 2021 Mohan Boddu - 10.2.1-7 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 diff --git a/sources b/sources index 3758b48..aef75c7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dyninst-10.2.1.tar.gz) = 5666ffd888afdb9493bd495aa6027ca5b9f71fe811a6d88777d55b612c92f73dc6c008c1738be111175a31fb0a2ec804d8ffc3e79888d8366ae5b5b624537055 -SHA512 (testsuite-10.1.0.tar.gz) = 47b91ebc0623f672378086a5f8d84e3934bd6b22d8932b12aaad257ccf7eb109505edb63dfbc3eb15aa099fc488a517835412099a77e3e0dd1275b3e3f672b3b +SHA512 (dyninst-11.0.0.tar.gz) = 30d73af656a597e4874f8b6bf0fb388e98ef591901ece9bbcaee389b9d09c44d1f3c3d323c959e6835971295eb8977d6a92c4bbb216b038126fbbc8360e9318d +SHA512 (testsuite-11.0.0.tar.gz) = bf3568e74eeb5ff7c5e8266f7843d1dd3563ab87e6275d4d586e2bbaaf965035356d869d886e527b3f000ba4213bdc035864c19f79bf648ff136d564c88a1018 diff --git a/testsuite-10.1.0-386.patch b/testsuite-10.1.0-386.patch deleted file mode 100644 index 7fbee48..0000000 --- a/testsuite-10.1.0-386.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- dyninst-10.2.0/testsuite-10.1.0/CMakeLists.txt -+++ dyninst-10.2.0/testsuite-10.1.0/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) - ---- dyninst-10.2.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C -+++ dyninst-10.2.0/testsuite-10.1.0/src/instruction/test_instruction_farcall.C -@@ -96,21 +96,21 @@ test_results_t test_instruction_farcall_Mutator::executeTest() - if(decodedInsns.size() != expectedInsns) // six valid, one invalid - { - logerror("FAILED: Expected %d instructions, decoded %d\n", expectedInsns, decodedInsns.size()); -- for(std::vector::iterator curInsn = decodedInsns.begin(); -+ for(std::vector::iterator curInsn = decodedInsns.begin(); - curInsn != decodedInsns.end(); - ++curInsn) - { -- logerror("\t%s\t", (*curInsn)->format().c_str()); -- for(unsigned j = 0; j < (*curInsn)->size(); ++j) -+ logerror("\t%s\t", (*curInsn).format().c_str()); -+ for(unsigned j = 0; j < (*curInsn).size(); ++j) - { -- logerror("%x ", (*curInsn)->rawByte(j)); -+ logerror("%x ", (*curInsn).rawByte(j)); - } - logerror("\n"); - } - - return FAILED; - } -- if(decodedInsns.back() && decodedInsns.back()->isValid()) -+ if(decodedInsns.size() > 0 && decodedInsns.back().isValid()) - { - logerror("FAILED: Expected instructions to end with an invalid instruction, but they didn't"); - return FAILED; diff --git a/testsuite-10.1.0-gettid.patch b/testsuite-10.1.0-gettid.patch deleted file mode 100644 index 9b75b25..0000000 --- a/testsuite-10.1.0-gettid.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- dyninst-10.1.0/testsuite-10.1.0/src/proccontrol/pcontrol_mutatee_tools.c.orig 2019-05-31 05:20:00.492379706 +0200 -+++ dyninst-10.1.0/testsuite-10.1.0/src/proccontrol/pcontrol_mutatee_tools.c 2019-05-31 05:10:11.354826668 +0200 -@@ -62,9 +62,9 @@ - #if !defined(os_windows_test) - #include - --static unsigned int gettid(){ -- return (unsigned int)pthread_self(); --} -+// static unsigned int gettid(){ -+// return (unsigned int)pthread_self(); -+// } - #endif - - thread_t threads[MAX_POSSIBLE_THREADS]; diff --git a/testsuite-10.1.0-throw.patch b/testsuite-10.1.0-throw.patch deleted file mode 100644 index 886e9b5..0000000 --- a/testsuite-10.1.0-throw.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- dyninst-10.2.0/testsuite-10.1.0/src/test_lib.h -+++ dyninst-10.2.0/testsuite-10.1.0/src/test_lib.h -@@ -158,3 +158,3 @@ - -- TESTLIB_DLL_EXPORT virtual ~LocErr() THROW; -+ TESTLIB_DLL_EXPORT virtual ~LocErr() throw(); - ---- dyninst-10.2.0/testsuite-10.1.0/src/test_lib.C -+++ dyninst-10.2.0/testsuite-10.1.0/src/test_lib.C -@@ -112,3 +112,3 @@ - --LocErr::~LocErr() THROW -+LocErr::~LocErr() throw() - {} diff --git a/testsuite-11.0.0-386.patch b/testsuite-11.0.0-386.patch new file mode 100644 index 0000000..e33a8b4 --- /dev/null +++ b/testsuite-11.0.0-386.patch @@ -0,0 +1,15 @@ +--- dyninst-11.0.0/testsuite-11.0.0/CMakeLists.txt ++++ dyninst-11.0.0/testsuite-11.0.0/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) + diff --git a/testsuite-11.0.0-test12.patch b/testsuite-11.0.0-test12.patch new file mode 100644 index 0000000..f6c999a --- /dev/null +++ b/testsuite-11.0.0-test12.patch @@ -0,0 +1,14 @@ +--- 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