From afd09e5dedf6651d02817076b2b5804ff4e152d0 Mon Sep 17 00:00:00 2001 From: CentOS Buildsys Date: Oct 25 2013 20:01:23 +0000 Subject: import dyninst-8.1.2-2.el7.src.rpm --- diff --git a/.dyninst.metadata b/.dyninst.metadata new file mode 100644 index 0000000..daf2cae --- /dev/null +++ b/.dyninst.metadata @@ -0,0 +1,2 @@ +f4b3a3879935a1a48f817509419aa86944529e55 SOURCES/dyninst-8.1.2.tar.gz +6d8d64610baf3d14b08034237b5131a4654702a0 SOURCES/dyninst-docs-8.1.1.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/dyninst-install-testsuite.patch b/SOURCES/dyninst-install-testsuite.patch new file mode 100644 index 0000000..a57135f --- /dev/null +++ b/SOURCES/dyninst-install-testsuite.patch @@ -0,0 +1,238 @@ +commit 701eb936767886bfd7b8858e8e2151173f9dc6bd +Author: Josh Stone +Date: Tue Feb 26 09:34:52 2013 -0800 + + Hack the testsuite into shape for installation + + * testsuite/make.module.tmpl: Forgo rpath, and install all targets. + * testsuite/src/runTests-utils.C (setupVars): Don't complain about the + scripts dir, as it's not actually needed anyway. + * testsuite/src/test_driver.C (getRTLibDir): Hack out the builddir path, + and just use ../ (aka %{libdir}/dyninst/testsuite/../) + +diff --git a/testsuite/make.module.tmpl b/testsuite/make.module.tmpl +index 1d3ce2c..1c76d8f 100644 +--- a/testsuite/make.module.tmpl ++++ b/testsuite/make.module.tmpl +@@ -227,7 +227,7 @@ proccontrol_COMPONENT_LIB = $(LIBPROCCONTROLCOMP) + SPACE := + SPACE += + #COMPONENT_LDFLAGS += $(subst $(SPACE),,-Wl,--enable-new-dtags$(ALL_COMP_DIRS:%=,-rpath,%)) +-COMPONENT_LDFLAGS += $(subst $(SPACE),,-Wl$(ALL_COMP_DIRS:%=,-rpath,%)) ++#COMPONENT_LDFLAGS += $(subst $(SPACE),,-Wl$(ALL_COMP_DIRS:%=,-rpath,%)) + + all: default + +@@ -246,8 +246,19 @@ full: test-full + ### A list of all the targets we're building, for install purposes + ####################################################################### + +-ALL_TARGETS_DEST = $(addprefix $(TEST_DEST)/,$(ALL_TARGETS)) +-LIBTESTSUITE_DEST = $(addprefix $(TEST_DEST)/,$(LIBTESTSUITE)) ++TEST_DEST ?= $(LIBRARY_DEST)/testsuite ++ ++ALL_TARGETS = $(LIBTESTLAUNCH) $(LIBTESTSUITE) $(TESTLIBS) ++ALL_TARGETS += $(MUTATORS) $(MUTATEES_MINIMUM) ++ALL_TARGETS += $(DRIVERS) $(OUTPUT_DRIVERS) $(COMPONENTS) ++ ++FULL_TARGETS = $(LIBTESTLAUNCH) $(LIBTESTSUITE) $(TESTLIBS) ++FULL_TARGETS += $(MUTATORS) $(MUTATEES) ++FULL_TARGETS += $(DRIVERS) $(OUTPUT_DRIVERS) $(COMPONENTS) ++ ++ALL_TARGETS_DEST = $(addprefix $(TEST_DEST)/,$(ALL_TARGETS)) ++FULL_TARGETS_DEST = $(addprefix $(TEST_DEST)/,$(FULL_TARGETS)) ++LIBTESTSUITE_DEST = $(addprefix $(TEST_DEST)/,$(LIBTESTSUITE)) + + ####################################################################### + ### Some pattern rules +@@ -274,13 +285,11 @@ include make.mutators.gen + + include make.solo_mutatee.gen + +-mutatees: +- +-mutators: +- +-components: +- +-testlibs: ++MUTATEES = ++MUTATEES_MINIMUM = ++MUTATORS = ++COMPONENTS = ++TESTLIBS = + + ####################################################################### + ### Filter results, if needed +@@ -296,13 +305,13 @@ include $(TO_CORE)/make.components + + ifneq ($(wildcard ../src/dyninst), ) + ifneq ($(findstring dyninstAPI,$(fullSystem)),) +-mutatees: $(filter-out $(BUILD_FILTER), $(dyninst_SOLO_MUTATEES)) +-mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(dyninst_SOLO_MUTATEES))) +-mutators: $(dyninst_MUTATORS_SO) +-components: $(LIBDYNINSTCOMP) +-testlibs: $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS) ++MUTATEES += $(filter-out $(BUILD_FILTER), $(dyninst_SOLO_MUTATEES)) ++MUTATEES_MINIMUM += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(dyninst_SOLO_MUTATEES))) ++MUTATORS += $(dyninst_MUTATORS_SO) ++COMPONENTS += $(LIBDYNINSTCOMP) ++TESTLIBS += $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS) + ifndef SKIP_BUILD_RTLIB_32 +-testlibs: $(DYNINST_TESTLIBS_ABI) $(DYNINST_STATIC_TESTLIBS_ABI) ++TESTLIBS += $(DYNINST_TESTLIBS_ABI) $(DYNINST_STATIC_TESTLIBS_ABI) + dyninst_targs = $(DYNINST_TESTLIBS_ABI) $(DYNINST_STATIC_TESTLIBS_ABI) + endif + dyninst_targs += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(dyninst_SOLO_MUTATEES))) +@@ -312,11 +321,11 @@ endif + + ifneq ($(wildcard ../src/symtab), ) + ifneq ($(findstring symtabAPI,$(fullSystem)),) +-mutatees: $(filter-out $(BUILD_FILTER), $(symtab_SOLO_MUTATEES)) +-mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(symtab_SOLO_MUTATEES))) +-mutators: $(symtab_MUTATORS_SO) +-components: $(LIBSYMTABCOMP) +-testlibs: $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS) ++MUTATEES += $(filter-out $(BUILD_FILTER), $(symtab_SOLO_MUTATEES)) ++MUTATEES_MINIMUM += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(symtab_SOLO_MUTATEES))) ++MUTATORS += $(symtab_MUTATORS_SO) ++COMPONENTS += $(LIBSYMTABCOMP) ++TESTLIBS += $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS) + symtab_targs = $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(symtab_SOLO_MUTATEES))) + symtab_targs = $(symtab_MUTATORS_SO) $(LIBSYMTABCOMP) + endif +@@ -324,12 +333,12 @@ endif + + ifneq ($(wildcard ../src/instruction), ) + ifneq ($(findstring instructionAPI,$(fullSystem)),) +-mutatees: $(filter-out $(BUILD_FILTER), $(instruction_SOLO_MUTATEES)) +-mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(instruction_SOLO_MUTATEES))) +-mutators: $(instruction_MUTATORS_SO) ++MUTATEES += $(filter-out $(BUILD_FILTER), $(instruction_SOLO_MUTATEES)) ++MUTATEES_MINIMUM += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(instruction_SOLO_MUTATEES))) ++MUTATORS += $(instruction_MUTATORS_SO) + ifneq ($(instruction_MUTATORS_SO), ) +-components: $(LIBINSTRUCTIONCOMP) +-testlibs: ++COMPONENTS += $(LIBINSTRUCTIONCOMP) ++TESTLIBS += + instruction_targs = $(LIBINSTRUCTIONCOMP) + endif + instruction_targs += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(instruction_SOLO_MUTATEES))) +@@ -339,12 +348,12 @@ endif + + ifneq ($(wildcard ../src/proccontrol), ) + ifneq ($(findstring proccontrol,$(fullSystem)),) +-mutatees: $(filter-out $(BUILD_FILTER), $(proccontrol_SOLO_MUTATEES)) +-mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(proccontrol_SOLO_MUTATEES))) +-mutators: $(proccontrol_MUTATORS_SO) ++MUTATEES += $(filter-out $(BUILD_FILTER), $(proccontrol_SOLO_MUTATEES)) ++MUTATEES_MINIMUM += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(proccontrol_SOLO_MUTATEES))) ++MUTATORS += $(proccontrol_MUTATORS_SO) + ifneq ($(proccontrol_MUTATORS_SO), ) +-components: $(LIBPROCCONTROLCOMP) +-testlibs: $(PROCCONTROL_TESTLIBS) $(PROCCONTROL_TESTLIBS_ABI) $(DYNINST_TESTLIBS) $(DYNINST_TESTLIBS_ABI) ++COMPONENTS += $(LIBPROCCONTROLCOMP) ++TESTLIBS += $(PROCCONTROL_TESTLIBS) $(PROCCONTROL_TESTLIBS_ABI) $(DYNINST_TESTLIBS) $(DYNINST_TESTLIBS_ABI) + proccontrol_targs = $(LIBPROCCONTROLCOMP) $(PROCCONTROL_TESTLIBS) $(PROCCONTROL_TESTLIBS_ABI) $(DYNINST_TESTLIBS) $(DYNINST_TESTLIBS_ABI) + endif + proccontrol_targs += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(proccontrol_SOLO_MUTATEES))) +@@ -352,6 +361,16 @@ proccontrol_targs += $(proccontrol_MUTATORS_SO) + endif + endif + ++mutatees: $(MUTATEES) ++ ++mutatees_minimum: $(MUTATEES_MINIMUM) ++ ++mutators: $(MUTATORS) ++ ++components: $(COMPONENTS) ++ ++testlibs: $(TESTLIBS) ++ + common_infra: drivers output_drivers + + dyninstAPI: common_infra $(dyninst_targs) $(symtab_targs) $(instruction_targs) $(proccontrol_targs) +@@ -362,7 +381,13 @@ instructionAPI: common_infra $(instruction_targs) + + proccontrol: common_infra $(proccontrol_targs) + +-install: default ++install: $(TEST_DEST) ++ ++install-full: $(TEST_DEST) ++ ++$(TEST_DEST)/%: % ++ @echo Installing $@ ++ $(HIDE_COMP)$(INSTALL) -t $(TEST_DEST) $< + + symlink: all + +@@ -412,7 +437,8 @@ endif + + testlibs: $(LIBTESTSUITE) + +-drivers: test_driver runTests testdriver_wrapper ++DRIVERS = test_driver runTests testdriver_wrapper ++drivers: $(DRIVERS) + + .PHONY: clean install distclean mutators mutatees testlibs gnu_mutatees native_mutatees echo all + +@@ -566,7 +592,8 @@ endif + + # Install directory + $(TEST_DEST): +- mkdir $(TEST_DEST) ++ @echo Installing $@ ++ $(HIDE_COMP)$(INSTALL) -d $(TEST_DEST) + + ####################################################################### + ### Generic Mutator build rule: +@@ -857,3 +884,6 @@ endif + endif + endif + endif ++ ++install: $(ALL_TARGETS_DEST) ++install-full: $(FULL_TARGETS_DEST) +diff --git a/testsuite/src/runTests-utils.C b/testsuite/src/runTests-utils.C +index 0f54874..02bd505 100644 +--- a/testsuite/src/runTests-utils.C ++++ b/testsuite/src/runTests-utils.C +@@ -403,12 +403,14 @@ void setupVars(bool useLog, string &logfile) + } + + pdscrdir = base_dir + "/dyninst/scripts"; ++#if 0 + if ( ! isDir(pdscrdir) ) + { + cerr << pdscrdir << " does not exist. Paradyn scripts dir required." + << endl; + exit(1); + } ++#endif + + // Determine Test log dir + char *pdtst = getenv("PDTST"); +diff --git a/testsuite/src/test_driver.C b/testsuite/src/test_driver.C +index 0fc3117..31def33 100644 +--- a/testsuite/src/test_driver.C ++++ b/testsuite/src/test_driver.C +@@ -805,6 +805,8 @@ void updateSearchPaths(const char *filename) { + } + + std::string getRTLibDir() { ++ return "../"; ++#if 0 + char *platform = getenv("PLATFORM"); + char cwd[1024]; + if (!platform) { +@@ -822,6 +824,7 @@ std::string getRTLibDir() { + std::string rtlib = "../../dyninstAPI_RT/"; + rtlib += platform; + return rtlib; ++#endif + } + + #if !defined(os_windows_test) diff --git a/SOURCES/dyninst-rhbz1007500.patch b/SOURCES/dyninst-rhbz1007500.patch new file mode 100644 index 0000000..50f11a2 --- /dev/null +++ b/SOURCES/dyninst-rhbz1007500.patch @@ -0,0 +1,80 @@ +commit 7cb54ca93cffc949b16611d5b6c66844524143d8 +Author: Josh Stone +Date: Thu Oct 17 16:05:25 2013 -0700 + + Fix DYNINST_index_lock state and ppc64 writeFunctionPtr + + There are two fixes in this patch to resolve hangs that we've seen on + ppc64 tests, most notably in test_thread_5. + + The first is that DYNINST_index_lock may be left in a locked state from + DYNINSTthreadIndexSLOW when DYNINST_thread_hash_size is 0. This simply + needs an unlock in that error path. + + The second resolves *why* DYNINST_thread_hash_size is 0, even after it + was correctly initialized to 40. This turned out to be corruption when + the mutator writeFunctionPtr sets DYNINST_pthread_self. Those symbols + in libdyninstAPI_RT.so happen to be arranged like so: + + 0000000000031180 B DYNINST_pthread_self + 0000000000031188 B DYNINST_sysEntry + 0000000000031190 B DYNINST_thread_hash_size + + So writeFunctionPtr was sending three longs: the function descriptor + correctly in DYNINST_pthread_self; the toc in DYNINST_sysEntry, a dead + variable; and the guilty 0x0 in DYNINST_thread_hash_size. The only + thing a function pointer actually needs is the function descriptor. + + For comparison, on EL5 and EL6 our build has the symbols like so: + + 000000000002c400 B DYNINST_pthread_self + 000000000002c408 B DYNINSTlinkSave + 000000000002c410 B DYNINSTtocSave + 000000000002c418 B DYNINST_sysEntry + 000000000002c420 B DYNINST_thread_hash_tids + 000000000002c428 B DYNINST_thread_hash_size + + So that still clobbered data, but DYNINSTlinkSave and DYNINSTtocSave are + both unused variables -- no harm done. + + Signed-off-by: Josh Stone + +diff --git a/dyninstAPI/src/inst-power.C b/dyninstAPI/src/inst-power.C +index c2accaf..74436ec 100644 +--- a/dyninstAPI/src/inst-power.C ++++ b/dyninstAPI/src/inst-power.C +@@ -2589,20 +2589,11 @@ bool writeFunctionPtr(AddressSpace *p, Address addr, func_instance *f) + #else + // 64-bit ELF PowerPC Linux uses r2 (same as AIX) for TOC base register + if (p->getAddressWidth() == sizeof(uint64_t)) { +- Address buffer[3]; + Address val_to_write = f->addr(); + // Use function descriptor address, if available. + if (f->getPtrAddress()) val_to_write = f->getPtrAddress(); +- assert(p->proc()); +- Address toc = p->proc()->getTOCoffsetInfo(f); +- buffer[0] = val_to_write; +- buffer[1] = toc; +- buffer[2] = 0x0; +- +- if (!p->writeDataSpace((void *) addr, sizeof(buffer), buffer)) +- fprintf(stderr, "%s[%d]: writeDataSpace failed\n", +- FILE__, __LINE__); +- return true; ++ return p->writeDataSpace((void *) addr, ++ sizeof(val_to_write), &val_to_write); + } + else { + // Originally copied from inst-x86.C +diff --git a/dyninstAPI_RT/src/RTthread.c b/dyninstAPI_RT/src/RTthread.c +index 9897563..2a80f58 100644 +--- a/dyninstAPI_RT/src/RTthread.c ++++ b/dyninstAPI_RT/src/RTthread.c +@@ -119,6 +119,7 @@ unsigned DYNINSTthreadIndexSLOW(dyntid_t tid) { + **/ + if (!DYNINST_thread_hash_size) { + //Uninitialized tramp guard. ++ tc_lock_unlock(&DYNINST_index_lock); + return DYNINST_max_num_threads; + } + diff --git a/SOURCES/dyninst-rpm-build-flags.patch b/SOURCES/dyninst-rpm-build-flags.patch new file mode 100644 index 0000000..73b4f18 --- /dev/null +++ b/SOURCES/dyninst-rpm-build-flags.patch @@ -0,0 +1,14 @@ +--- dyninst/make.config.buildflags 2013-02-14 11:23:18.717002871 -0800 ++++ dyninst/make.config 2013-02-14 11:23:46.588871846 -0800 +@@ -570,9 +570,9 @@ ifeq (ppc64_linux, $(findstring ppc64_li + endif + + # flags for normal (non-kludge) files, with common warnings +-CFLAGS = $(IFLAGS) $(UNIFIED_DEF) $(OPT_FLAG) $(COMMON_WARNINGS) $(ARCH_FLAGS) ++CFLAGS += $(IFLAGS) $(UNIFIED_DEF) $(OPT_FLAG) $(COMMON_WARNINGS) $(ARCH_FLAGS) + CXXFLAGS += $(IFLAGS) $(UNIFIED_DEF) $(OPT_FLAG) $(COMMON_WARNINGS) $(STDINT_MACROS) $(ARCH_FLAGS) +-LDFLAGS = $(ARCH_FLAGS) ++LDFLAGS += $(ARCH_FLAGS) + + # flags for kludge files, won't have warnings generated + KFLAGS = $(IFLAGS) $(UNIFIED_DEF) $(BASICWARNINGS) diff --git a/SPECS/dyninst.spec b/SPECS/dyninst.spec new file mode 100644 index 0000000..cfd58a6 --- /dev/null +++ b/SPECS/dyninst.spec @@ -0,0 +1,287 @@ +Summary: An API for Run-time Code Generation +License: LGPLv2+ +Name: dyninst +Group: Development/Libraries +Release: 2%{?dist} +URL: http://www.dyninst.org +Version: 8.1.2 +Exclusiveos: linux +#Right now dyninst does not know about the following architectures +ExcludeArch: s390 s390x %{arm} + +# The source for this package was pulled from upstream's vcs. Use the +# following commands to generate the tarball: +# git clone http://git.dyninst.org/dyninst.git; cd dyninst +# git archive --format=tar.gz --prefix=dyninst/ v8.1.2 > dyninst-8.1.2.tar.gz +# git clone http://git.dyninst.org/docs.git; cd docs +# git archive --format=tar.gz v8.1.1 > dyninst-docs-8.1.1.tar.gz +# Verify the commit ids with: +# gunzip -c dyninst-8.1.2.tar.gz | git get-tar-commit-id +# gunzip -c dyninst-docs-8.1.1.tar.gz | git get-tar-commit-id +Source0: %{name}-%{version}.tar.gz +Source1: %{name}-docs-8.1.1.tar.gz +Patch1: dyninst-rpm-build-flags.patch +Patch2: dyninst-install-testsuite.patch +Patch3: dyninst-rhbz1007500.patch +BuildRequires: libdwarf-devel >= 20111030 +BuildRequires: elfutils-libelf-devel +BuildRequires: boost-devel + +# Extra requires just for the testsuite +BuildRequires: gcc-gfortran glibc-static libstdc++-static nasm + +# Testsuite files should not provide/require anything +%{?filter_setup: +%filter_provides_in %{_libdir}/dyninst/testsuite/ +%filter_requires_in %{_libdir}/dyninst/testsuite/ +%filter_setup +} + +%description + +Dyninst is an Application Program Interface (API) to permit the insertion of +code into a running program. The API also permits changing or removing +subroutine calls from the application program. Run-time code changes are +useful to support a variety of applications including debugging, performance +monitoring, and to support composing applications out of existing packages. +The goal of this API is to provide a machine independent interface to permit +the creation of tools and applications that use run-time code patching. + +%package doc +Summary: Documentation for using the Dyninst API +Group: Documentation +%description doc +dyninst-doc contains API documentation for the Dyninst libraries. + +%package devel +Summary: Header files for the compiling programs with Dyninst +Group: Development/System +Requires: dyninst = %{version}-%{release} +Requires: boost-devel +%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 static +Summary: Static libraries for the compiling programs with Dyninst +Group: Development/System +Requires: dyninst-devel = %{version}-%{release} +%description static +dyninst-static includes the static versions of the library files for +the dyninst user-space libraries and interfaces. + +%package testsuite +Summary: Programs for testing Dyninst +Group: Development/System +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 + +pushd dyninst +%patch1 -p1 -b .buildflags +%patch2 -p1 -b .testsuite +%patch3 -p1 -b .rhbz1007500 +popd + +%build + +cd dyninst + +%configure --includedir=%{_includedir}/dyninst --libdir=%{_libdir}/dyninst +make %{?_smp_mflags} VERBOSE_COMPILATION=1 + +%install + +cd dyninst +make DESTDIR=%{buildroot} install + +mkdir -p %{buildroot}/etc/ld.so.conf.d +echo "%{_libdir}/dyninst" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf + +# Ugly hack to fix permissions +chmod 644 %{buildroot}%{_includedir}/dyninst/* +chmod 644 %{buildroot}%{_libdir}/dyninst/*.a + +# Uglier 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. +chmod 644 %{buildroot}%{_libdir}/dyninst/testsuite/* + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) + +%dir %{_libdir}/dyninst +%{_libdir}/dyninst/*.so.* + +%doc dyninst/COPYRIGHT +%doc dyninst/LGPL + +%config(noreplace) /etc/ld.so.conf.d/* + +%files doc +%defattr(-,root,root,-) +%doc dynC_API.pdf +%doc DyninstAPI.pdf +%doc InstructionAPI.pdf +%doc ParseAPI.pdf +%doc PatchAPI.pdf +%doc ProcControlAPI.pdf +%doc StackwalkerAPI.pdf +%doc SymtabAPI.pdf + +%files devel +%defattr(-,root,root,-) +%{_includedir}/dyninst +%{_libdir}/dyninst/*.so + +%files static +%defattr(-,root,root,-) +%{_libdir}/dyninst/*.a + +%files testsuite +%defattr(-,root,root,-) +%{_bindir}/parseThat +%dir %{_libdir}/dyninst/testsuite/ +# Restore the permissions that were hacked out above, during install. +%attr(755,root,root) %{_libdir}/dyninst/testsuite/* + +%changelog +* Fri Oct 25 2013 Josh Stone 8.1.2-2 +- rhbz1007500: Fix DYNINST_index_lock state and ppc64 writeFunctionPtr + +* Tue Jun 18 2013 Josh Stone 8.1.2-1 +- Update to release 8.1.2. + +* Fri Mar 15 2013 Josh Stone 8.1.1-1 +- Update to release 8.1.1. +- Drop the backported dyninst-test2_4-kill-init.patch. +- Drop the now-upstreamed dyninst-unused_vars.patch. +- Update other patches for context. +- Patch the installed symlinks to be relative, not $(DEST) filled. + +* Tue Feb 26 2013 Josh Stone 8.0-7 +- testsuite: Require dyninst-devel for the libdyninstAPI_RT.so symlink + +* Tue Feb 26 2013 Josh Stone 8.0-6 +- Fix the testsuite path to include libtestlaunch.so + +* Mon Feb 25 2013 Josh Stone 8.0-5 +- Add a dyninst-testsuite package. +- Patch test2_4 to protect against running as root. +- Make dyninst-static require dyninst-devel. + +* Thu Feb 14 2013 Josh Stone 8.0-4 +- Patch make.config to ensure rpm build flags are not discarded. + +* Sun Feb 10 2013 Denis Arnaud - 8.0-3 +- Rebuild for Boost-1.53.0 + +* Sat Feb 09 2013 Denis Arnaud - 8.0-2 +- Rebuild for Boost-1.53.0 + +* Tue Nov 20 2012 Josh Stone +- Tweak the configure/make commands +- Disable the testsuite via configure. +- Set the private includedir and libdir via configure. +- Set VERBOSE_COMPILATION for make. +- Use DESTDIR for make install. + +* Mon Nov 19 2012 Josh Stone 8.0-1 +- Update to release 8.0. +- Updated "%files doc" to reflect renames. +- Drop the unused BuildRequires libxml2-devel. +- Drop the 7.99.x version-munging patch. + +* Fri Nov 09 2012 Josh Stone 7.99.2-0.29 +- Rebase to git e99d7070bbc39c76d6d528db530046c22681c17e + +* Mon Oct 29 2012 Josh Stone 7.99.2-0.28 +- Bump to 7.99.2 per abi-compliance-checker results + +* Fri Oct 26 2012 Josh Stone 7.99.1-0.27 +- Rebase to git dd8f40b7b4742ad97098613876efeef46d3d9e65 +- Use _smp_mflags to enable building in parallel. + +* Wed Oct 03 2012 Josh Stone 7.99.1-0.26 +- Rebase to git 557599ad7417610f179720ad88366c32a0557127 + +* Thu Sep 20 2012 Josh Stone 7.99.1-0.25 +- Rebase on newer git tree. +- Bump the fake version to 7.99.1 to account for ABI differences. +- Enforce the minimum libdwarf version. +- Drop the upstreamed R_PPC_NUM patch. + +* Wed Aug 15 2012 Karsten Hopp 7.99-0.24 +- check if R_PPC_NUM is defined before using it, similar to R_PPC64_NUM + +* Mon Jul 30 2012 Josh Stone 7.99-0.23 +- Rebase on newer git tree. +- Update license files with upstream additions. +- Split documentation into -doc subpackage. +- Claim ownership of %{_libdir}/dyninst. + +* Fri Jul 27 2012 William Cohen - 7.99-0.22 +- Correct requires for dyninst-devel. + +* Wed Jul 25 2012 Josh Stone - 7.99-0.21 +- Rebase on newer git tree +- Update context in dyninst-git.patch +- Drop dyninst-delete_array.patch +- Drop dyninst-common-makefile.patch + +* Wed Jul 18 2012 Fedora Release Engineering - 7.99-0.20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 16 2012 William Cohen - 7.99-0.19 +- Patch common/i386-unknown-linux2.4/Makefile to build. + +* Fri Jul 13 2012 William Cohen - 7.99-0.18 +- Rebase on newer git tree the has a number of merges into it. +- Adjust spec file to allow direct use of git patches +- Fix to eliminate unused varables. +- Proper delete for array. + +* Thu Jun 28 2012 William Cohen - 7.99-0.17 +- Rebase on newer git repo. + +* Thu Jun 28 2012 William Cohen - 7.99-0.16 +- Eliminate dynptr.h file use with rebase on newer git repo. + +* Mon Jun 25 2012 William Cohen - 7.99-0.14 +- Rebase on newer git repo. + +* Tue Jun 19 2012 William Cohen - 7.99-0.12 +- Fix static library and header file permissions. +- Use sources from the dyninst git repositories. +- Fix 32-bit library versioning for libdyninstAPI_RT_m32.so. + +* Wed Jun 13 2012 William Cohen - 7.99-0.11 +- Fix library versioning. +- Move .so links to dyninst-devel. +- Remove unneded clean section. + +* Fri May 11 2012 William Cohen - 7.0.1-0.9 +- Clean up Makefile rules. + +* Sat May 5 2012 William Cohen - 7.0.1-0.8 +- Clean up spec file. + +* Wed May 2 2012 William Cohen - 7.0.1-0.7 +- Use "make install" and do staged build. +- Use rpm configure macro. + +* Thu Mar 15 2012 William Cohen - 7.0.1-0.5 +- Nuke the bundled boost files and use the boost-devel rpm instead. + +* Mon Mar 12 2012 William Cohen - 7.0.1-0.4 +- Initial submission of dyninst spec file.