[PATCH v3 00/11] Libdw/dwarf build clean up

Ian Rogers posted 11 patches 1 month, 1 week ago
tools/build/Makefile.feature                  | 11 +---
tools/build/feature/Makefile                  | 24 ++------
tools/build/feature/test-all.c                | 16 +-----
tools/build/feature/test-dwarf.c              | 11 ----
tools/build/feature/test-dwarf_getcfi.c       |  9 ---
tools/build/feature/test-dwarf_getlocations.c | 13 -----
tools/build/feature/test-libdw-dwarf-unwind.c | 14 -----
tools/build/feature/test-libdw.c              | 56 +++++++++++++++++++
tools/perf/Documentation/perf-check.txt       |  6 +-
tools/perf/Makefile.config                    | 47 +++++-----------
tools/perf/Makefile.perf                      |  2 +-
tools/perf/arch/arm/Makefile                  |  2 +-
tools/perf/arch/arm/util/Build                |  2 +-
tools/perf/arch/arm64/Makefile                |  2 +-
tools/perf/arch/arm64/util/Build              |  2 +-
tools/perf/arch/csky/Makefile                 |  2 +-
tools/perf/arch/csky/util/Build               |  2 +-
tools/perf/arch/loongarch/Makefile            |  2 +-
tools/perf/arch/loongarch/util/Build          |  2 +-
tools/perf/arch/mips/Makefile                 |  2 +-
tools/perf/arch/mips/util/Build               |  2 +-
tools/perf/arch/powerpc/Makefile              |  2 +-
.../perf/arch/powerpc/annotate/instructions.c |  4 +-
tools/perf/arch/powerpc/util/Build            |  4 +-
tools/perf/arch/riscv/Makefile                |  2 +-
tools/perf/arch/riscv/util/Build              |  2 +-
tools/perf/arch/s390/Makefile                 |  2 +-
tools/perf/arch/s390/util/Build               |  2 +-
tools/perf/arch/sh/Makefile                   |  2 +-
tools/perf/arch/sh/util/Build                 |  2 +-
tools/perf/arch/sparc/Makefile                |  2 +-
tools/perf/arch/sparc/util/Build              |  2 +-
tools/perf/arch/x86/Makefile                  |  2 +-
tools/perf/arch/x86/annotate/instructions.c   |  2 +-
tools/perf/arch/x86/util/Build                |  2 +-
tools/perf/arch/xtensa/Makefile               |  2 +-
tools/perf/arch/xtensa/util/Build             |  2 +-
tools/perf/builtin-annotate.c                 |  2 +-
tools/perf/builtin-check.c                    |  6 +-
tools/perf/builtin-probe.c                    | 14 ++---
tools/perf/builtin-report.c                   |  4 +-
tools/perf/util/Build                         | 12 ++--
tools/perf/util/annotate-data.h               |  8 +--
tools/perf/util/debuginfo.h                   |  6 +-
tools/perf/util/disasm.c                      |  4 +-
tools/perf/util/disasm.h                      |  4 +-
tools/perf/util/dwarf-aux.c                   |  6 --
tools/perf/util/dwarf-aux.h                   | 54 ------------------
tools/perf/util/genelf.c                      |  4 +-
tools/perf/util/genelf.h                      |  2 +-
tools/perf/util/include/dwarf-regs.h          |  6 +-
tools/perf/util/probe-event.c                 |  4 +-
tools/perf/util/probe-finder.c                |  6 --
tools/perf/util/probe-finder.h                |  6 +-
54 files changed, 154 insertions(+), 259 deletions(-)
delete mode 100644 tools/build/feature/test-dwarf.c
delete mode 100644 tools/build/feature/test-dwarf_getcfi.c
delete mode 100644 tools/build/feature/test-dwarf_getlocations.c
delete mode 100644 tools/build/feature/test-libdw-dwarf-unwind.c
create mode 100644 tools/build/feature/test-libdw.c
[PATCH v3 00/11] Libdw/dwarf build clean up
Posted by Ian Rogers 1 month, 1 week ago
These patches were originally on top of:
https://lore.kernel.org/lkml/20240924003720.617258-1-irogers@google.com/
where it was pointed out that a lot of the libdw conditional
compilation was due to features that have now been standard for 10 or
15 years. The patches remove the conditional compilation assuming the
features are in libdw where the feature test is expanded to check
there pressence. The patch series is now on top of:
https://lore.kernel.org/lkml/20241016235622.52166-1-irogers@google.com/

