v1.15

Thu Jun 27 2019

3ed9a67967cf fprintf: Avoid null dereference with NULL configs
568dae4bd498 printf: Fixup printing "const" early with "const void"
68f261d8dfff fprintf: Fix recursively printing named structs in --expand_types
139a3b337381 ostra: Initial python3 conversion
01276a7e8966 spec: Sync spec with fedora's
9f1f0628b9ad rpm: Add missing devel headers
989dc3f1ba0d cmake: Install missing devel headers

v1.13

Tue Apr 16 2019

See changes-v1.13 for a more verbose description of the changes.

0fb727166a0e pfunct: Strip inlines in the code generated for --compile
7b967744db7b emit: Emit the types for inline structs defined in pointer members
30526e2848db fprintf: Print relative offsets for inner pointer structs
cfa377c238f8 emit: Do not emit a forward declararion to a nameless struct
cf459ca16fb2 fprintf: Pretty print struct members that are pointers to nameless structs
09ed2e78befe pfunct: Emit definitions for pointers inside pointer to function args
e9fc2f647026 fullcircle: Check that we found the CFLAGS
05921c47f557 emit: Handle typedefs that are a pointer to typedefs
87af9839bf63 fullcircle: Try building from pfunct --compile and check types
c7fd9cc1fe97 pfunct: Fixup more return types
56c50b8dbe9b emit: Make find_fwd_decl a bit more robust
2bcb01fc2f9d fprintf: Handle single zero sized array member structs
0987266cd9e2 fprintf: Deal with zero sized arrays in the midle of a union
1101337a7450 fprintf: Deal with zero sized arrays in the middle of a struct
13aa13eb0ca4 fprintf: Don't reuse 'type' in multiple scopes in the same function
c8fc6f5a7a46 core: Use unnatural alignment of struct embedded in another to infer __packed__
6f0f9a881589 fprintf: Fixup multi-dimensional zero sized arrays const handling
9a4d71930467 fprintf: Allow suppressing the inferred __attribute__((__packed__))
ec935ee422b0 fprintf: Allow suppressing the output of force paddings at the end of structs
8471736f3c6c core: Cope with zero sized types when looking for natural alignment
986a3b58a869 fprintf: Only add bitfield forced paddings when alignment info available
49c27bdd6663 core: Allow the loaders to advertise features they have
dc6b9437a3a0 emit: Handle structs with DW_AT_alignment=1 meaning __packed__
f78633cfb949 core: Infer __packed__ for union struct members
75c52de9c6df core: Move packed_attribute_inferred from 'class' to 'type' class
1bb4527220f4 fprintf: Fixup const pointers
dc3d44196103 core: Improve the natural alignment calculation
ac32e5e908ba codiff: Fix comparision of multi-cu against single-cu files
f2641ce169d6 core: Take arrays into account when inferring if a struct is packed
85c99369631a fprintf: Do not add explicit padding when struct has __aligned__ attr
b5e8fab596d3 emit: Cover void ** as a function parameter
28a3bc7addad fprintf: Support packed enums
f77a442f09e3 fprintf: Do not print the __aligned__ attribute if asked
ea583dac52f0 fprintf: Print zero sized flat arrays as [], not [0]
f909f13dd724 fprintf: Fixup handling of unnamed bitfields
3247a777dcfc core: Infer if a struct is packed by the offsets/natural alignments
13e5b9fc00ee fprintf: Add unnamed bitfield padding at the end to rebuild original type
ccd67bdb205b fprintf: Print "const" for class members more early, in type__fprintf()
b42d77b0bbda fprintf: Print __attribute__((__aligned__(N))) for structs/classes
1c9c1d6bbd45 dwarf_loader: Store DW_AT_alignment if available in DW_TAG_{structure,union,class}_type
41c55858daf4 codiff: Add --quiet option
a104eb1ea11d fprintf: Notice explicit bitfield alignment modifications
75f32a24c7c7 codiff: Improve the comparision of anonymous struct members
6b1e43f2c1ac codiff: When comparing against a file with just one CU don't bother finding by name
15a754f224f7 core: Add nr_entries member to 'struct cus'
99750f244cb8 pfunct: Generate a valid return type for the --compile bodies
881aabd6fc22 reorganize: Introduce class__for_each_member_from_safe()
1b2e3389f304 reorganize: Introduce class__for_each_member_reverse()
10fef2916dce reorganize: Introduce class__for_each_member_continue()
e7a56ee8cc69 reorganize: Introduce class__for_each_member_from()
9a79bb6ced23 tag: Introduce tag__is_pointer_to()
45ad54594442 tag: Introduce tag__is_pointer()
89ce57a02e3a pdwtags: Find holes in structs
ce6f393bc9ea fprintf: Fixup the printing of const parameters
7aec7dd6c29c pfunct: Do not reconstruct external functions
163b873f81c8 pfunct: Do not reconstruct inline expansions of functions
ea83b780eca0 pfunct: Handle unnamed struct typedefs
e7ebc05d12e1 emit: Unwind the definitions for typedefs in type__emit_definitions()
093135b0bfd5 pfunct: Do not emit a type multiple times
3ce2c5216612 pfunct: Ask for generating compilable output that generates DWARF for types
e7a786540d83 pfunct: Make --expand_types/-b without -f expand types for all functions
9b2eadf97b44 pfunct: Follow const, restrict, volatile in --expand_types
f3f86f2f89b0 pfunct: Reconstruct function return types for --expand_types
a7d9c58cb81a fprintf: Add missing closing parens to the align attribute
d83d9f578fa0 dwarf_loader: Handle DW_TAG_label in inline expansions
73e545b144b4 dwarf_loader: Handle unsupported_tag in die__process_inline_expansion
fe590758cb3f class__find_holes: Zero out bit_hole/hole on member
863c2af6e9d7 reorganize: Disable the bitfield coalescing/moving steps
b95961db697a fprintf: Show statistics about holes due to forced alignments
ec772f21f681 fprintf: Show the number of forced alignments in a class
52d1c75ea437 btfdiff: Use --suppress_aligned_attribute with -F dwarf
6cd6a6bd8787 dwarves_fprintf: Allow suppressing the __attribute__((__aligned__(N))
f31ea292e3cb dwarf_loader: Store the DW_AT_alignment if available
c002873c4479 dwarves_fprintf: Move invariant printing of ; to outside if block
8ce85a1ad7f0 reorganize: Use class__find_holes() to recalculate holes
5d1c4029bd45 dwarves: Fix classification of byte/bit hole for aligned bitfield
78c110a7ea24 dwarves: Revert semantics of member bit/byte hole
b56fed297e5f dwarves_fprintf: Count bitfield member sizes separately
c0fdc5e685e9 dwarf_loader: Use DWARF recommended uniform bit offset scheme
5104d1bef384 loaders: Record CU's endianness in dwarf/btf/ctf loaders
975757bc8867 dwarves: Use bit sizes and bit/byte hole info in __class__fprintf
1838d3d7623e dwarves: Revamp bit/byte holes detection logic
03d9b6ebcac7 dwarf_loader: Fix bitfield fixup logic for DWARF
4abc59553918 btf_loader: Adjust negative bitfield offsets early on
41cf0e3cba0c dwarf_loader: Don't recode enums and use real enum size in calculations
55c96aaed8ce loaders: Strip away volatile/const/restrict when fixing bitfields
7005757fd573 libbpf: Sync in latest libbpf sources
69970fc77ec5 pahole: Filter out unions when looking for packable structs
fa963e1a8698 dwarves_fprintf: Print the bit_offset for inline enum bitfield class members
bb8350acf52f dwarves: Switch type_id_t from uint16_t to uint32_t
5375d06faf26 dwarves: Introduce type_id_t for use with the type IDs
f601f6725890 libctf: The type_ids returned are uint32_t fixup where it was uint16_t
c9b2ef034f89 dwarf: Add cu__add_tag_with_id() to stop using id == -1 to allocate id
762e7b58f447 dwarves: Change ptr_table__add() signature to allow for uint32_t returns
079e6890b788 dwarf_loader: Mark tag__recode_dwarf_bitfield() static
3526ebebd3ab pahole: Use 32-bit integers for type ID iterations within CU
3bd8da5202e4 libbpf: update reference to bring in btf_dedup fixes
a9afcc65fc8f btf_encoder: Don't special case packed enums
8f4f280163b7 btf_loader: Simplify fixup code by relying on BTF data more
be5173b4df0f dwarves: Fixup sizeof(long double) in bits in base_type_name_to_size table
5081ed507095 dwarves: Add _Float128 base_type
d52c9f9b9455 dwarf_loader: Fixup bitfield entry with same number of bits as its base_type
6586e423d4fa btf_loader: Fix bitfield fixup code
7daa4300d230 pahole: Complete list of base type names
6bcf0bd70305 btfdiff: Support specifying custom pahole location
88028b5d0c32 btfdiff: Use --show_private_classes with DWARF
e6c59bd11d3d libbpf: Build as PIC and statically link into libdwarves
cf4f3e282d64 cmake: Bump miminum required version to use OBJECT feature
5148be53dc65 btfdiff: Rename tmp files to contain the format used
dd3a7d3ab3e8 btf_encoder: run BTF deduplication before writing out to ELF
54106025cd14 libbtf: Fixup temp filename to .btf, not .btfe
e6dfd10bcbf3 libbpf: Build as shared lib
c234b6ca6e55 libbpf: Pull latest libbpf
fe4e1f799c55 btf_elf: Rename btf_elf__free() to btf_elf__delete()
6780c4334d55 btf: Rename 'struct btf' to 'struct btf_elf'
ca86e9416b8b pahole: use btf.h directly from libbpf
21507cd3e97b pahole: add libbpf as submodule under lib/bpf
c25ada500ddc pahole: Add build dir, config.h to .gitignore
a58c746c4c7e Fixup copyright notices for BTF files authored by Facebook engineers
e714d2eaa150 Adopt SPDX-License-Identifier
c86960dce55d btf_loader: We can set class_member->type_offset earlier
278b64c3eee0 btfdiff: Use diff's -p option to show the struct/union
1182664d6aa6 dwarves_fprintf: Handle negative bit_offsets in packed structs with bitfields
b0cf845e02c6 dwarves: Change type of bitfield_offset from uint8_t to int8_t
06e364bc62e7 btfdiff: Add utility to compare pahole output produced from DWARF and BTF
b79db4cab41c dwarves: add __int128 types in base_type_name_to_size
de3459cc0ebe btf_loader: BTF encodes the size of enums as bytes not bits
693347f8def7 btf_encoder: Fix void handling in FUNC_PROTO.
2d0b70664f3e dwarves_fprintf: Separate basic type stats into separate type__fprintf() method
18f5910f96e0 dwarves: Add type to tag helper
f2092f56586a btf: recognize BTF_KIND_FUNC in btf_loader
11766614096c btf: Fix kind_flag usage in btf_loader
68b93e6858ae dutil: Add missing string.h header include
851ef335e328 dutil: Drop 'noreturn' attribute for ____ilog2_NaN()
ab0cb33e54e8 btf_loader: Fixup class_member->bit_offset for !big_endian files
b24718fe27d3 dwarves: Fix documentation for class_memer->bitfield_size
3ffe5ba93b63 pahole: Do not apply 'struct class' filters to 'struct type'
da18bb340bee dwarves: Check if the tag is a 'struct class' in class__find_holes()
2a82d593be81 btf: Add kind_flag support for btf_loader
472256d3c57b btf_loader: Introduce a loader for the BTF format
93d6d0016523 dwarves: No need to print the "signed ", the name has it already
0a9bac9a3e8e dwarves: Relookup when searching for signed base types
a2cdc6c2a0a3 dutil: Adopt strstart() from the linux perf tools sources
3aa3fd506e6c btf: add func_proto support
8630ce404287 btf: fix struct/union/fwd types with kind_flag
65bd17abc72c btf: Allow multiple cu's in dwarf->btf conversion
d843945ba514 pahole: Search for unions as well with '-C'
da632a36862c dwarves: Introduce {cu,cus}__find_struct_or_union_by_name() methods
31664d60ad41 pahole: Show tagged enums as well when no class is specified
b18354f64cc2 btf: Generate correct struct bitfield member types
70ef8c7f07ff dwarves_fprintf: Set conf.cachelinep in union__fprintf() too
bfdea37668c6 dwarves_fprintf: Print the scope of variables
465110ec99d3 dwarves: Add the DWARF location to struct variable
c65f2cf4361e dwarves: Rename variable->location to ->scope
0d2511fd1d8e btf: Fix bitfield encoding
92417082aad3 MANIFEST: Add missing COPYING file
eb6bd05766f5 dwarf_loader: Process DW_AT_count in DW_TAG_subrange_type

v1.12

Thu Aug 16 2018

1ca2e351dfa1 README.btf: Add section on validating the .BTF section via the kernel
9eda5e8163ce README.btf: No need to use 'llvm.opts = -mattr=dwarfris' with elfutils >= 0.173
7818af53f64a dwarves: Add a README.btf file with steps to test the BTF encoder
f727c22191d0 dwarf_loader: Initial support for DW_TAG_partial_unit
e975ff247aa8 dwarves_fprintf: Print cacheline boundaries in multiple union members
68645f7facc2 btf: Add BTF support
81466af0d4f8 pahole: Show the file where a struct was used
2dd87be78bb2 dwarves_fprintf: Show offsets at union members
66cf3983e1ac README.DEBUG: Add an extra step to make the instructions cut'n'exec
2a092d61453c dwarves: Fix cus__load_files() success return value
02a456f5f54c pahole: Search and use running kernel vmlinux when no file is passed
5f057919a0c0 man-pages: Add entry for --hex

v1.11

Wed Jun 2017

5a57eb074170 man-pages: Update URL to the dwarves paper
b52386d041fa dwarves_fprintf: Find holes when expanding types
103e89bb257d dwarves_fprintf: Find holes on structs embedded in other structs
ab97c07a7ebe dwarves_fprintf: Fixup cacheline boundary printing on expanded structs
046ad67af383 dwarves_fprintf: Shorten class__fprintf() sig
44130bf70e1c dwarves: Update e-mail address
327757975b94 dwarf_loader: Add URL for template tags description
f4d5e21fd1b2 dwarf_loader: Tidy up template tags usage
e12bf9999944 dwarf_loader: Do not hash unsupported tags
3afcfbec9e08 dwarf_loader: Add DW_TAG_GNU_formal_parameter_pack stub in process_function
55d9b20dbaf6 dwarf_loader: Ignore DW_TAG_dwarf_procedure when processing functions
45618c7ec122 dwarf_loader: Initial support for DW_TAG_unspecified_type
658a238b9890 dwarf_loader: Stop emitting warnings about DW_TAG_call_site
0fbb39291d59 dwarf_loader: Add support for DW_TAG_restrict_type
9df42c68265d dwarves: Initial support for rvalue_reference_type
8af5ccd86d21 dwarves: Use cus__fprintf_load_files_err() in the remaining tools
10515a7c4db7 dwarves: Introduce cus__fprintf_load_files_err()
0e6463635082 pahole: Show more informative message when errno is properly set on error
2566cc2c8715 pdwtags: Show proper error messages for files it can't handle
9f3f67e78679 dwarves: Fix cus__load_files() error return
ae3a2720c3d3 dutil: Add ____ilog2_NaN declaration to silence compiler warning
0b81b5ad4743 Update version in CMakeLists.txt
79536f4f9587 cmake: Use INTERFACE_LINK_LIBRARIES
1decb1bc4a41 dwarf_loader: Check cu__find_type_by_ref result
956343d05a41 Add instructions on how to build with debug info
e71353c3fa0a dwarf_loader: Ignore DW_TAG_dwarf_procedure
189695907242 dwarves_fprintf: Add the missing GNU_ suffix to DWARF_TAG_ created by the GNU project
d973b1d5daf0 dwarf_fprintf: Handle DW_TAG_GNU_call_site{_parameter}
c23eab4b1253 dwarf_loader: Print unknown tags as an hex number
943a0de0679a dwarves_fprintf: DW_TAG_mutable_type doesn't exist.
a8e562a15767 dwarf_loader: Use obstack_zalloc when allocating tag
fd3838ae9aa3 dwarves: Stop using 'self'
5ecf1aab9e10 dwarf_loader: Support DW_FORM_data{4,8} for reading class member offsets
c4ccdd5ae63b dwarves_reorganize: Fix member type fixup
e31fda3063e3 dwarves_reorganize: Fixup calculation of bytes needed for bitfield
1e461ec7e0e8 dwarves_fprintf: Fix printf types on 64bit linux
222f0067a9c3 dwarves_fprintf: Don't ignore virtual data members
e512e3f9b36b dwarves: Update git url
8c6378fd8834 dwarves: Support static class data members
a54515fa6ee4 dwarves: Stop using 'self'
6035b0d91f19 rpm: Add missing BuildRequires: zlib-devel
be7b691756ff dwarf_loader: Don't stop processing after finding unsupported tag

v1.10

Wed May 30 2012

. Initial DWARF4 support, by Tom Tromey

. Add stubs for some new GNU Tags

. Fix build on older systems

. Fix a crash when pahole is called with -R -S, from Tal Kelrich

v1.9:

Ignore DW_TAG_template_{type,value}_parameter, fixing a bug reported at:

https://bugzilla.redhat.com/show_bug.cgi?id=654471

More work is needed to properly support these tags.

-----------------------------------------

After a long time without a new release because I was trying to get the CTF
support completed, and due to the very strong gravity force in the Linux kernel
perf tools, here it is 1.8, with lots of performance improvements, bug fixes
and changes to better use these tools in scripts.

For full details please take a look at the git changesets, repo available at:

http://git.kernel.org/cgit/devel/pahole/pahole.git

- Arnaldo

pahole:

. Allow list of structs to be passed to pahole.

	E.g.: 'pahole -C str_node,strings'

  Suggested by Zack Weinberg <zweinberg@mozilla.com>, for scripting.

. Introduce --hex to print offsets and sizes in hexadecimal

codiff:

. Improve detection of removal and addition of members in structs

. Detect changes in padding and the number of holes/bit_holes

pfunct:

. --no_parm_names

    Because CTF doesn't encodes the names of the parameters and I want to
    test the upcoming CTF function section code in ctftwdiff.

. pfunct --addr

    Using an rbtree to find in which function the given addr is.

libdwarves:

. Greatly reduce the data structures footprint and lookup by recoding
  the IDs as short integers, that was done to facilitate support for CTF
  but benefited the core libraries greatly.

. Handle GCC support for vector instructions

    So now it recognizes, as printed by pdwtags:

    908 typedef int __m64 __attribute__ ((__vector_size__ (8))); size: 8
    909 int         array __attribute__ ((__vector_size__ (8))); size: 8
    910 int         array __attribute__ ((__vector_size__ (4))); size: 4
    911 short int   array __attribute__ ((__vector_size__ (2))); size: 2
    912 char        array __attribute__ ((__vector_size__ (1))); size: 1

. Destructors were added so that no leaks are left if this library is to
  be used in other tools that don't end the program when done using this lib.

. Allow the tools to pass a callback that is used after loading each object
  file (CU/Compile Unit), so that we can more quickly find tags and stop
  the processing sooner, or at least delete the CU if it doesn't have anything
  needed by the tool. This _greatly_ speeded up most of the tools.

. Tools now can pass a debug format "path", specifying the order it wants to
  try, so that if a file have both DWARF and CTF, specifying 'ctf,dwarf' will
  use the CTF info.

. Now the formatting routines are in a separate file, dwarves_fprintf.c. This
  was done for organizational purposes but also to pave the way for multiple
  formatting backends, so that we can print, for instance, in CSV the structs,
  for easier scripting like done by several folks out there.

. Handle volatile typedef bitfields, like:

    struct _GClosure {
            volatile guint ref_count:15;    /* 0:17  4 */
            volatile guint meta_marshal:1;  /* 0:16  4 */
            volatile guint n_guards:1;      /* 0:15  4 */

. Load java 'interfaces' as a struct/class.

. Fix buffer expansion bug, detected thanks to boost that provided things like:

        virtual int undefine(class
    grammar_helper<boost::spirit::grammar<boost::detail::graph::dot_skipper,
    boost::spirit::parser_context<boost::spirit::nil, class
    grammar<boost::detail::graph::dot_skipper,
    boost::spirit::parser_context<boost::spirit::nil_t> > *); /*
    linkage=_ZN5boost6spirit4impl14grammar_helperINS0_7grammarINS_6detail5graph11dot_skipperENS0_14parser_contextINS0_5nil_tEEEEES6_NS0_7scannerINS0_10multi_passISt16istream_i
    */

. Allow optional addr information loading, speeding up some apps that don't
  use such addresses (or in modes where addrs aren't used) such as pahole.

. Use a obstacks, speeding up apps as measured with the perf tools.

. Support zero sized arrays in the middle of a struct.

. Fix padding calculation in the reorganize routines.

. Fix bitfield demotion in the reorganize routines.

. Support "using" pointing to data members (C++).

. Properly support pointers to const, reported by Jan Engelhardt <jengelh@medozas.de>:

. Support more compact DW_AT_data_member_location form, pointed out by Mark
  Wielaard <mjw@redhat.com> and reported by Mike Snitzer <snitzer@redhat.com>

Experimental CTF support:

libdwarves was reorganized so that it can support multiple debugging formats,
with the first one being supported being the Compact C Type Format that comes
from the OpenSolaris world.

David S. Miller contributed an initial CTF decoder and from there I wrote an
encoder.

To test this a regression testing harness (regtest in the sources) that will
take files with DWARF info and from there encode its contents in CTF in another
ELF section in the same file (.SUN_ctf).  Then it will decode both the DWARF
and CTF sections and compare the results for pahole running with some new
flags that cope with some subtleties in the way CTF encodes things.

  --flat_arrays

	We have just one dimension in CTF, with the total number of entries,
	in DWARF we can express this, but not in CTF:

	__u8            addr[0][6];    /*   4  0 */

	So --flat_arrays will show it as:

	__u8            addr[0];       /*   4  0 */

  --show_private_classes
  --fixup_silly_bitfields

	To cope with things like 'char foo:8' that since CTF has only the
	number of bits, can't be expressed as we don't know if it is a
	bitfield or just a char without the ':8' suffix.

  --first_obj_only

	Look only at the first object file in a file with multiple object
	files, like vmlinux. This is because the CTF support is not complete yet,
	needing the merging of types in multiple object files to be done.

  --classes_as_structs

	CTF has only a type for structs, not for classes like DWARF (DW_TAG_class_type
	is not present in CTF), so print them all as 'struct'.

Running with the above limitations produce just a few mismatches, related to
packed structs and enumerations and bitfields.
