ad918e3
%define libname libdwarves
ad918e3
%define libver 1
ad918e3
ad918e3
Name: dwarves
Arnaldo Carvalho de Melo 70ff229
Version: 1.10
Arnaldo Carvalho de Melo eaf9314
Release: 1%{?dist}
ad918e3
License: GPLv2
88c3a80
Summary: Debugging Information Manipulation Tools
ad918e3
Group: Development/Tools
Arnaldo Carvalho de Melo 70ff229
URL: http://acmel.wordpress.com
df33e5f
Source: http://fedorapeople.org/~acme/dwarves/%{name}-%{version}.tar.bz2
ad918e3
BuildRequires: cmake
809b44e
BuildRequires: zlib-devel
88c3a80
BuildRequires: elfutils-devel >= 0.130
ad918e3
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
ad918e3
ad918e3
%description
88c3a80
dwarves is a set of tools that use the debugging information inserted in
ad918e3
ELF binaries by compilers such as GCC, used by well known debuggers such as
ad918e3
GDB, and more recent ones such as systemtap.
ad918e3
ad918e3
Utilities in the dwarves suite include pahole, that can be used to find
ad918e3
alignment holes in structs and classes in languages such as C, C++, but not
ad918e3
limited to these.
ad918e3
ad918e3
It also extracts other information such as CPU cacheline alignment, helping
ad918e3
pack those structures to achieve more cache hits.
ad918e3
ad918e3
A diff like tool, codiff can be used to compare the effects changes in source
ad918e3
code generate on the resulting binaries.
ad918e3
ad918e3
Another tool is pfunct, that can be used to find all sorts of information about
ad918e3
functions, inlines, decisions made by the compiler about inlining, etc.
ad918e3
ad918e3
%package -n %{libname}%{libver}
88c3a80
Summary: Debugging information  processing library
ad918e3
Group: Development/Libraries
ad918e3
ad918e3
%description -n %{libname}%{libver}
88c3a80
Debugging information processing library.
ad918e3
ad918e3
%package -n %{libname}%{libver}-devel
88c3a80
Summary: Debugging information library development files
ad918e3
Group: Development/Libraries
ad918e3
Requires: %{libname}%{libver} = %{version}-%{release}
ad918e3
ad918e3
%description -n %{libname}%{libver}-devel
88c3a80
Debugging information processing library development files.
ad918e3
ad918e3
%prep
ad918e3
%setup -q -c -n %{name}-%{version}
ad918e3
ad918e3
%build
ad918e3
%cmake .
ad918e3
make VERBOSE=1 %{?_smp_mflags}
ad918e3
ad918e3
%install
ad918e3
rm -Rf %{buildroot}
ad918e3
make install DESTDIR=%{buildroot}
ad918e3
ad918e3
%post -n %{libname}%{libver} -p /sbin/ldconfig
ad918e3
ad918e3
%postun -n %{libname}%{libver} -p /sbin/ldconfig
ad918e3
ad918e3
%clean
ad918e3
rm -rf %{buildroot}
ad918e3
ad918e3
%files
ad918e3
%defattr(0644,root,root,0755)
ad918e3
%doc README.ctracer
ad918e3
%doc NEWS
ad918e3
%defattr(0755,root,root,0755)
ad918e3
%{_bindir}/codiff
ad918e3
%{_bindir}/ctracer
ad918e3
%{_bindir}/dtagnames
ad918e3
%{_bindir}/pahole
ad918e3
%{_bindir}/pdwtags
ad918e3
%{_bindir}/pfunct
ad918e3
%{_bindir}/pglobal
ad918e3
%{_bindir}/prefcnt
Arnaldo Carvalho de Melo eaf9314
%{_bindir}/scncopy
ad918e3
%{_bindir}/syscse
ad918e3
%{_bindir}/ostra-cg
df33e5f
%dir %{_datadir}/dwarves/
ad918e3
%dir %{_datadir}/dwarves/runtime/
ad918e3
%dir %{_datadir}/dwarves/runtime/python/
ad918e3
%defattr(0644,root,root,0755)
df33e5f
%{_mandir}/man1/pahole.1*
ad918e3
%{_datadir}/dwarves/runtime/Makefile
ad918e3
%{_datadir}/dwarves/runtime/linux.blacklist.cu
ad918e3
%{_datadir}/dwarves/runtime/ctracer_relay.c
ad918e3
%{_datadir}/dwarves/runtime/ctracer_relay.h
ad918e3
%attr(0755,root,root) %{_datadir}/dwarves/runtime/python/ostra.py*
ad918e3
ad918e3
%files -n %{libname}%{libver}
ad918e3
%defattr(0644,root,root,0755)
ad918e3
%{_libdir}/%{libname}.so.*
ad918e3
%{_libdir}/%{libname}_emit.so.*
ad918e3
%{_libdir}/%{libname}_reorganize.so.*
ad918e3
ad918e3
%files -n %{libname}%{libver}-devel
ad918e3
%defattr(0644,root,root,0755)
ad918e3
%doc MANIFEST README
88c3a80
%{_includedir}/dwarves/dwarves.h
88c3a80
%{_includedir}/dwarves/dwarves_emit.h
88c3a80
%{_includedir}/dwarves/dwarves_reorganize.h
88c3a80
%{_includedir}/dwarves/dutil.h
88c3a80
%{_includedir}/dwarves/gobuffer.h
88c3a80
%{_includedir}/dwarves/list.h
88c3a80
%{_includedir}/dwarves/rbtree.h
88c3a80
%{_includedir}/dwarves/strings.h
ad918e3
%{_libdir}/%{libname}.so
ad918e3
%{_libdir}/%{libname}_emit.so
ad918e3
%{_libdir}/%{libname}_reorganize.so
ad918e3
ad918e3
%changelog
Arnaldo Carvalho de Melo 70ff229
* Wed May 30 2012 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.10-1
Arnaldo Carvalho de Melo 70ff229
- New release
Arnaldo Carvalho de Melo 70ff229
Arnaldo Carvalho de Melo 70ff229
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9-2
Arnaldo Carvalho de Melo 70ff229
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
Arnaldo Carvalho de Melo 70ff229
Arnaldo Carvalho de Melo eaf9314
* Mon Feb 28 2011 * Arnaldo Carvalho de Melo <acme@redhat.com> - 1.9-1
Arnaldo Carvalho de Melo eaf9314
- New release
Arnaldo Carvalho de Melo eaf9314
098c0d8
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8-2
098c0d8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
098c0d8
88c3a80
* Fri Dec  4 2009 Apr 23 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.8-1
88c3a80
- New release
809b44e
df33e5f
* Fri Feb 13 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.7-2
df33e5f
- Own /usr/share/dwarves, fixes #473645 
df33e5f
df33e5f
* Fri Feb 13 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.7-1
df33e5f
- A CTF decoder based on work done by David S. Miller
df33e5f
- Handle DW_TAG_class_type,
df33e5f
- Add support for showing classes with a prefix
df33e5f
- Add support to DW_TAG_ptr_to_member_type
df33e5f
- Handle typedef definitions in functions
df33e5f
- Print the number of members in a struct/class
df33e5f
- Handle the empty base optimization trick (Zero sized C++ class)
df33e5f
- codiff detect changes in the prototype even when function size doesn't change
df33e5f
- pfunct: Implement --expand_types
df33e5f
- Reduce memory consumption by using a strings table
df33e5f
- Speed up struct search by name
df33e5f
- Several minor bug fixes and infrastructure improvements.
df33e5f
- Initial man page for pahole
df33e5f
3ba6b9b
* Mon Feb 11 2008 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.6-1
3ba6b9b
- c83d935a4fd561a3807f520c126c2a61ae1f4d83
3ba6b9b
- [DWARVES]: Use a hash table for the tags in a CU
3ba6b9b
1b81b07
* Thu Feb  7 2008 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.5-1
1b81b07
- c4e49add9e48ff08a8ba4187ea43d795af995136
1b81b07
- PAHOLE: Introduce --defined_in
1b81b07
- DWARVES: Another fix for DW_TAG_base_type entries without DW_AT_name
1b81b07
- PAHOLE: Cope with DW_TAG_basic_type entries without DW_AT_name
1b81b07
- CODIFF: Allow passing /dev/null as one of the files to compare
1b81b07
- DWARVES: Allow passing NULL as self to cu__find_
1b81b07
- DWARVES: Fixup usage messages
1b81b07
- DWARVES: Find holes in inner, nameless structs
1b81b07
- DWARVES: Adopt tag__follow_typedef from pahole
1b81b07
- DWARVES: Add some destructors: tag, cu, namespace
1b81b07
- CODIFF: Check if the objects are the same when we have build-id
1b81b07
- DWARVES: Introduce cu__same_build_id
1b81b07
- DWARVES_REORGANIZE: Proper tail padding fixup
1b81b07
- DWARVES: Don't search in empty structs
1b81b07
- DWARVES: Follow const and volatile tags to its ultimate types
1b81b07
- PAHOLE: Add a newline after the --class_dwarf_offset output
1b81b07
- PAHOLE: Expose type__find_first_biggest_size_base_type_member
1b81b07
- DWARVES: Introduce type__find_first_biggest_size_base_type_member
1b81b07
- PAHOLE: Account arrays properly when changing word-size
1b81b07
- PAHOLE: Follow typedefs too when resizing unions
1b81b07
- PAHOLE: Follow typedefs to find if they are resized structs/unions
1b81b07
- PAHOLE: Check if types of struct and union members were already resized
1b81b07
- DWARVES_REORGANIZE: Fixup class__fixup_alingment
1b81b07
- PAHOLE: Allow changing the architecture word-size
1b81b07
- DWARVES_REORGANIZE: Adopt class__add_offsets_from and class__fixup_alignment from ctracer
1b81b07
- DWARVES: build id support requires a recent elfutils package
1b81b07
1b81b07
* Sat Jan  5 2008 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.4-1
ad918e3
- 8e099cf5d1f204e9ea1a9c8c0f1a09a43458d9d3
ad918e3
- codiff fixes
ad918e3
ad918e3
* Sun Dec  9 2007 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.3-2
ad918e3
- c6c71398cd2481e219ea3ef63f32c6479ba4f08f
ad918e3
- SPEC file adjustments to follow http://fedoraproject.org/wiki/Packaging/cmake
ad918e3
ad918e3
* Sat Dec  8 2007 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.3-1
ad918e3
- c4ee21aa122f51f2601893b2118b7f7902d2f410
ad918e3
- Fixed bitfield byte offset handling, now there are no
ad918e3
  more BRAIN FART alerts on a x86_64 linux kernel and on