In the Makefile code, and for `perf record --call-graph`, dwarf tends
to mean unwind or libdw support for dwarf things. To make it clearer
when dwarf really just means libdw numerous build variables and
defines are renamed.

There is some tech debt in the changes as perf check still reports the
values using the old name and for features that are no longer
tested. This can be cleanup for another day.

v3: Move PERF_HAVE_DWARF_REGS cleanup to follow up patch series. Add
    build fix from patch series these changes are on top of.
v2: Instead of renaming PERF_HAVE_DWARF_REGS to PERF_HAVE_LIBDW_REGS,
    remove it.

Ian Rogers (11):
  perf build: Fix LIBDW_DIR
  perf build: Rename NO_DWARF to NO_LIBDW
  perf build: Remove defined but never used variable
  perf build: Rename test-dwarf to test-libdw
  perf build: Combine libdw-dwarf-unwind into libdw feature tests
  perf build: Combine test-dwarf-getlocations into test-libdw
  perf build: Combine test-dwarf-getcfi into test-libdw
  perf probe: Move elfutils support check to libdw check
  perf libdw: Remove unnecessary defines
  perf build: Rename HAVE_DWARF_SUPPORT to HAVE_LIBDW_SUPPORT
  perf build: Rename CONFIG_DWARF to CONFIG_LIBDW

 tools/build/Makefile.feature                  | 11 +---
 tools/build/feature/Makefile                  | 24 ++------
 tools/build/feature/test-all.c                | 16 +-----
 tools/build/feature/test-dwarf.c              | 11 ----
 tools/build/feature/test-dwarf_getcfi.c       |  9 ---
 tools/build/feature/test-dwarf_getlocations.c | 13 -----
 tools/build/feature/test-libdw-dwarf-unwind.c | 14 -----
 tools/build/feature/test-libdw.c              | 56 +++++++++++++++++++
 tools/perf/Documentation/perf-check.txt       |  6 +-
 tools/perf/Makefile.config                    | 47 +++++-----------
 tools/perf/Makefile.perf                      |  2 +-
 tools/perf/arch/arm/Makefile                  |  2 +-
 tools/perf/arch/arm/util/Build                |  2 +-
 tools/perf/arch/arm64/Makefile                |  2 +-
 tools/perf/arch/arm64/util/Build              |  2 +-
 tools/perf/arch/csky/Makefile                 |  2 +-
 tools/perf/arch/csky/util/Build               |  2 +-
 tools/perf/arch/loongarch/Makefile            |  2 +-
 tools/perf/arch/loongarch/util/Build          |  2 +-
 tools/perf/arch/mips/Makefile                 |  2 +-
 tools/perf/arch/mips/util/Build               |  2 +-
 tools/perf/arch/powerpc/Makefile              |  2 +-
 .../perf/arch/powerpc/annotate/instructions.c |  4 +-
 tools/perf/arch/powerpc/util/Build            |  4 +-
 tools/perf/arch/riscv/Makefile                |  2 +-
 tools/perf/arch/riscv/util/Build              |  2 +-
 tools/perf/arch/s390/Makefile                 |  2 +-
 tools/perf/arch/s390/util/Build               |  2 +-
 tools/perf/arch/sh/Makefile                   |  2 +-
 tools/perf/arch/sh/util/Build                 |  2 +-
 tools/perf/arch/sparc/Makefile                |  2 +-
 tools/perf/arch/sparc/util/Build              |  2 +-
 tools/perf/arch/x86/Makefile                  |  2 +-
 tools/perf/arch/x86/annotate/instructions.c   |  2 +-
 tools/perf/arch/x86/util/Build                |  2 +-
 tools/perf/arch/xtensa/Makefile               |  2 +-
 tools/perf/arch/xtensa/util/Build             |  2 +-
 tools/perf/builtin-annotate.c                 |  2 +-
 tools/perf/builtin-check.c                    |  6 +-
 tools/perf/builtin-probe.c                    | 14 ++---
 tools/perf/builtin-report.c                   |  4 +-
 tools/perf/util/Build                         | 12 ++--
 tools/perf/util/annotate-data.h               |  8 +--
 tools/perf/util/debuginfo.h                   |  6 +-
 tools/perf/util/disasm.c                      |  4 +-
 tools/perf/util/disasm.h                      |  4 +-
 tools/perf/util/dwarf-aux.c                   |  6 --
 tools/perf/util/dwarf-aux.h                   | 54 ------------------
 tools/perf/util/genelf.c                      |  4 +-
 tools/perf/util/genelf.h                      |  2 +-
 tools/perf/util/include/dwarf-regs.h          |  6 +-
 tools/perf/util/probe-event.c                 |  4 +-
 tools/perf/util/probe-finder.c                |  6 --
 tools/perf/util/probe-finder.h                |  6 +-
 54 files changed, 154 insertions(+), 259 deletions(-)
 delete mode 100644 tools/build/feature/test-dwarf.c
 delete mode 100644 tools/build/feature/test-dwarf_getcfi.c
 delete mode 100644 tools/build/feature/test-dwarf_getlocations.c
 delete mode 100644 tools/build/feature/test-libdw-dwarf-unwind.c
 create mode 100644 tools/build/feature/test-libdw.c

