From 770436bb9b4c1674c2e1ca23bc3e025bfe517e34 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Mon, 10 Apr 2017 05:37:14 +0200 Subject: [PATCH] - updated to 9.3.1 - updated libname patch - added types patch (fixes unsigned long vs Offset/Address type mismatches) --- dyninst-libname.patch | 12 +++++----- dyninst-types.patch | 54 +++++++++++++++++++++++++++++++++++++++++++ dyninst.spec | 36 +++++++++++++++-------------- 3 files changed, 79 insertions(+), 23 deletions(-) create mode 100644 dyninst-types.patch diff --git a/dyninst-libname.patch b/dyninst-libname.patch index e9903c6..c406aef 100644 --- a/dyninst-libname.patch +++ b/dyninst-libname.patch @@ -1,10 +1,10 @@ ---- dyninst-9.2.0/common/CMakeLists.txt.orig 2016-08-01 18:54:27.138427786 +0200 -+++ dyninst-9.2.0/common/CMakeLists.txt 2016-08-01 18:56:45.575092871 +0200 +--- dyninst-9.3.1/common/CMakeLists.txt.orig 2017-04-09 19:23:42.065823975 +0200 ++++ dyninst-9.3.1/common/CMakeLists.txt 2017-04-09 19:28:45.709153841 +0200 @@ -112,6 +112,7 @@ - endif() + dyninst_library(common ${DEPS}) +set_target_properties(common PROPERTIES OUTPUT_NAME dyncommon) - if (UNIX) - # Boost auto-links on Windows; don't double-link - target_link_private_libraries(common ${Boost_LIBRARIES}) + if(PLATFORM MATCHES nt OR PLATFORM MATCHES windows) + target_link_private_libraries(common Psapi WS2_32 dbghelp) + endif() diff --git a/dyninst-types.patch b/dyninst-types.patch new file mode 100644 index 0000000..5774b93 --- /dev/null +++ b/dyninst-types.patch @@ -0,0 +1,54 @@ +--- dyninst-9.3.1/symtabAPI/src/Object-elf.C.orig 2017-03-02 22:38:32.000000000 +0100 ++++ dyninst-9.3.1/symtabAPI/src/Object-elf.C 2017-04-09 20:52:53.689096202 +0200 +@@ -3630,9 +3630,9 @@ + std::vector &addresses, + const mach_relative_info &mi) + { +- Offset try_start = (Offset) -1; +- Offset try_end = (Offset) -1; +- Offset catch_start = 0; ++ unsigned long try_start = (unsigned long) -1; ++ unsigned long try_end = (unsigned long) -1; ++ unsigned long catch_start = 0; + + Elf_X_Data data = except_table->get_data(); + const unsigned char *datap = (const unsigned char *)data.get_string(); +@@ -3652,7 +3652,7 @@ + i += read_val_of_type(DW_EH_PE_udata8, &catch_start, datap + i, mi); + } + +- if (try_start != (Offset) -1 && try_end != (Offset) -1) { ++ if (try_start != (unsigned long) -1 && try_end != (unsigned long) -1) { + ExceptionBlock eb(try_start, (unsigned) (try_end - try_start), catch_start); + addresses.push_back(eb); + } +--- dyninst-9.3.1/symtabAPI/src/emitElf.C.orig 2017-03-02 22:38:32.000000000 +0100 ++++ dyninst-9.3.1/symtabAPI/src/emitElf.C 2017-04-09 21:05:01.219087893 +0200 +@@ -651,7 +651,7 @@ + } + } + +- vector > moveSecAddrRange = obj->getObject()->getMoveSecAddrRange(); ++ vector > moveSecAddrRange = obj->getObject()->getMoveSecAddrRange(); + + for (unsigned i = 0; i != moveSecAddrRange.size(); i++) { + if ((moveSecAddrRange[i][0] == shdr->sh_addr) || +--- dyninst-9.3.1/symtabAPI/src/dwarfWalker.C.orig 2017-04-09 21:31:37.515736334 +0200 ++++ dyninst-9.3.1/symtabAPI/src/dwarfWalker.C 2017-04-09 21:31:42.419069611 +0200 +@@ -1820,13 +1820,13 @@ + Dwarf_Attribute strattr; + + if (attr == DW_AT_call_file || attr == DW_AT_decl_file) { +- unsigned long line_index; ++ Address line_index; + bool result = findConstant(attr, line_index, entry(), dbg()); + if (!result) + return false; + if (line_index >= mod()->getStrings()->size()) { +- dwarf_printf("Dwarf error reading line index %d from srcFiles of size %lu\n", +- line_index, mod()->getStrings()->size()); ++ dwarf_printf("Dwarf error reading line index %lu from srcFiles of size %lu\n", ++ (unsigned long)line_index, mod()->getStrings()->size()); + return false; + } + // cout << "findString found " << (*srcFiles())[line_index].str << " at srcFiles[" << line_index << "] for " << mod()->fileName() << endl; diff --git a/dyninst.spec b/dyninst.spec index a2d6e52..a5bae32 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -1,16 +1,17 @@ Summary: API for Run-time Code Generation Summary(pl.UTF-8): API do generowania kodu w czasie działania Name: dyninst -Version: 9.2.0 -Release: 2 +Version: 9.3.1 +Release: 1 License: LGPL v2.1+ Group: Libraries # http://www.dyninst.org/downloads/dyninst-9.x #Source0Download: https://github.com/dyninst/dyninst/releases Source0: https://github.com/dyninst/dyninst/archive/v%{version}/%{name}-%{version}.tar.gz -# Source0-md5: ad023f85e8e57837ed9de073b59d6bab +# Source0-md5: 995e1d0a718148e93251d12b982caffc Patch0: %{name}-libname.patch Patch1: %{name}-x32.patch +Patch2: %{name}-types.patch URL: http://www.dyninst.org/dyninst # libiberty BuildRequires: binutils-devel @@ -87,6 +88,7 @@ Dokumentacja do bibliotek dyninst. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %cmake . \ @@ -111,34 +113,34 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc COPYRIGHT ChangeLog README +%doc COPYRIGHT CHANGELOG.md README.md %attr(755,root,root) %{_bindir}/parseThat %attr(755,root,root) %{_libdir}/libdynC_API.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libdynC_API.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libdynC_API.so.9.3 %attr(755,root,root) %{_libdir}/libdynDwarf.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libdynDwarf.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libdynDwarf.so.9.3 %attr(755,root,root) %{_libdir}/libdynElf.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libdynElf.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libdynElf.so.9.3 %attr(755,root,root) %{_libdir}/libdyncommon.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libdyncommon.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libdyncommon.so.9.3 %attr(755,root,root) %{_libdir}/libdyninstAPI.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libdyninstAPI.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libdyninstAPI.so.9.3 %attr(755,root,root) %{_libdir}/libdyninstAPI_RT.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libdyninstAPI_RT.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libdyninstAPI_RT.so.9.3 %attr(755,root,root) %{_libdir}/libinstructionAPI.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libinstructionAPI.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libinstructionAPI.so.9.3 %attr(755,root,root) %{_libdir}/libparseAPI.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libparseAPI.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libparseAPI.so.9.3 %attr(755,root,root) %{_libdir}/libpatchAPI.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpatchAPI.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libpatchAPI.so.9.3 %attr(755,root,root) %{_libdir}/libpcontrol.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libpcontrol.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libpcontrol.so.9.3 %attr(755,root,root) %{_libdir}/libstackwalk.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libstackwalk.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libstackwalk.so.9.3 %attr(755,root,root) %{_libdir}/libsymLite.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libsymLite.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libsymLite.so.9.3 %attr(755,root,root) %{_libdir}/libsymtabAPI.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libsymtabAPI.so.9.2 +%attr(755,root,root) %ghost %{_libdir}/libsymtabAPI.so.9.3 %files devel %defattr(644,root,root,755) -- 2.44.0