Blame SPECS/dwarves.spec

9fa3b3
%define libname libdwarves
9fa3b3
%define libver 1
9fa3b3
9fa3b3
Name: dwarves
139386
Version: 1.19
0f2c85
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_encoder.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/libbtf.h
9fa3b3
%{_includedir}/dwarves/libctf.h
9fa3b3
%{_includedir}/dwarves/list.h
9fa3b3
%{_includedir}/dwarves/rbtree.h
139386
%{_includedir}/dwarves/pahole_strings.h
9fa3b3
%{_libdir}/%{libname}.so
9fa3b3
%{_libdir}/%{libname}_emit.so
9fa3b3
%{_libdir}/%{libname}_reorganize.so
9fa3b3
9fa3b3
%changelog
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