-- 
2.47.0.105.g07ac214952-goog
Re: [PATCH v3 00/11] Libdw/dwarf build clean up
Posted by Namhyung Kim 1 month, 1 week ago
On Wed, 16 Oct 2024 17:13:43 -0700, Ian Rogers wrote:

> These patches were originally on top of:
> https://lore.kernel.org/lkml/20240924003720.617258-1-irogers@google.com/
> where it was pointed out that a lot of the libdw conditional
> compilation was due to features that have now been standard for 10 or
> 15 years. The patches remove the conditional compilation assuming the
> features are in libdw where the feature test is expanded to check
> there pressence. The patch series is now on top of:
> https://lore.kernel.org/lkml/20241016235622.52166-1-irogers@google.com/
> 
> [...]

Applied to perf-tools-next, thanks!

Best regards,
Namhyung
Re: [PATCH v3 00/11] Libdw/dwarf build clean up
Posted by Namhyung Kim 1 month, 1 week ago
On Wed, Oct 16, 2024 at 05:13:43PM -0700, Ian Rogers wrote:
> These patches were originally on top of:
> https://lore.kernel.org/lkml/20240924003720.617258-1-irogers@google.com/
> where it was pointed out that a lot of the libdw conditional
> compilation was due to features that have now been standard for 10 or
> 15 years. The patches remove the conditional compilation assuming the
> features are in libdw where the feature test is expanded to check
> there pressence. The patch series is now on top of:
> https://lore.kernel.org/lkml/20241016235622.52166-1-irogers@google.com/
> 
> In the Makefile code, and for `perf record --call-graph`, dwarf tends
> to mean unwind or libdw support for dwarf things. To make it clearer
> when dwarf really just means libdw numerous build variables and
> defines are renamed.
> 
> There is some tech debt in the changes as perf check still reports the
> values using the old name and for features that are no longer
> tested. This can be cleanup for another day.
> 
> v3: Move PERF_HAVE_DWARF_REGS cleanup to follow up patch series. Add
>     build fix from patch series these changes are on top of.
> v2: Instead of renaming PERF_HAVE_DWARF_REGS to PERF_HAVE_LIBDW_REGS,
>     remove it.
> 
> Ian Rogers (11):
>   perf build: Fix LIBDW_DIR
>   perf build: Rename NO_DWARF to NO_LIBDW
>   perf build: Remove defined but never used variable
>   perf build: Rename test-dwarf to test-libdw
>   perf build: Combine libdw-dwarf-unwind into libdw feature tests
>   perf build: Combine test-dwarf-getlocations into test-libdw
>   perf build: Combine test-dwarf-getcfi into test-libdw
>   perf probe: Move elfutils support check to libdw check
>   perf libdw: Remove unnecessary defines
>   perf build: Rename HAVE_DWARF_SUPPORT to HAVE_LIBDW_SUPPORT
>   perf build: Rename CONFIG_DWARF to CONFIG_LIBDW

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> 
>  tools/build/Makefile.feature                  | 11 +---
>  tools/build/feature/Makefile                  | 24 ++------
>  tools/build/feature/test-all.c                | 16 +-----
>  tools/build/feature/test-dwarf.c              | 11 ----
>  tools/build/feature/test-dwarf_getcfi.c       |  9 ---
>  tools/build/feature/test-dwarf_getlocations.c | 13 -----
>  tools/build/feature/test-libdw-dwarf-unwind.c | 14 -----
>  tools/build/feature/test-libdw.c              | 56 +++++++++++++++++++
>  tools/perf/Documentation/perf-check.txt       |  6 +-
>  tools/perf/Makefile.config                    | 47 +++++-----------
>  tools/perf/Makefile.perf                      |  2 +-
>  tools/perf/arch/arm/Makefile                  |  2 +-
>  tools/perf/arch/arm/util/Build                |  2 +-
>  tools/perf/arch/arm64/Makefile                |  2 +-
>  tools/perf/arch/arm64/util/Build              |  2 +-
>  tools/perf/arch/csky/Makefile                 |  2 +-
>  tools/perf/arch/csky/util/Build               |  2 +-
>  tools/perf/arch/loongarch/Makefile            |  2 +-
>  tools/perf/arch/loongarch/util/Build          |  2 +-
>  tools/perf/arch/mips/Makefile                 |  2 +-
>  tools/perf/arch/mips/util/Build               |  2 +-
>  tools/perf/arch/powerpc/Makefile              |  2 +-
>  .../perf/arch/powerpc/annotate/instructions.c |  4 +-
>  tools/perf/arch/powerpc/util/Build            |  4 +-
>  tools/perf/arch/riscv/Makefile                |  2 +-
>  tools/perf/arch/riscv/util/Build              |  2 +-
>  tools/perf/arch/s390/Makefile                 |  2 +-
>  tools/perf/arch/s390/util/Build               |  2 +-
>  tools/perf/arch/sh/Makefile                   |  2 +-
>  tools/perf/arch/sh/util/Build                 |  2 +-
>  tools/perf/arch/sparc/Makefile                |  2 +-
>  tools/perf/arch/sparc/util/Build              |  2 +-
>  tools/perf/arch/x86/Makefile                  |  2 +-
>  tools/perf/arch/x86/annotate/instructions.c   |  2 +-
>  tools/perf/arch/x86/util/Build                |  2 +-
>  tools/perf/arch/xtensa/Makefile               |  2 +-
>  tools/perf/arch/xtensa/util/Build             |  2 +-
>  tools/perf/builtin-annotate.c                 |  2 +-
>  tools/perf/builtin-check.c                    |  6 +-
>  tools/perf/builtin-probe.c                    | 14 ++---
>  tools/perf/builtin-report.c                   |  4 +-
>  tools/perf/util/Build                         | 12 ++--
>  tools/perf/util/annotate-data.h               |  8 +--
>  tools/perf/util/debuginfo.h                   |  6 +-
>  tools/perf/util/disasm.c                      |  4 +-
>  tools/perf/util/disasm.h                      |  4 +-
>  tools/perf/util/dwarf-aux.c                   |  6 --
>  tools/perf/util/dwarf-aux.h                   | 54 ------------------
>  tools/perf/util/genelf.c                      |  4 +-
>  tools/perf/util/genelf.h                      |  2 +-
>  tools/perf/util/include/dwarf-regs.h          |  6 +-
>  tools/perf/util/probe-event.c                 |  4 +-
>  tools/perf/util/probe-finder.c                |  6 --
>  tools/perf/util/probe-finder.h                |  6 +-
>  54 files changed, 154 insertions(+), 259 deletions(-)
>  delete mode 100644 tools/build/feature/test-dwarf.c
>  delete mode 100644 tools/build/feature/test-dwarf_getcfi.c
>  delete mode 100644 tools/build/feature/test-dwarf_getlocations.c
>  delete mode 100644 tools/build/feature/test-libdw-dwarf-unwind.c
>  create mode 100644 tools/build/feature/test-libdw.c
> 
> -- 
> 2.47.0.105.g07ac214952-goog
>