dwarves (1.30-1ubuntu1) questing; urgency=low

  * Merge from Debian unstable. Remaining changes:
    - Use vendored, uptodate/compatible uapi headers even when building
      with system libbpf.

 -- Timo Aaltonen <tjaalton@debian.org>  Thu, 28 Aug 2025 15:17:36 +0300

dwarves (1.30-1) unstable; urgency=medium

  * New upstream release. Closes: #1103000.
  * Drop 01-fix-pahole-spelling-error.patch, merged upstream.
  * Drop 03-dwarf_loader-fix-termination-on-BTF-encoding-error.patch,
    merged upstream.
  * Clean some files; their are not aligned with git:
    - .github

 -- Domenico Andreoli <cavok@debian.org>  Fri, 18 Apr 2025 08:26:35 +0200

dwarves (1.29-3) unstable; urgency=medium

  * Add 03-dwarf_loader-fix-termination-on-BTF-encoding-error.patch.
    Closes: #1100503, #1101262.

 -- Domenico Andreoli <cavok@debian.org>  Fri, 28 Mar 2025 09:39:34 +0100

dwarves (1.29-2ubuntu2) plucky; urgency=medium

  * patches: Fix loading kernel modules with rust enabled. (LP:
    #2103771)

 -- Timo Aaltonen <tjaalton@debian.org>  Fri, 21 Mar 2025 10:47:49 +0200

dwarves (1.29-2ubuntu1) plucky; urgency=medium

  * Merge with Debian unstable. Remaining changes:
    - Use vendored, uptodate/compatible uapi headers even when building
      with system libbpf.

 -- Sudip Mukherjee <sudipm.mukherjee@gmail.com>  Fri, 07 Feb 2025 19:21:44 +0000

dwarves (1.29-2) unstable; urgency=medium

  * Build only on Linux, other OSes require major changes.
    Closes: #744847.
  * Forwarded patches upstream.

 -- Domenico Andreoli <cavok@debian.org>  Sat, 01 Feb 2025 14:50:53 +0100

dwarves (1.29-1ubuntu1) plucky; urgency=medium

  * Merge with Debian unstable. Remaining changes:
    - Use vendored, uptodate/compatible uapi headers even when building
      with system libbpf.

 -- Sudip Mukherjee <sudipm.mukherjee@gmail.com>  Sat, 25 Jan 2025 16:14:52 +0000

dwarves (1.29-1) unstable; urgency=medium

  * New upstream release.
  * Drop 00-fix-btf_loader-spelling-error.patch, not needed any more.
  * Clean some files; their permissions are not aligned with git:
    - tests/pfunct-btf-decl-tags.sh

 -- Domenico Andreoli <cavok@debian.org>  Tue, 21 Jan 2025 15:47:07 +0100

dwarves (1.28-1ubuntu1) plucky; urgency=medium

  * Merge with Debian unstable. Remaining changes:
    - Use vendored, uptodate/compatible uapi headers even when building
      with system libbpf.

 -- Sudip Mukherjee <sudipm.mukherjee@gmail.com>  Sun, 15 Dec 2024 22:20:20 +0000

dwarves (1.28-1) unstable; urgency=medium

  * New upstream release.
  * Drop because merged upstream:
    - 00-core-Initialize-cu_node-with-INIT_LIST_HEAD.patch
    - 01-dwarf_loader-Add-missing-cus__add-to-cus__merge_and_process_cu.patch
  * Add 01-fix-pahole-spelling-error.patch.
  * Clean some files; their permissions are not aligned with git:
    - tests/btf_functions.sh
    - tests/default_vmlinux_btf.sh
    - tests/flexible_arrays.sh
    - tests/prettify_perf.data.sh
    - tests/reproducible_build.sh
    - tests/tests
  * Clean config.h before the build. Closes: #1044846.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 10 Dec 2024 10:36:47 +0100

dwarves (1.27-1ubuntu1) oracular; urgency=medium

  * Merge with Debian unstable. Remaining changes:
    - Use vendored, uptodate/compatible uapi headers even when building
      with system libbpf.

 -- Sudip Mukherjee <sudipm.mukherjee@gmail.com>  Fri, 12 Jul 2024 20:29:04 +0100

dwarves (1.27-1) unstable; urgency=medium

  * New upstream release.
  * Drop Thomas Girard from the maintainers. Closes: #1065134.
  * Add 00-core-Initialize-cu_node-with-INIT_LIST_HEAD.patch
  * Add 01-dwarf_loader-Add-missing-cus__add-to-cus__merge_and_process_cu.patch
  * Add 02-fix-btf_loader-spelling-error.patch
  * Add 03-reformat-long-line-in-pahole-manpage.patch
  * Clean some files before the build; they are tagged in git but missing
    from MANIFEST and therefore not included in the upstream tarball:
    - PKG-MAINTAINERS
    - README.cross
    - ctfdwdiff
    - tests/reproducible_build.sh

 -- Domenico Andreoli <cavok@debian.org>  Thu, 20 Jun 2024 18:07:31 +0200

dwarves (1.26-1) unstable; urgency=medium

  * New upstream release.
  * Update BD to pkgconf.
  * Update standards version to 4.7.0, no changes needed.
  * Fix copyright year for debian/* files.

  Changes since 1.25:
  [ Arnaldo Carvalho de Melo ]
  * core: Conditionally define language encodings.
  * btf: Fix building with system libbpf.
  * pahole: Honour --compile when -C is used.
  * emit: Check if disambiguated struct/enum/union name was already
    emitted in a previous CU.
  * emit: Don't mark a enum with nr_members == 0 as printed, its just
    a fwd decl.

  [ David Lamparter ]
  * dwarves: support DW_TAG_atomic_type.

  [ Arnaldo Carvalho de Melo ]
  * pahole: Allow --compile to work with DWARF in addition to with BTF.
  * dwarf_loader: Support DW_TAG_label outside DW_TAG_lexblock.
  * pahole: Add "btf" to the format-path option man page.
  * pahole: Support '--lang/--lang_exclude=asm'
  * btf_encoder: Add extra debug info for unsupported DWARF tags.
  * core: Print more info on tag__assert_search_result()
  * fprintf: Emit "_Atomic" modifiers for DW_TAG_atomic_type.
  * btf_encoder: Store the CU being processed to avoid changing many functions.
  * core: Add DW_TAG_unspecified_type to tag__is_tag_type() set.
  * core: Record if a CU has a DW_TAG_unspecified_type.
  * btf_encoder: Encode DW_TAG_unspecified_type returning routines as void.
  * emit: Emit typedefs for atomic_ prefixed base types.
  * emit: Optionally pass a conf_fprintf struct to type_emissions__init.
  * emit: Allow skip emitting the atomic typedefs.
  * pahole: Allow skipping the emission of atomic typedefs.
  * fprintf: Move the "typedef " invariant printf to the start of
    typedef__fprintf()
  * fprintf: Support _Atomic typedefs.
  * emit: Support DW_TAG_atomic_type when emitting definitions for a typedef.

  [ Alan Maguire ]
  * dwarves: Zero-initialize struct cu in cu__new() to prevent incorrect
    BTF types.

  [ Arnaldo Carvalho de Melo ]
  * core: Use zalloc() to make the code more robust.
  * pahole: Use zalloc() to make the code more robust.
  * pfunct: Use zalloc() to make the code more robust.
  * dwarf_loader: DW_TAG_inlined_subroutine needs recoding by
    DW_AT_abstract_origin.
  * core: Introduce base_type__language_defined()
  * pahole: Use type__fprintf() directly for --compile.
  * pahole: Set libbpf debug printer in -V mode.

  [ Sedat Dilek ]
  * dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel.

  [ Alan Maguire ]
  * pahole: Sync with libbpf-1.1.
  * dwarf_loader: Help spotting functions with optimized-out parameters.

  [ Arnaldo Carvalho de Melo ]
  * CMakeList.txt: Bump version to the upcoming 1.25 release, not out
    of the door yet.

  [ Alan Maguire ]
  * btf_encoder: Ensure ELF function representation is fully initialized.

  [ Arnaldo Carvalho de Melo ]
  * core: Check that we're adding DW_TAG_member sorted by byte offset.
  * dwarf_loader: Fix sorting of Rust structs.
  * btfdiff: Exclude Rust CUs since those are not yet being converted
    to BTF on the Linux kernel.

  [ Alan Maguire ]
  * dwarf_loader: Mark functions that do not use expected registers for params.
  * btf_encoder: Exclude functions with unexpected param register use
    not optimizations.
  * pahole: Update descriptions for btf_gen_optimized,
    skip_encoding_btf_inconsistent_proto.
  * pahole: Update man page for options also in line with changes made
    to skip logic.
  * dwarf_loader: Fix detection of struct parameters.
  * dwarf_loader: Fix parameter location retrieval for location lists
  * dwarf_loader: Only mark parameter as using an unexpected register
    when it does.

  [ Arnaldo Carvalho de Melo ]
  * CMakeLists.txt: Call cmake_minimum_required() before project()
  * fprintf: Support DW_TAG_LLVM_annotation in dwarf_tag_name()

  [ Eduard Zingerman ]
  * dwarf_loader: Fix for BTF id drift caused by adding unspecified types.

  [ Alan Maguire ]
  * fprintf: Generalize function prototype print to support passing conf
  * fprintf: Support skipping modifier.
  * btf_encoder: Compare functions via prototypes not parameter names.

  [ Eduard Zingerman ]
  * fprintf: Correct names for types with btf_type_tag attribute.
  * btf_loader: A hack for BTF import of btf_type_tag attributes.
  * fprintf: Fix `*` not being printed for pointers with btf_type_tag.

  [ Arnaldo Carvalho de Melo ]
  * pahole: Prep 1.25.
  * dwarf_loader: Add support for DW_TAG_constant.
  * fprintf: Add DW_TAG_constant pretty printer (constant__fprintf)
  * pdwtags: Print DW_TAG_constant tags.
  * dwarf_loader: DW_TAG_subroutine_type may have a DW_AT_byte_size.

  [ Viktor Malik ]
  * spec: Migrate license to a SPDX standardized one.

  [ Arnaldo Carvalho de Melo ]
  * README: Remove old comments about ancient distros and add 'git submodule'
    instruction.
  * pahole: Don't keep structs in multiple RB trees.

  [ Alan Maguire ]
  * btf_encoder, pahole: Move BTF encoding options into 'struct conf_load'
  * dwarves: Move ARRAY_SIZE() to dwarves.h
  * pahole: Add --btf_features support.
  * pahole: Add --supported_btf_features.
  * pahole: Add --btf_features_strict to reject unknown BTF features

  [ Arnaldo Carvalho de Melo ]
  * CMakeList.txt: Bump version to the upcoming 1.26 release, not out
    of the door yet.
  * pahole: Make sure the features string is NUL terminated.
  * fprintf: Introduce struct to account holes in class member types.
  * fprintf: Introduce method to print info about type of last member.
  * fprintf: Print number of holes in class member types.
  * fprintf: Print number of bit holes in class member types.
  * fprintf: Print number of bit paddings in class member types.
  * fprintf: When expanding types do it for enums as well.
  * fprintf: Add missing space after expanding a structure for a struct member.
  * fprintf: When expanding types do it for struct typedefs as well.
  * fprintf: Factor out the fprintf of a union declaration, for reuse.
  * fprintf: When expanding types do it for union typedefs as well.
  * btfdiff: Parallelize loading BTF and DWARF.
  * btf_loader: Fix loading of 32-bit signed enums.
  * btfdiff: Do type expansion to cover "private" types and enumerations.
  * core: Introduce cu__for_each_enumeration()
  * pahole: Do not use -1 to mean that a enumerator wasn't found in
    an enumeration.
  * pahole: Implement --contains_enumerator=ENUMERATOR_NAME.
  * pahole: Improve error message when not resolving symbolic names in filters.
  * pahole: Wait to find a DWARF CU with both the class and the type_enum.
  * dwarf_loader: Print the line number in addition to the function
    when not finding the abstract origin.
  * syscse: cus__load_files() requires a non NULL conf_load.
  * dtagnames: cus__load_files() requires a non NULL conf_load.
  * prefcnt: cus__load_files() requires a non NULL conf_load.
  * NEWS: Add missing list of changes for v1.25.
  * pahole: Prep 1.26.

 -- Domenico Andreoli <cavok@debian.org>  Wed, 15 May 2024 18:10:44 +0200

dwarves (1.25-0.1) unstable; urgency=medium

  * Non-maintainer upload.
  * New upstream release.
    Changes since 1.24:

    DWARF loader:

    - Support for DW_TAG_unspecified_type more generally, that in binutils
      2.40 is used for assembly functions, resulting in BTF encoding problems
      when building the Linux kernel.

    - Make sure struct member offsets are in ascending order. This is part of
      the set of changes to support encoding BTF for Rust for use with the
      Linux kernel, where the BTF verifier considers invalid offset unordered
      struct members.

    - Support C atomic types (DW_TAG_atomic_type), that are not used in the
      Linux kernel but is present in user space components such as Open
      VSwitch.

    BTF loader:

    - Initial support for DW_TAG_LLVM_annotation, used for BTF type tags, to
      encode things like __rcu, __user annotations in the Linux kernel. This
      is still in flux with changes in how these are encoded that resulted
      from the discussion to support this in gcc in addition to in clang,
      where it was first designed.

    BTF encoder:

    - Exclude functions with the same name (static functions in different
      CUs), inconsistent prototypes or not following calling convention.

    - Allow generation of BTF for optimized functions, those that end with a
      .isra* suffix (inter procedural scalar replacement of aggregates) or
      .constprop* (constant propagation).

    Pretty printer:

    - For now the DW_TAG_LLVM_annotation tags are being suppressed, so the
      output from BTF and DWARF matches, further work is planned to support it
      so that the output matches the original source code and can be
      recompilable, resulting in the same DWARF info.

    - Support C atomic types, allowing the generation of source code that can
      be compiled with resulting DWARF info matching the original source code.

    pahole:

    - Support --lang=/--lang_exclude=asm, the DW_LANG_ define for assembly is
      out of order, special case it to support asking for CUs written in
      assembly to be selected or excluded.

    - Support suppressing the atomic type modifiers/attributes.

    - Allow filtering out functions optimized by the compiler, where the
      calling convention isn't the one expected by BPF or arguments are
      optimized out.

    - Support --compile from DWARF in addition to from BTF, this allows user
      space components such as Open VSwitch to use pahole to generate
      compilable code for its data structures.

    btfdiff:

    - Exclude RUST CUs, as those are not yet being BTF encoded.

  * Drop patches already applied upstream:
    - 00-store-the-CU-being-processed-to-avoid-changing-many-functions.patch
    - 01-record-if-a-CU-has-a-DW_TAG_unspecified_type.patch
    - 02-encode-DW_TAG_unspecified_type-returning-routines-as-void.patch

 -- Andrea Righi <andrea.righi@canonical.com>  Wed, 03 May 2023 09:24:39 +0200

dwarves (1.25-0ubuntu3) noble; urgency=medium

  * No-change rebuild for CVE-2024-3094

 -- William Grant <wgrant@ubuntu.com>  Mon, 01 Apr 2024 16:48:24 +1100

dwarves (1.25-0ubuntu2) noble; urgency=medium

  * No-change rebuild against libelf1t64

 -- Steve Langasek <steve.langasek@ubuntu.com>  Fri, 01 Mar 2024 00:57:45 +0000

dwarves (1.25-0ubuntu1) mantic; urgency=medium

  * New upstream release.
  * Drop cherry-picked patches, included in the new upstream release.
  * Remaining changes:
    - Use vendored, uptodate/compatible uapi headers even when building
    with system libbpf.

 -- Dimitri John Ledkov <dimitri.ledkov@canonical.com>  Tue, 25 Apr 2023 14:34:05 +0100

dwarves (1.24-4.1) unstable; urgency=medium

  * Non-maintainer upload.
  * dwarves: Zero-initialize struct cu in cu__new() to prevent incorrect BTF
    types.
    Fixes BTF deduplication issues causing arm64 kernel size increase.
    Thanks to Aurelien Jarno (Closes: #1033301)

 -- Salvatore Bonaccorso <carnil@debian.org>  Tue, 02 May 2023 20:37:16 +0200

dwarves (1.24-4ubuntu1) lunar; urgency=medium

  * Use vendored, uptodate/compatible uapi headers even when building with
    system libbpf. This allows compiling up to date dwarves without first
    upgrading/migrating new major kernel. Note these are already used when
    doing hwe backports to LTS releases, as vendored libbpf is used as a
    whole together with the vendored uapi headers.

 -- Dimitri John Ledkov <dimitri.ledkov@canonical.com>  Tue, 13 Dec 2022 12:35:22 +0000

dwarves (1.24-4) unstable; urgency=medium

  * Backport upstream patches to support newer toolchains.
    Closes: #1021562.

 -- Domenico Andreoli <cavok@debian.org>  Sat, 10 Dec 2022 10:11:28 +0100

dwarves (1.24-3) unstable; urgency=medium

  * Fix libbpf build-depends-on-1-revision lintian warning.
  * Fix smoketest configuration and dependencies.
  * Fix `upstream-tag` for gbp push.
  * Update standards version to 4.6.1, no changes needed.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 08 Nov 2022 09:39:58 +0100

dwarves (1.24-2) unstable; urgency=medium

  * Upload to unstable.
  * Add libbpf-dev to the autopkgtest dependencies.

 -- Domenico Andreoli <cavok@debian.org>  Mon, 07 Nov 2022 07:48:23 +0100

dwarves (1.24-1) experimental; urgency=medium

  * New upstream release. Closes: 1018906.
    Changes since 1.23:

    BTF encoder:

    - Add support to BTF_KIND_ENUM64 to represent enumeration entries
      with more than 32 bits.

    - Support multithreaded encoding, in addition to DWARF
      multithreaded loading, speeding up the process.

      Selected just like DWARF multithreaded loading, using the
      'pahole -j' option.

    - Encode 'char' type as signed.

    BTF Loader:

    - Add support to BTF_KIND_ENUM64.

    pahole:

    - Introduce --lang and --lang_exclude to specify the language the
      DWARF compile units were originated from to use or filter.

      Use case is to exclude Rust compile units while aspects of the
      DWARF generated for it get sorted out in a way that the kernel
      BPF verifier don't refuse loading the BTF generated from them.

    - Introduce --compile to generate compilable code in a similar
      fashion to

       bpftool btf dump file vmlinux format c > vmlinux.h

      As with 'bpftool', this will notice type shadowing, i.e. multiple
      types with the same name and will disambiguate by adding a suffix.

    - Don't segfault when processing bogus files.

  * Update libbpf-dev and linux-libc-dev build depends.
  * Drop add_cmake_libbpf_enabled_option.patch, not developing it as
    needed for #744847.
  * Run some smoke tests on all the delivered binaries.

 -- Domenico Andreoli <cavok@debian.org>  Sat, 22 Oct 2022 14:31:35 +0200

dwarves (1.23-2) unstable; urgency=medium

  * Upload to unstable, linux 5.17 is now available.
  * pahole: add missing Breaks. Closes: #1008093.

 -- Domenico Andreoli <cavok@debian.org>  Wed, 20 Apr 2022 06:52:21 +0200

dwarves (1.23-1) experimental; urgency=medium

  * New upstream release.
    Changes since 1.22:

    DWARF loader:

    - Read DW_TAG_LLVM_annotation tags, associating it with variables,
      functions, types. So far this is only being used by the BTF
      encoder, but the pretty printer should use this as well in a
      future release, printing these attributes when available.

    - Initial support for DW_TAG_skeleton_unit, so far just suggest
      looking up a matching .dwo file to be used instead. Automagically
      doing this is in the plans for a future release.

    - Fix heap overflow when accessing variable specification.

    BTF encoder:

    - Support the new BTF type tag attribute, encoding
      DW_TAG_LLVM_annotation DWARF tags as BTF_KIND_TYPE_TAG and
      BTF_KIND_DECL_TAG.

      This allows __attribute__((btf_type_tag("tag1"))) to be used for
      variables, functions, typedefs, so that contextual information can
      be stored in BTF and used by the kernel BPF verifier for more checks.

      The --skip_encoding_btf_type_tag option can be used to suppress this.

    - Fix handling of percpu symbols on s390.

    BTF loader:

    - Use cacheline size to infer alignment.

    btfdiff:

    - Now that the BTF loader infers struct member alingment, and as that
      is just an heuristic, suppress printing the alignment when pretty
      printing from BTF info like is done when printing from DWARF.

    pahole:

    - Add --skip_missing so that we don't stop when not finding one of
      the types passed to -C.

    Pretty printer:

    - Fix __attribute__((__aligned__(N)) printing alignment for struct
      members.

    - Fix nested __attribute__(__aligned__(N)) struct printing order,
      so that rebuilding from the printed source circles back to the
      original source code alignment semantics.

    Build:

    - No need to download libbpf source when using the system library
      (libbpf-devel).

    - Make python optional

  * Drop pahole-manpage-fixes.patch, merged upstream.
  * Bump build-depends libbpf-dev version to 1:0.7~.
  * Bump build-depends linux-libc-dev version to 5.17~.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 08 Mar 2022 15:39:28 +0100

dwarves (1.22-8) unstable; urgency=medium

  * Add binutils-multiarch to the autopkgtest dependencies.

 -- Domenico Andreoli <cavok@debian.org>  Wed, 02 Mar 2022 23:29:15 +0100

dwarves (1.22-7) unstable; urgency=medium

  * Add libdw-dev to the autopkgtest dependencies.

 -- Domenico Andreoli <cavok@debian.org>  Wed, 02 Mar 2022 05:56:50 +0000

dwarves (1.22-6) unstable; urgency=medium

  * Update Standards-Version to 4.6.0.
  * dwarf-struct-with-hole: build and analyze pahole.c
  * Drop kernel build test (closes: #1005014):
    - arch's kernel config package is just a Recommend of the source
      package, as such it's not honoured by autopkgtest. There is no
      way to depend on it without specifying also the kernel version.
  * dwarf-struct-with-hole: exercise the DWARF -> BTF translation.
  * dwarf-struct-with-hole, btf-struct-with-hole:
    print the .BTF section header at the end of the test.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 01 Mar 2022 21:10:29 +0100

dwarves (1.22-5) unstable; urgency=medium

  * Add test: minimal Linux kernel build with BTF.

 -- Domenico Andreoli <cavok@debian.org>  Fri, 04 Feb 2022 18:59:44 +0100

dwarves (1.22-4) unstable; urgency=high

  [Ben Hutchings]
  * Fix inconsistent usage of HAVE_BTF and HAVE_BPF in
    add_cmake_libbpf_enabled_option.patch. Closes: #1004311.

 -- Domenico Andreoli <cavok@debian.org>  Wed, 26 Jan 2022 12:24:40 +0100

dwarves (1.22-3) unstable; urgency=medium

  * debian/rules: fix logic for disabling BPF support on non-linux.
  * Rename test: pahole-struct-with-hole -> dwarf-struct-with-hole.
  * Add test: btf-struct-with-hole.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 25 Jan 2022 21:58:43 +0100

dwarves (1.22-2) unstable; urgency=medium

  * Mark dwarves binary as Multi-Arch foreign.
  * Update libbpf-dev Build-Depends version.
  * Consolidate and forward patches.
  * Add test: pahole-struct-with-hole.
  * Disable BPF support on hurd-i386, kfreebsd-amd64 and kfreebsd-i386:
    - add add_cmake_libbpf_enabled_option.patch
  * Rename branch debian/master to debian/main.

 -- Domenico Andreoli <cavok@debian.org>  Fri, 21 Jan 2022 19:55:31 +0100

dwarves (1.22-1) unstable; urgency=low

  * New upstream release.
    Changes since 1.20:

    pahole:
    - Allow encoding BTF to a separate BTF file (detached) instead of to a new
      ".BTF" ELF section in the file being encoded (vmlinux usually).
    - Introduce -j/--jobs option to specify the number of threads to
      use. Without arguments means one thread per CPU. So far used for
      the DWARF loader, will be used as well for the BTF encoder.
    - Show all different types with the same name, not just the first one found.
    - Introduce sorted type output (--sort), needed with multithreaded
      DWARF loading, to use with things like 'btfdiff' that expects
      the output from DWARF and BTF types to be comparable using 'diff'.
    - Stop assuming that reading from stdin means pretty printing as this broke
      pre-existing scripts, introduce a explicit --prettify command line option.
    - Improve type resolution for the --header command line option.
    - Disable incomplete CTF encoder, this needs to be done using the external
      libctf library.
    - Do not consider the ftrace filter when encoding BTF for kernel functions.
    - Add --kabi_prefix to avoid deduplication woes when using
      _RH_KABI_REPLACE()
    - Add --with_flexible_array to show just types with flexible arrays.

    DWARF Loader:
    - Multithreaded loading, requires elfutils >= 0.178.
    - Lock calls to non-thread safe elfutils' libdw functions (dwarf_decl_file()
      and dwarf_decl_line())
    - Change hash table size to one that performs better with current typical
      vmlinux files.
    - Allow tweaking the hash table size from the command line.
    - Stop allocating memory for strings obtained from libdw, just defer freeing
      the Dwfl handler so that references to its strings can be safely kept.
    - Use a frontend cache for the latest lookup result.
    - Allow ignoring some DWARF tags when loading for encoding
      BTF, as BTF doesn't have equivalents for things like
      DW_TAG_inline_expansion and DW_TAG_label.
    - Allow ignoring some DWARF tag attributes, such as DW_AT_alignment,
      not used when encoding BTF.
    - Do not query for non-C attributes when loading a C language CU
      (compilation unit).

    BTF encoder:
    - Preparatory work for multithreaded encoding, the focus for 1.23.

    btfdiff:
    - Support diffing against a detached BTF file,
      e.g.: 'btfdiff vmlinux vmlinux.btf'
    - Support multithreaded DWARF loading, using the new pahole --sort
      option to have the output from both BTF and DWARF sorted and thus
      comparable via 'diff'.

    Build:
    - Support building with libc libraries lacking either obstacks or argp, such
      as Alpine Linux's musl libc.
    - Support systems without getconf() to obtain the data cacheline size, such
      as musl libc.
    - Add a buildcmd.sh for test builds, tested using the same set of containers
      used for testing the Linux kernel perf tools.
    - Enable selecting building with a shared libdwarves library or statically.
    - Allow one to use the libbpf package found in distributions instead
      of with the accompanying libbpf git submodule.

    Cleanups:
    - Address lots of compiler warnings accumulated by not using -Wextra, it'll
      be added in the next release after allowing not to use it to build libbpf.
    - Address covscan report issues.

    Documentation:
    - Improve the --nr_methods/-m pahole man page entry.
    - Clarify that currently --nr_methods doesn't work together witn -C.

  * Refresh patches.
  * Drop patch no_shared_no_ebl, can do without it.
  * Build-Depends on linux-libc-dev (>= 5.14) for BTF_KIND_FLOAT.
  * Rename source package to dwarves. Closes: #705969.
  * Rename binary package to pahole and add a transitional dummy package.
  * Patch pahole manpage to fix groff's warning.
  * Configure gbp to sign tags by default.
  * Remove superfluous file patterns from debian/copyright.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 19 Oct 2021 23:31:29 +0200

dwarves-dfsg (1.20-2) unstable; urgency=high

  * Build-Depends on libbpf-dev on Linux builds only.
  * Add lintian override for upstream-metadata-missing-bug-tracking,
    upstream does not have any bug tracking system.
  * Mark dwarves binary as Multi-Arch foreign. Closes: #989174.

 -- Domenico Andreoli <cavok@debian.org>  Sun, 07 Feb 2021 22:37:57 +0100

dwarves-dfsg (1.20-1) unstable; urgency=medium

  * New upstream release.
    Changes since 1.19:

    BTF encoder:
      - Improve ELF error reporting using elf_errmsg(elf_errno()).
      - Improve objcopy error handling.
      - Fix handling of 'restrict' qualifier, that was being treated
        as a 'const'.
      - Support SHN_XINDEX in st_shndx symbol indexes, to handle ELF
        objects with more than 65534 sections, for instance, which
        happens with kernels built with 'KCFLAGS="-ffunction-sections
        -fdata-sections", Other cases may include when using FG-ASLR, LTO.
      - Cope with functions without a name, as seen sometimes when
        building kernel images with some versions of clang, when a
        SEGFAULT was taking place.
      - Fix BTF variable generation for kernel modules, not skipping
        variables at offset zero.
      - Fix address size to match what is in the ELF file being
        processed, to fix using a 64-bit pahole binary to generate BTF
        for a 32-bit vmlinux image.
      - Use kernel module ftrace addresses when finding which functions
        to encode, which increases the number of functions encoded.
    DWARF loader:
      - Support DW_AT_data_bit_offset
      - DW_FORM_implicit_const in attr_numeric() and attr_offset()
      - Support DW_TAG_GNU_call_site, its the standardized rename of
        the previously supported DW_TAG_GNU_call_site.
    build:
        - Fix compilation on 32-bit architectures.

  * Refresh patches.
  * Remove ctfdwdiff and README.cross so to reuse upstream tarball as-is.
  * Update Standards-Version to 4.5.1
  * Update debhelper compatibility to 13:
    - install missing binaries: btfdiff and fullcircle
  * Add upstream metadata file
  * gbp: set upstream tarball compression to xz
  * Add lintian override for orig-tarball-missing-upstream-signature,
    see #882694.

 -- Domenico Andreoli <cavok@debian.org>  Sun, 07 Feb 2021 17:59:01 +0100

dwarves-dfsg (1.19-1) unstable; urgency=high

  * New upstream release. Closes: #978691.
    Changes since 1.18:
    - Support split BTF, where a main BTF file, vmlinux, can be used
      to find types and then a kernel module, for instance, can have
      just what is unique to it
    - Update libbpf to get the split BTF support and use some of its
      functions to load BTF and speed up DWARF loading and BTF encoding
    - Support cross-compiled ELF binaries with different endianness
    - Support showing typedefs for anonymous types, like structs,
      unions and enums
    - Align enumerators
    - Workaround bugs in the generation of DWARF records for functions in
      some gcc versions that were causing breakage in the encoding of BTF
    - Ignore zero-sized ELF symbols instead of erroring out
    - Handle union forward declaration properly in the BTF loader
    - Introduce --numeric_version for use in scripts and Makefiles
    - Try sole pfunct argument as a function name, just like pahole
      with type names
    - Speed up pfunct using some of the load techniques used in pahole
    - Discard CUs after BTF encoding as they're not used anymore,
      greatly reducing memory usage and speeding up vmlinux BTF encoding
    - Revamp how per-CPU variables are encoded in BTF
    - Include BTF info for static functions
    - Use BTF's string APIs for strings management, greatly improving
      performance over the tsearch()
    - Increase size of DWARF lookup hash table, shaving off about 1
      second out of about 20 seconds total for Linux BTF dedup
    - Stop BTF encoding when errors are found in some DWARF CU
    - Implement --packed, to show just packed structures, for instance,
      here are the top 5 packed data structures in the Linux kernel
    - Fix bug in distros such as OpenSUSE:15.2 where DW_AT_alignment
      isn't defined

  * Refresh patches.

 -- Domenico Andreoli <cavok@debian.org>  Mon, 04 Jan 2021 23:33:54 +0100

dwarves-dfsg (1.18-1) unstable; urgency=medium

  [ Domenico Andreoli ]
  * New upstream release (changes since 1.17):
    - Use type information to pretty print raw data from stdin, all
      documented in the man pages, further information in the csets.
    - Store percpu variables in vmlinux BTF. This can be disabled when
      debugging kernel features being developed to use it.
    - pahole now should be segfault free when handling gdb test suit
      DWARF files, including ADA, FORTRAN, rust and dwp compressed files,
      the later being just flatly refused, that got left for v1.19.
    - Bail out on partial units for now, avoiding segfaults and providing
      warning to user, hopefully will be addressed in v1.19.
      Closes: #977715.
  * Update Homepage link. Closes: #978708.
  * Drop debian/compat in favor of Build-Depends: debhelper-compat.
  * Fix typo in pahole manual page.
  * Fix escaping in pahole manual page.
  * Fix debian/copyright lintian errors.
  * Revert test to a superficial pahole --version until partial units
    become supported.

  [ Luca Boccassi ]
  * Use packaged libbpf instead of the statically linked. Closes: #979105.

 -- Domenico Andreoli <cavok@debian.org>  Sun, 03 Jan 2021 13:41:31 +0100

dwarves-dfsg (1.17-1) unstable; urgency=low

  * New upstream release (changes since 1.16):

    BTF loader:
     - Support raw BTF as available in /sys/kernel/btf/vmlinux.

    pahole:
     - When the sole argument passed isn't a file, take it as a class name:
     - Do not require a class name to operate without a file name.
     - Make --find_pointers_to consider unions:
     - Make --contains and --find_pointers_to honour --unions
     - Add support for finding pointers to void:
     - Make --contains and --find_pointers_to to work with base types:
     - Make --contains look for more than just unions, structs:
     - Consider unions when looking for classes containing some class:
     - Introduce --unions to consider just unions:
     - Fix -m/--nr_methods - Number of functions operating on a type pointer

    man-pages:
     - Add section about --hex + -E to locate offsets deep into sub structs.
     - Add more information about BTF.
     - Add some examples.

  * Update to Standards-Version 4.5.0:
    - Drop get-orig-source rules target
    - Add Rules-Requires-Root: no
  * Update debhelper compat to 12.

 -- Domenico Andreoli <cavok@debian.org>  Sun, 19 Apr 2020 20:25:33 +0200

dwarves-dfsg (1.16-1) unstable; urgency=low

  * New upstream release (changes since 1.15):
    - Preserve and encode exported functions as BTF_KIND_FUNC
    - Add support for BTF_KIND_FUNC
    - Account inline type __aligned__ member types for spacing
    - Fix alignment of class members that are structs/enums/unions
    - Fixup handling classes with no members, solving a NULL deref
    - Avoid infinite loop trying to determine type with static data
      member of its own type.
    - type->type == 0 is void, fix --compile for that
    - Print DW_TAG_subroutine_type as well
    - Fix ptr_table__add_with_id() handling of pt->nr_entries, covering
      how BTF variables IDs are encoded
    - Allow passing the format path specifier, to use with BTF
    - Fixup issues pointed out by various coverity reports

 -- Domenico Andreoli <cavok@debian.org>  Wed, 15 Jan 2020 18:02:11 +0100

dwarves-dfsg (1.15-2) unstable; urgency=low

  * Fix hardening-no-bindnow.
  * Fix debian-watch-uses-insecure-uri.
  * Fix debian-watch-does-not-check-gpg-signature.
  * Fix priority-extra-is-replaced-by-priority-optional.
  * Revert to dwarves-dbgsym for tests execution but skip the test if
    it's not installable (i.e. on transition to testing).

 -- Domenico Andreoli <cavok@debian.org>  Mon, 23 Sep 2019 18:21:35 +0200

dwarves-dfsg (1.15-1) unstable; urgency=medium

  [ Theodore Y. Ts'o ]
  * New upstream release (changes since 1.12, closes: #931142):
    - Add support for BTF encoding which is a much more compact way
      of encoding C type information.  It is derived from CTF (Compact
      C-Type format) and is designed for use with eBPF.
    - Add initial support for the DWARF DW_TAG_partial_unit
    - Improve support for pretty-printing unions
    - Teach pahole to show where a struct was used, via the -I option
    - Use the running kernel by default when no file name is passed
    - Improve man pages
    - Support new BTF deduplication algorithm found the Linux kernel's
      libbpf library, which allows type information for the kernel to
      be stored in roughly 1% of the space.
    - Add a new utility, btfdiff, which compares the pretty-printed
      type information between two kernel images.
    - Teach pahole to use the BTF information to pretty print structures
      using the BTF information using "pahole -F btf", which is much faster
      than using the Dwarf information.
    - Infer the __packed__ attribute for structures without alignment holes
      and which violate the natural types' alignment requirements.
    - Support DWARF5's DW_AT_alignment tag
    - Add a --compile option to pfunct which produces compileable
      output for function prototypes in an object file.
    - Miscellaneous bug fixes

  [ Domenico Andreoli ]
  * Autopkgtest on libc-bin-dbgsym instead of dwarves-dbgsym. Closes: #923717.
  * Fix typo in description of no_shared_no_ebl.

 -- Domenico Andreoli <cavok@debian.org>  Tue, 30 Jul 2019 16:58:55 +0200

# Older entries have been removed from this changelog.
# To read the complete changelog use `apt changelog pahole`.
