|
|
9fa3b3 |
%define libname libdwarves
|
|
|
9fa3b3 |
%define libver 1
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
Name: dwarves
|
|
|
828161 |
Version: 1.22
|
|
|
828161 |
Release: 1%{?dist}
|
|
|
9fa3b3 |
License: GPLv2
|
|
|
9fa3b3 |
Summary: Debugging Information Manipulation Tools (pahole & friends)
|
|
|
9fa3b3 |
URL: http://acmel.wordpress.com
|
|
|
9fa3b3 |
Source: http://fedorapeople.org/~acme/dwarves/%{name}-%{version}.tar.xz
|
|
|
9fa3b3 |
Requires: %{libname}%{libver} = %{version}-%{release}
|
|
|
9fa3b3 |
BuildRequires: gcc
|
|
|
9fa3b3 |
BuildRequires: cmake
|
|
|
9fa3b3 |
BuildRequires: zlib-devel
|
|
|
9fa3b3 |
BuildRequires: elfutils-devel >= 0.130
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%description
|
|
|
9fa3b3 |
dwarves is a set of tools that use the debugging information inserted in
|
|
|
9fa3b3 |
ELF binaries by compilers such as GCC, used by well known debuggers such as
|
|
|
9fa3b3 |
GDB, and more recent ones such as systemtap.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
Utilities in the dwarves suite include pahole, that can be used to find
|
|
|
9fa3b3 |
alignment holes in structs and classes in languages such as C, C++, but not
|
|
|
9fa3b3 |
limited to these.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
It also extracts other information such as CPU cacheline alignment, helping
|
|
|
9fa3b3 |
pack those structures to achieve more cache hits.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
These tools can also be used to encode and read the BTF type information format
|
|
|
9fa3b3 |
used with the Linux kernel bpf syscall, using 'pahole -J' and 'pahole -F btf'.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
A diff like tool, codiff can be used to compare the effects changes in source
|
|
|
9fa3b3 |
code generate on the resulting binaries.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
Another tool is pfunct, that can be used to find all sorts of information about
|
|
|
9fa3b3 |
functions, inlines, decisions made by the compiler about inlining, etc.
|
|
|
9fa3b3 |
|
|
|
139386 |
One example of pfunct usage is in the fullcircle tool, a shell that drivers
|
|
|
139386 |
pfunct to generate compileable code out of a .o file and then build it using
|
|
|
139386 |
gcc, with the same compiler flags, and then use codiff to make sure the
|
|
|
139386 |
original .o file and the new one generated from debug info produces the same
|
|
|
139386 |
debug info.
|
|
|
139386 |
|
|
|
139386 |
Pahole also can be used to use all this type information to pretty print raw data
|
|
|
139386 |
according to command line directions.
|
|
|
139386 |
|
|
|
139386 |
Headers can have its data format described from debugging info and offsets from
|
|
|
139386 |
it can be used to further format a number of records.
|
|
|
139386 |
|
|
|
139386 |
The btfdiff utility compares the output of pahole from BTF and DWARF to make
|
|
|
139386 |
sure they produce the same results.
|
|
|
139386 |
|
|
|
9fa3b3 |
%package -n %{libname}%{libver}
|
|
|
9fa3b3 |
Summary: Debugging information processing library
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%description -n %{libname}%{libver}
|
|
|
9fa3b3 |
Debugging information processing library.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%package -n %{libname}%{libver}-devel
|
|
|
9fa3b3 |
Summary: Debugging information library development files
|
|
|
9fa3b3 |
Requires: %{libname}%{libver} = %{version}-%{release}
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%description -n %{libname}%{libver}-devel
|
|
|
9fa3b3 |
Debugging information processing library development files.
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%prep
|
|
|
139386 |
%setup -q
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%build
|
|
|
139386 |
%cmake -DCMAKE_BUILD_TYPE=Release .
|
|
|
9fa3b3 |
make VERBOSE=1 %{?_smp_mflags}
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%install
|
|
|
9fa3b3 |
rm -Rf %{buildroot}
|
|
|
9fa3b3 |
make install DESTDIR=%{buildroot}
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%ldconfig_scriptlets -n %{libname}%{libver}
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%files
|
|
|
9fa3b3 |
%doc README.ctracer
|
|
|
9fa3b3 |
%doc README.btf
|
|
|
139386 |
%doc changes-v1.19
|
|
|
9fa3b3 |
%doc NEWS
|
|
|
9fa3b3 |
%{_bindir}/btfdiff
|
|
|
9fa3b3 |
%{_bindir}/codiff
|
|
|
9fa3b3 |
%{_bindir}/ctracer
|
|
|
9fa3b3 |
%{_bindir}/dtagnames
|
|
|
9fa3b3 |
%{_bindir}/fullcircle
|
|
|
9fa3b3 |
%{_bindir}/pahole
|
|
|
9fa3b3 |
%{_bindir}/pdwtags
|
|
|
9fa3b3 |
%{_bindir}/pfunct
|
|
|
9fa3b3 |
%{_bindir}/pglobal
|
|
|
9fa3b3 |
%{_bindir}/prefcnt
|
|
|
9fa3b3 |
%{_bindir}/scncopy
|
|
|
9fa3b3 |
%{_bindir}/syscse
|
|
|
9fa3b3 |
%{_bindir}/ostra-cg
|
|
|
9fa3b3 |
%dir %{_datadir}/dwarves/
|
|
|
9fa3b3 |
%dir %{_datadir}/dwarves/runtime/
|
|
|
9fa3b3 |
%dir %{_datadir}/dwarves/runtime/python/
|
|
|
9fa3b3 |
%defattr(0644,root,root,0755)
|
|
|
9fa3b3 |
%{_mandir}/man1/pahole.1*
|
|
|
9fa3b3 |
%{_datadir}/dwarves/runtime/Makefile
|
|
|
9fa3b3 |
%{_datadir}/dwarves/runtime/linux.blacklist.cu
|
|
|
9fa3b3 |
%{_datadir}/dwarves/runtime/ctracer_relay.c
|
|
|
9fa3b3 |
%{_datadir}/dwarves/runtime/ctracer_relay.h
|
|
|
9fa3b3 |
%attr(0755,root,root) %{_datadir}/dwarves/runtime/python/ostra.py*
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%files -n %{libname}%{libver}
|
|
|
9fa3b3 |
%{_libdir}/%{libname}.so.*
|
|
|
9fa3b3 |
%{_libdir}/%{libname}_emit.so.*
|
|
|
9fa3b3 |
%{_libdir}/%{libname}_reorganize.so.*
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%files -n %{libname}%{libver}-devel
|
|
|
9fa3b3 |
%doc MANIFEST README
|
|
|
9fa3b3 |
%{_includedir}/dwarves/btf_encoder.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/config.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/ctf.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/dutil.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/dwarves.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/dwarves_emit.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/dwarves_reorganize.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/elfcreator.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/elf_symtab.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/gobuffer.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/hash.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/libctf.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/list.h
|
|
|
9fa3b3 |
%{_includedir}/dwarves/rbtree.h
|
|
|
9fa3b3 |
%{_libdir}/%{libname}.so
|
|
|
9fa3b3 |
%{_libdir}/%{libname}_emit.so
|
|
|
9fa3b3 |
%{_libdir}/%{libname}_reorganize.so
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
%changelog
|
|
|
828161 |
* Wed Oct 6 2021 Jiri Olsa <jolsa@redhat.com> - 1.22-1
|
|
|
828161 |
- moving to v1.22 version
|
|
|
828161 |
- Resolves: rhbz#2010429
|
|
|
828161 |
|
|
|
76b15e |
* Fri Apr 23 2021 Jiri Olsa <jolsa@redhat.com> - 1.21-0
|
|
|
76b15e |
- moving to v1.21 version
|
|
|
76b15e |
|
|
|
0f2c85 |
* Tue May 26 2020 Jiri Olsa <jolsa@redhat.com> - 1.17-1
|
|
|
0f2c85 |
- moving to v1.17 version
|
|
|
0f2c85 |
|
|
|
9fa3b3 |
* Wed Nov 06 2019 Jiri Olsa <jolsa@redhat.com> - 1.15-5
|
|
|
9fa3b3 |
- Add libdwarves version dependency to dwarves package
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
* Mon Nov 04 2019 Jiri Olsa <jolsa@redhat.com> - 1.15-4
|
|
|
9fa3b3 |
- CI rebuild
|
|
|
9fa3b3 |
|
|
|
9fa3b3 |
* Wed Sep 25 2019 Jiri Olsa <jolsa@redhat.com> - 1.15-1
|
|
|
9fa3b3 |
- Initial build
|