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

Ian Rogers posted 11 patches 2 months ago
There is a newer version of this series
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                    | 57 ++++++-------------
tools/perf/Makefile.perf                      |  2 +-
tools/perf/arch/arm/Makefile                  |  4 +-
tools/perf/arch/arm/util/Build                |  2 +-
tools/perf/arch/arm64/Makefile                |  4 +-
tools/perf/arch/arm64/util/Build              |  2 +-
tools/perf/arch/csky/Makefile                 |  4 +-
tools/perf/arch/csky/util/Build               |  2 +-
tools/perf/arch/loongarch/Makefile            |  4 +-
tools/perf/arch/loongarch/util/Build          |  2 +-
tools/perf/arch/mips/Makefile                 |  4 +-
tools/perf/arch/mips/util/Build               |  2 +-
tools/perf/arch/powerpc/Makefile              |  4 +-
.../perf/arch/powerpc/annotate/instructions.c |  4 +-
tools/perf/arch/powerpc/util/Build            |  4 +-
tools/perf/arch/riscv/Makefile                |  4 +-
tools/perf/arch/riscv/util/Build              |  2 +-
tools/perf/arch/s390/Makefile                 |  4 +-
tools/perf/arch/s390/util/Build               |  2 +-
tools/perf/arch/sh/Makefile                   |  4 +-
tools/perf/arch/sh/util/Build                 |  2 +-
tools/perf/arch/sparc/Makefile                |  4 +-
tools/perf/arch/sparc/util/Build              |  2 +-
tools/perf/arch/x86/Makefile                  |  4 +-
tools/perf/arch/x86/annotate/instructions.c   |  2 +-
tools/perf/arch/x86/util/Build                |  2 +-
tools/perf/arch/xtensa/Makefile               |  4 +-
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, 168 insertions(+), 279 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 v1 00/11] Libdw/dwarf build clean up
Posted by Ian Rogers 2 months ago
There patches are 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.

In the Makefile code 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.

Ian Rogers (11):
  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
  perf build: Rename PERF_HAVE_DWARF_REGS to PERF_HAVE_LIBDW_REGS

 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                    | 57 ++++++-------------
 tools/perf/Makefile.perf                      |  2 +-
 tools/perf/arch/arm/Makefile                  |  4 +-
 tools/perf/arch/arm/util/Build                |  2 +-
 tools/perf/arch/arm64/Makefile                |  4 +-
 tools/perf/arch/arm64/util/Build              |  2 +-
 tools/perf/arch/csky/Makefile                 |  4 +-
 tools/perf/arch/csky/util/Build               |  2 +-
 tools/perf/arch/loongarch/Makefile            |  4 +-
 tools/perf/arch/loongarch/util/Build          |  2 +-
 tools/perf/arch/mips/Makefile                 |  4 +-
 tools/perf/arch/mips/util/Build               |  2 +-
 tools/perf/arch/powerpc/Makefile              |  4 +-
 .../perf/arch/powerpc/annotate/instructions.c |  4 +-
 tools/perf/arch/powerpc/util/Build            |  4 +-
 tools/perf/arch/riscv/Makefile                |  4 +-
 tools/perf/arch/riscv/util/Build              |  2 +-
 tools/perf/arch/s390/Makefile                 |  4 +-
 tools/perf/arch/s390/util/Build               |  2 +-
 tools/perf/arch/sh/Makefile                   |  4 +-
 tools/perf/arch/sh/util/Build                 |  2 +-
 tools/perf/arch/sparc/Makefile                |  4 +-
 tools/perf/arch/sparc/util/Build              |  2 +-
 tools/perf/arch/x86/Makefile                  |  4 +-
 tools/perf/arch/x86/annotate/instructions.c   |  2 +-
 tools/perf/arch/x86/util/Build                |  2 +-
 tools/perf/arch/xtensa/Makefile               |  4 +-
 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, 168 insertions(+), 279 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.46.0.792.g87dc391469-goog
Re: [PATCH v1 00/11] Libdw/dwarf build clean up
Posted by Leo Yan 2 months ago
On 9/24/2024 5:04 PM, Ian Rogers wrote:

> The patches remove the conditional compilation assuming the
> features are in libdw where the feature test is expanded to check
> there pressence.
> 
> In the Makefile code 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.

I built for Arm64 target with static and dynamic linkage, both can build
successfully in Ubuntu 24.04 and Debian bookworm. FWIW:

Tested-by: Leo Yan <leo.yan@arm.com>