ad918e3
  an old openbsd kernel image.
ad918e3
ad918e3
* Thu Dec  6 2007 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.2-1
ad918e3
- 07e0974f2c3798acb8e9a2d06f6b2ece7a01c508
ad918e3
- Fix a patological bitfield case
ad918e3
ad918e3
* Thu Dec  6 2007 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.1-1
ad918e3
- 2c01420b51e889196b42a204910b46811ab22f1a
ad918e3
- ctracer now generates systemtap scripts
ad918e3
- Lots of other fixes, see git changelog.
ad918e3
ad918e3
* Tue May  8 2007 Arnaldo Carvalho de Melo <acme@redhat.com> - 1.0-1
ad918e3
- 161c6712f4ae1b7e2ea50df3a0d5c28310905cec
ad918e3
- handle --help, -? --usage on with_executable_option()
ad918e3
ad918e3
* Tue May  8 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- b8eb5eb214f3897ea6faa3272879baa8bf2573c0
ad918e3
- Fix cus__loadfl detection of --executable
ad918e3
ad918e3
* Sun May  6 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 05351ece16e5203717dd21a6fc1ad2e6ff87c203
ad918e3
- libdwarves_emit
ad918e3
ad918e3
* Tue Apr  3 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- f3c4f527f70053e39b402005107ead6cb10e0b4a
ad918e3
- Fix some --reorganize bugs
ad918e3
ad918e3
* Mon Apr  2 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 1ec66565a12ce7f197cd40e3901ed6be84935781
ad918e3
- --reorganize improvements
ad918e3
- --packable uses --reorganize code to show structs that can be packed by
ad918e3
  reorganization done with --reorganize.
