From a2c9b024047f06a8a73697152c040870f9cd5d84 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Mon, 3 Dec 2018 09:34:46 -0500 Subject: [PATCH] Update to 10.0.0 --- .gitignore | 2 ++ dyninst-10.0.0-doc.patch | 12 +++++++++ dyninst-10.0.0-examples.patch | 42 +++++++++++++++++++++++++++++ dyninst.spec | 50 ++++++++++++++++++++++------------- sources | 4 +-- 5 files changed, 90 insertions(+), 20 deletions(-) create mode 100644 dyninst-10.0.0-doc.patch create mode 100644 dyninst-10.0.0-examples.patch diff --git a/.gitignore b/.gitignore index d9915d0..97f8139 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ /testsuite-9.3.0.tar.gz /dyninst-9.3.1.tar.gz /dyninst-9.3.2.tar.gz +/dyninst-10.0.0.tar.gz +/testsuite-9.4.0.tar.gz diff --git a/dyninst-10.0.0-doc.patch b/dyninst-10.0.0-doc.patch new file mode 100644 index 0000000..74ff705 --- /dev/null +++ b/dyninst-10.0.0-doc.patch @@ -0,0 +1,12 @@ + +--- ./dyninst-10.0.0/CMakeLists.txt.sv 2018-11-09 11:48:08.000000000 -0500 ++++ ./dyninst-10.0.0/CMakeLists.txt 2018-11-13 11:35:20.109650373 -0500 +@@ -149,7 +149,7 @@ if(BUILD_DOCS) + foreach(COMPONENT ${WORD_DOCS}) + add_dependencies(doc ${COMPONENT}-doc) + set_target_properties(${COMPONENT}-doc PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1) +- install(FILES ${CMAKE_SOURCE_DIR}/${COMPONENT}/doc/${COMPONENT}.pdf ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${COMPONENT}/doc/${COMPONENT}.pdf + DESTINATION ${INSTALL_DOC_DIR} + RENAME ${COMPONENT}-${VERSION_STRING}.pdf + OPTIONAL diff --git a/dyninst-10.0.0-examples.patch b/dyninst-10.0.0-examples.patch new file mode 100644 index 0000000..aee1d74 --- /dev/null +++ b/dyninst-10.0.0-examples.patch @@ -0,0 +1,42 @@ +# workaround for https://github.com/dyninst/dyninst/issues/396 + +--- ./dyninst-10.0.0/examples/CMakeLists.txt.sv 2018-11-09 11:48:08.000000000 -0500 ++++ ./dyninst-10.0.0/examples/CMakeLists.txt 2018-11-13 11:35:20.109650373 -0500 +@@ -1,19 +1,19 @@ + + +-add_executable(unstrip unstrip/unstrip.C +- unstrip/util.C +- unstrip/types.C +- unstrip/semanticDescriptor.C +- unstrip/database.C +- unstrip/fingerprint.C +- unstrip/callback.C) ++add_executable(unstrip unstrip.dir/unstrip.C ++ unstrip.dir/util.C ++ unstrip.dir/types.C ++ unstrip.dir/semanticDescriptor.C ++ unstrip.dir/database.C ++ unstrip.dir/fingerprint.C ++ unstrip.dir/callback.C) + add_dependencies(unstrip parseAPI symtabAPI instructionAPI common) + target_link_libraries(unstrip parseAPI symtabAPI instructionAPI common dynDwarf dynElf ${Boost_LIBRARIES}) + +-add_executable(codeCoverage codeCoverage/codeCoverage.C) ++add_executable(codeCoverage codeCoverage.dir/codeCoverage.C) + add_dependencies(codeCoverage dyninstAPI patchAPI parseAPI symtabAPI instructionAPI pcontrol common stackwalk dynDwarf dynElf) + target_link_libraries(codeCoverage dyninstAPI patchAPI parseAPI symtabAPI instructionAPI pcontrol common stackwalk dynDwarf dynElf ${Boost_LIBRARIES}) + +-add_library(Inst SHARED codeCoverage/libInst.C) ++add_library(Inst SHARED codeCoverage.dir/libInst.C) + + add_executable(cfg_to_dot ../parseAPI/doc/example.cc) +@@ -29,5 +29,5 @@ + ) + +-install ( +- FILES unstrip/ddb.db unstrip/params.db unstrip/unistd.db DESTINATION ${INSTALL_BIN_DIR} +-) ++# install ( ++# FILES unstrip.dir/ddb.db unstrip.dir/params.db unstrip.dir/unistd.db DESTINATION ${INSTALL_BIN_DIR} ++# ) diff --git a/dyninst.spec b/dyninst.spec index 2d15f3a..71dc93b 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,9 +2,9 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 12%{?dist} +Release: 1%{?dist} URL: http://www.dyninst.org -Version: 9.3.2 +Version: 10.0.0 # Dyninst only has full support for a few architectures. # It has some preliminary support for aarch64 and ppc64le, # but we're waiting for those to be feature-complete. @@ -12,28 +12,26 @@ ExclusiveArch: %{ix86} x86_64 ppc ppc64 Source0: https://github.com/dyninst/dyninst/archive/v%{version}/dyninst-%{version}.tar.gz # Explicit version since it does not match the source version -Source1: https://github.com/dyninst/testsuite/archive/v9.3.0/testsuite-9.3.0.tar.gz +Source1: http://scox.fedorapeople.org/testsuite-9.4.0.tar.gz -Patch1: testsuite-9.3.0-junit-nullptr.patch -Patch2: addrtranslate-sysv.patch -Patch3: Object-elf.patch -Patch4: dyninst-9.3.2-gcc8.patch -Patch5: dyninst-9.3.2-glibc-rpc.patch +Patch1: dyninst-10.0.0-examples.patch +Patch2: dyninst-10.0.0-doc.patch %global dyninst_base dyninst-%{version} # Explicit version since it does not match the source version -%global testsuite_base testsuite-9.3.0 +%global testsuite_base testsuite-9.4.0 BuildRequires: gcc-c++ -BuildRequires: libdwarf-devel >= 20111030 +BuildRequires: elfutils-devel BuildRequires: elfutils-libelf-devel BuildRequires: boost-devel BuildRequires: binutils-devel BuildRequires: cmake BuildRequires: libtirpc-devel +BuildRequires: tbb tbb-devel # Extra requires just for the testsuite -BuildRequires: gcc-gfortran glibc-static libstdc++-static nasm +BuildRequires: gcc-gfortran glibc-static libstdc++-static nasm libxml2-devel # Testsuite files should not provide/require anything %{?filter_setup: @@ -92,21 +90,27 @@ making sure that dyninst works properly. %setup -q -n %{name}-%{version} -c %setup -q -T -D -a 1 -%patch1 -p0 -b.nullptr -%patch2 -p0 -b.addrtrans -%patch3 -p0 -b.objelf -%patch4 -p1 -b.gcc8 -%patch5 -p1 -b.glibc-rpc +%patch1 -p1 -b.ex +%patch2 -p1 -b.doc # 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 +# Avoid Dir/executable name clash with in tree build +mv %{dyninst_base}/examples/unstrip %{dyninst_base}/examples/unstrip.dir +mv %{dyninst_base}/examples/codeCoverage %{dyninst_base}/examples/codeCoverage.dir + %build cd %{dyninst_base} +CFLAGS="$CFLAGS $RPM_OPT_FLAGS" +LDFLAGS="$LDFLAGS $RPM_LD_FLAGS" +CXXFLAGS="$CFLAGS" +export CFLAGS CXXFLAGS LDFLAGS + %cmake \ -DENABLE_STATIC_LIBS=1 \ -DINSTALL_LIB_DIR:PATH=%{_libdir}/dyninst \ @@ -119,7 +123,9 @@ cd %{dyninst_base} # Hack to install dyninst nearby, so the testsuite can use it make DESTDIR=../install install find ../install -name '*.cmake' -execdir \ - sed -i -e 's!%{_prefix}!../install&!' '{}' '+' + sed -i -e 's!%{_prefix}!../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 \ @@ -159,7 +165,7 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %{_libdir}/dyninst/*.so.* %doc %{dyninst_base}/COPYRIGHT -%doc %{dyninst_base}/LGPL +%doc %{dyninst_base}/LICENSE.md %config(noreplace) /etc/ld.so.conf.d/* @@ -184,12 +190,20 @@ find %{buildroot}%{_libdir}/dyninst/testsuite/ \ %files testsuite %{_bindir}/parseThat +%exclude %{_bindir}/cfg_to_dot +%exclude %{_libdir}/codeCoverage +%exclude /usr/bin/codeCoverage +%exclude %{_libdir}/unstrip +%exclude /usr/bin/unstrip %dir %{_libdir}/dyninst/testsuite/ # Restore the permissions that were hacked out above, during install. %attr(755,root,root) %{_libdir}/dyninst/testsuite/*[!a] %attr(644,root,root) %{_libdir}/dyninst/testsuite/*.a %changelog +* Tue Nov 13 2018 Stan Cox - 10.0.0-1 +- Update to 10.0.0 + * Thu Jul 12 2018 Fedora Release Engineering - 9.3.2-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/sources b/sources index bd9d0ee..83c8d4a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (dyninst-9.3.2.tar.gz) = 336ebf3a3ec123af2bf148dbfb9e0308be0bd93c81dcd1fa995c88d0eb865a85337aac976909aba4a589224b0872c601f52f20bc3f5f523f4588522308b563cd -SHA512 (testsuite-9.3.0.tar.gz) = b4a53c1a214882d7823f7a67fad5aee51a7f2fd692abdaecc9658cd01e991b6ac9b031b0f9bb94e3bd3e147ed4d362305882439bb422ff6b48bc35f1acbcdc2e +SHA512 (dyninst-10.0.0.tar.gz) = 407f8d2aa6e6c6b0e46c1c003f1ed3fa0d56b0efc86985ce9c9f2dae0ab2e7e7ad031072e957adf576577fd98676d4d40ced8796864a1be677cc7b4bc5755338 +SHA512 (testsuite-9.4.0.tar.gz) = d866f5843b37390ae0ed0a2647ea216a9f2a2d114b6666454007d33c0288d24db5a81be0d2f64dd8aceca739f4ad1b2a4ae5f80cca00a3f7a15e9044f15c56cb