Go to file
Arnaldo Carvalho de Melo 3e1c7a2077 pahole: Introduce --sort
To ask for sorting output, initially by name.

This is needed in 'btfdiff' to diff the output of 'pahole -F dwarf
--jobs N', where N threads will go on consuming DWARF compile units and
and pretty printing them, producing a non deterministic output.

So we need to sort the output for both BTF and DWARF, and then diff
them.

This is still not enough for some cases where different types have the
same name, things like "usb_priv" that exists in multiple DWARF compile
units, the first processed is "winning", i.e. being the only one
considered.

I have to look how BTF handles this to adopt a similar algorithm and
keep btfdiff usable as a regression test for the BTF and DWARF loader
and the BTF encoder.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2021-08-12 09:41:13 -03:00
cmake/modules cmake: libebl was merged into libdw 2020-02-03 08:42:13 +01:00
lib libbpf: Fixup patch to allow to use packaged version 2021-06-13 10:22:21 -03:00
man-pages pahole: Introduce --sort 2021-08-12 09:41:13 -03:00
ostra ostra: Initial python3 conversion 2019-04-23 12:02:22 -03:00
rpm/SPECS core: Remove strings.c, unused 2021-08-12 09:41:11 -03:00
.gitignore pahole: Add build dir, config.h to .gitignore 2019-02-11 12:55:46 -03:00
.gitmodules pahole: add libbpf as submodule under lib/bpf 2019-02-11 12:56:40 -03:00
CMakeLists.txt core: Remove strings.c, unused 2021-08-12 09:41:11 -03:00
COPYING [LICENSE]: Add COPYING file and add missing license info on some files 2007-12-17 14:15:42 -02:00
MANIFEST btf_encoder: Move libbtf.c to btf_encoder.c, the only user of its functions 2021-06-09 13:34:15 -03:00
NEWS pahole: Prep 1.21 2021-04-09 19:39:15 -03:00
README README: Add documentation for -DBUILD_SHARED_LIBS 2021-06-10 14:31:44 -03:00
README.DEBUG README.DEBUG: Add an extra step to make the instructions cut'n'exec 2017-12-14 14:15:54 -03:00
README.btf v1.13: New release 2019-04-16 16:13:19 -03:00
README.cross README: Add instructions to do a cross build 2020-08-17 09:52:02 -03:00
README.ctracer ctracer: update README.ctracer, f9 has the dwarves 2008-10-29 08:54:53 -02:00
README.tarball docs: Add command line to generate tarball with a prefix 2020-03-12 16:55:15 -03:00
btf_encoder.c core: variable__name() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
btf_encoder.h btf_encoder: Pass detached_filename to the constructor 2021-06-14 18:53:35 -03:00
btf_loader.c core: ftype__delete() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
btfdiff btfdiff: Support diffing DWARF vs detached BTF 2021-06-08 10:08:22 -03:00
changes-v1.13 v1.13: New release 2019-04-16 16:13:19 -03:00
changes-v1.16 dwarves: Prep v1.16 2019-12-16 11:43:53 -03:00
changes-v1.17 dwarves: Prep v1.17 2020-03-13 16:36:02 -03:00
changes-v1.18 dwarves: Prep v1.18 2020-10-02 17:29:59 -03:00
changes-v1.19 dwarves: Prep v1.19 2020-11-23 09:52:44 -03:00
changes-v1.20 pahole: Prep 1.20 2021-02-03 21:45:01 -03:00
changes-v1.21 pahole: Prep 1.21 2021-04-09 19:39:15 -03:00
codiff.c pahole: function__name() doesn't need a 'struct cu *' argument 2021-08-12 09:39:46 -03:00
config.h.cmake [DWARVES] Fixes a FIXME relating to a missing elf (libdw) symbol check. 2008-02-12 21:08:49 -02:00
ctf.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
ctf_encoder.c strings: use BTF's string APIs for strings management 2020-10-20 17:17:51 -03:00
ctf_encoder.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
ctf_loader.c core: base_type__name() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
ctfdwdiff ctfdwdiff: Don't ask for variables and inline expansions in pfunct 2009-03-31 19:21:46 -03:00
ctracer.c core: class__clone() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
dtagnames.c headers: Rebame __unused to __maybe_unused to avoid clashes with system headers 2021-06-13 10:25:35 -03:00
dutil.c dutil: Make handling of NULL by destructos consistent 2021-05-27 11:00:18 -03:00
dutil.h headers: Rebame __unused to __maybe_unused to avoid clashes with system headers 2021-06-13 10:25:35 -03:00
dwarf_loader.c dwarf_loader: Defer freeing libdw Dwfl handler 2021-08-12 09:41:13 -03:00
dwarves.c core: Provide a way to store per loader info in cus and an exit function 2021-08-12 09:41:13 -03:00
dwarves.h core: Provide a way to store per loader info in cus and an exit function 2021-08-12 09:41:13 -03:00
dwarves_emit.c core: enumeration__emit_definitions() doesn't need a 'cu' argument 2021-08-12 09:39:46 -03:00
dwarves_emit.h emit: type__emit_fwd_decl() isn't used outside emit.c, make it static 2021-08-12 09:39:46 -03:00
dwarves_fprintf.c fprintf: class__vtable_fprintf() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
dwarves_reorganize.c core: base_type__name() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
dwarves_reorganize.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
elf_symtab.c elf_symtab: Use zfree() where applicable 2021-05-27 11:00:18 -03:00
elf_symtab.h bpf_encoder: Translate SHN_XINDEX in symbol's st_shndx values 2021-01-26 22:36:36 -03:00
elfcreator.c elfcreator: Address initialization warning emitted by 'gcc -O6' 2019-12-16 11:19:47 -03:00
elfcreator.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
fullcircle v1.13: New release 2019-04-16 16:13:19 -03:00
gobuffer.c gobuffer: Use zfree() and make delete accept NULL, like free() 2021-05-27 11:00:18 -03:00
gobuffer.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
hash.h dwarf_loader: Use a better hashing function, from libbpf 2021-02-12 09:35:53 -03:00
libctf.c core: Remove strings.c, unused 2021-08-12 09:41:11 -03:00
libctf.h strings: use BTF's string APIs for strings management 2020-10-20 17:17:51 -03:00
list.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
pahole.c pahole: Introduce --sort 2021-08-12 09:41:13 -03:00
pdwtags.c core: base_type__name() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
pfunct.c pahole: function__name() doesn't need a 'struct cu *' argument 2021-08-12 09:39:46 -03:00
pglobal.c core: variable__name() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00
prefcnt.c headers: Rebame __unused to __maybe_unused to avoid clashes with system headers 2021-06-13 10:25:35 -03:00
rbtree.c Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
rbtree.h Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
regtest regtest: Accept --diff instad of plain 'diff' as long option 2012-05-14 19:36:58 -03:00
scncopy.c Adopt SPDX-License-Identifier 2019-01-18 15:41:48 -03:00
syscse.c core: base_type__name() doesn't need a 'cu' arg 2021-08-12 09:41:13 -03:00

README

Build instructions:

1. install cmake
2. mkdir build
3. cd build
4. cmake -D__LIB=lib ..
5. make install

cmake Options:
  -DBUILD_SHARED_LIBS
    By default SHARED libraries are created and applications are linked to it.
    Use -DBUILD_SHARED_LIBS=OFF while invoking cmake to create STATIC libraries
    and link applications to it.

    Ex. cmake -D__LIB=lib -DBUILD_SHARED_LIBS=OFF ..

  -DCMAKE_INSTALL_PREFIX
    Default is to install to /usr/local, use -DCMAKE_INSTALL_PREFIX=
    when invoking cmake to specify another install location.

Known to work scenarios:

Mandriva Cooker:

cmake 2.4.5-1mdv2007.1
libelfutils1-devel 0.123-1mdv2007.1

Debian Unstable:

cmake 2.4.5-1
libdw-dev 0.123-2

Fedora Core 6:

cmake 2.4.5-2.fc6
elfutils-devel 0.126-1.fc6