ad918e3
ad918e3
* Fri Mar 30 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- fd3542317508d04e8178c5d391385d2aa50d6fb7
ad918e3
- Use libdwfl in all tools that handle just one file, codiff and ctracer
ad918e3
  still need work and are still using plain libdw.
ad918e3
ad918e3
* Sun Feb 25 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 3c148cd84b74b89663febdefab23356952906502
ad918e3
- _snprintf routines changed to _fprintf
ad918e3
- codiff shows diffs in number and total size of inline expansions
ad918e3
- codiff shows diffs in the number of lexblocks
ad918e3
- better alignment in the --expand_types case
ad918e3
- CMake improvements
ad918e3
ad918e3
* Fri Feb  2 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- d37f41df58c375412badf827e24dfc346cea2ff2
ad918e3
- ostra-cg
ad918e3
- relay/debugfs
ad918e3
- mini-structs
ad918e3
- ctracer2ostra
ad918e3
- All this in the Makefile
ad918e3
ad918e3
* Fri Feb  2 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- b7cad1782d683571ffb2601b429ab151bddad5d7
ad918e3
- pglobal, by Davi Arnaut
ad918e3
- pahole --show_reorg_steps
ad918e3
- Reorganize bitfields in pahole --reorganize
ad918e3
ad918e3
* Tue Jan 30 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 8e236f4ca37b8a3d2057f4ede5a14ab1fa99f73c
ad918e3
- x86-64 lib install fixes
ad918e3
ad918e3
* Tue Jan 30 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 4a4b75e75a6d7f34215d320cc4a9f669b6ba4075
ad918e3
- pahole --reorganize
ad918e3
ad918e3
* Mon Jan 29 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 2de67fcaf401ac1e20feca5fa88dfc63fbc4203e
ad918e3
- Type expansion!
ad918e3
ad918e3
* Sat Jan 27 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- 6bf2d2d7707b65e7ca21a13706d8d07824cd6f2f
ad918e3
- ctracer improvements, /usr/lib/ctracer/, etc
ad918e3
ad918e3
* Fri Jan 26 2007 Arnaldo Carvalho de Melo <acme@redhat.com>
ad918e3
- c49f2c963425d5c09c429370e10d9af3d7d7fe32
ad918e3
- Emit typedefs of typedef arrays
ad918e3
- Detect typedef loops
ad918e3
- Fix emission of arrays of structs, unions, etc
ad918e3
- use sysconf for the default cacheline size
ad918e3
ad918e3
* Wed Jan 18 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- fab0db03ea9046893ca110bb2b7d71b764f61033
ad918e3
- pdwtags added
ad918e3
ad918e3
* Wed Jan 17 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- e3786105c007a39ff3dbfb36a3037e786021e0c6
ad918e3
- First Fedora native build
ad918e3
- struct, enum, enum, void typedefs
ad918e3
ad918e3
* Sat Jan 13 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- 9a413e60a3875980d99817722bf019cba3a24573
ad918e3
- pahole --nr_methods, improvements in tag__print, better support for unions
ad918e3
ad918e3
* Fri Jan 12 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- a1f5422656a91568a8b4edbcebaae9c1837b5cbd
ad918e3
- Support a DW_TAG_reference_type
ad918e3
ad918e3
* Fri Jan 12 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- 0ad467a32187e1929c14054a0fc7326bc4d235c8 
ad918e3
- Added a description
ad918e3
ad918e3
* Thu Jan 11 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- new release with type not found asserts replaced by error messages
ad918e3
ad918e3
* Thu Jan 11 2007 Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
ad918e3
- package created