lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fUf40_4LbsYOavy45L=153bAVuwK_km8UKNQ3imSQ-_2w@mail.gmail.com>
Date: Thu, 26 Sep 2024 08:02:45 -0700
From: Ian Rogers <irogers@...gle.com>
To: Namhyung Kim <namhyung@...nel.org>
Cc: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, 
	Arnaldo Carvalho de Melo <acme@...nel.org>, Mark Rutland <mark.rutland@....com>, 
	Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>, 
	Adrian Hunter <adrian.hunter@...el.com>, Kan Liang <kan.liang@...ux.intel.com>, 
	John Garry <john.g.garry@...cle.com>, Will Deacon <will@...nel.org>, 
	James Clark <james.clark@...aro.org>, Mike Leach <mike.leach@...aro.org>, 
	Leo Yan <leo.yan@...ux.dev>, Guo Ren <guoren@...nel.org>, 
	Paul Walmsley <paul.walmsley@...ive.com>, Palmer Dabbelt <palmer@...belt.com>, 
	Albert Ou <aou@...s.berkeley.edu>, Nick Terrell <terrelln@...com>, 
	Guilherme Amadio <amadio@...too.org>, Changbin Du <changbin.du@...wei.com>, 
	"Steinar H. Gunderson" <sesse@...gle.com>, "Masami Hiramatsu (Google)" <mhiramat@...nel.org>, 
	Aditya Gupta <adityag@...ux.ibm.com>, Athira Rajeev <atrajeev@...ux.vnet.ibm.com>, 
	Masahiro Yamada <masahiroy@...nel.org>, Huacai Chen <chenhuacai@...nel.org>, 
	Bibo Mao <maobibo@...ngson.cn>, Kajol Jain <kjain@...ux.ibm.com>, 
	Anup Patel <anup@...infault.org>, Shenlin Liang <liangshenlin@...incomputing.com>, 
	Atish Patra <atishp@...osinc.com>, Oliver Upton <oliver.upton@...ux.dev>, 
	Chen Pei <cp0613@...ux.alibaba.com>, Dima Kogan <dima@...retsauce.net>, 
	Alexander Lobakin <aleksander.lobakin@...el.com>, "David S. Miller" <davem@...emloft.net>, 
	Przemek Kitszel <przemyslaw.kitszel@...el.com>, linux-kernel@...r.kernel.org, 
	linux-perf-users@...r.kernel.org, Yang Jihong <yangjihong@...edance.com>
Subject: Re: [PATCH v1 01/11] perf build: Rename NO_DWARF to NO_LIBDW

On Wed, Sep 25, 2024 at 5:26 PM Namhyung Kim <namhyung@...nel.org> wrote:
>
> On Tue, Sep 24, 2024 at 09:04:08AM -0700, Ian Rogers wrote:
> > NO_DWARF could mean more than NO_LIBDW support, in particular no
> > libunwind support. Rename to be more intention revealing.
> >
> > Signed-off-by: Ian Rogers <irogers@...gle.com>
> > ---
> >  tools/perf/Makefile.config         | 16 ++++++++--------
> >  tools/perf/Makefile.perf           |  2 +-
> >  tools/perf/arch/arm/Makefile       |  2 +-
> >  tools/perf/arch/arm64/Makefile     |  2 +-
> >  tools/perf/arch/csky/Makefile      |  2 +-
> >  tools/perf/arch/loongarch/Makefile |  2 +-
> >  tools/perf/arch/mips/Makefile      |  2 +-
> >  tools/perf/arch/powerpc/Makefile   |  2 +-
> >  tools/perf/arch/riscv/Makefile     |  2 +-
> >  tools/perf/arch/s390/Makefile      |  2 +-
> >  tools/perf/arch/sh/Makefile        |  2 +-
> >  tools/perf/arch/sparc/Makefile     |  2 +-
> >  tools/perf/arch/x86/Makefile       |  2 +-
> >  tools/perf/arch/xtensa/Makefile    |  2 +-
> >  tools/perf/builtin-probe.c         |  2 +-
> >  15 files changed, 22 insertions(+), 22 deletions(-)
> >
> > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> > index 5e26d3a91b36..55a39211496d 100644
> > --- a/tools/perf/Makefile.config
> > +++ b/tools/perf/Makefile.config
> > @@ -429,7 +429,7 @@ ifeq ($(feature-file-handle), 1)
> >  endif
> >
> >  ifdef NO_LIBELF
> > -  NO_DWARF := 1
> > +  NO_LIBDW := 1
> >    NO_LIBUNWIND := 1
> >    NO_LIBDW_DWARF_UNWIND := 1
> >    NO_LIBBPF := 1
> > @@ -471,9 +471,9 @@ else
> >        endif
> >      endif
> >      ifneq ($(feature-dwarf), 1)
> > -      ifndef NO_DWARF
> > +      ifndef NO_LIBDW
> >          $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev)
> > -        NO_DWARF := 1
> > +        NO_LIBDW := 1
> >        endif
> >      else
> >        ifneq ($(feature-dwarf_getlocations), 1)
> > @@ -496,7 +496,7 @@ ifeq ($(feature-libaio), 1)
> >    endif
> >  endif
> >
> > -ifdef NO_DWARF
> > +ifdef NO_LIBDW
> >    NO_LIBDW_DWARF_UNWIND := 1
> >  endif
> >
> > @@ -574,17 +574,17 @@ ifndef NO_LIBELF
> >      endif
> >    endif
> >
> > -  ifndef NO_DWARF
> > +  ifndef NO_LIBDW
> >      ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
> >        $(warning DWARF register mappings have not been defined for architecture $(SRCARCH), DWARF support disabled)
> > -      NO_DWARF := 1
> > +      NO_LIBDW := 1
> >      else
> >        CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
> >        LDFLAGS += $(LIBDW_LDFLAGS)
> >        EXTLIBS += ${DWARFLIBS}
> >        $(call detected,CONFIG_DWARF)
> >      endif # PERF_HAVE_DWARF_REGS
> > -  endif # NO_DWARF
> > +  endif # NO_LIBDW
> >
> >    ifndef NO_LIBBPF
> >      ifeq ($(feature-bpf), 1)
> > @@ -633,7 +633,7 @@ ifdef PERF_HAVE_JITDUMP
> >  endif
> >
> >  ifeq ($(SRCARCH),powerpc)
> > -  ifndef NO_DWARF
> > +  ifndef NO_LIBDW
> >      CFLAGS += -DHAVE_SKIP_CALLCHAIN_IDX
> >    endif
> >  endif
> > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> > index 9dd2e8d3f3c9..a144bfaf8aeb 100644
> > --- a/tools/perf/Makefile.perf
> > +++ b/tools/perf/Makefile.perf
> > @@ -40,7 +40,7 @@ include ../scripts/utilities.mak
> >  #
> >  # Define EXTRA_PERFLIBS to pass extra libraries to PERFLIBS.
> >  #
> > -# Define NO_DWARF if you do not want debug-info analysis feature at all.
> > +# Define NO_LIBDW if you do not want debug-info analysis feature at all.
>
> Can we keep NO_DWARF for compatibility and set NO_LIBDW=1 internally?
> I think it's fine to change it here to advertise NO_LIBDW over NO_DWARF
> but still want to support NO_DWARF as well.

This would be actively confusing. NO_DWARF should really imply
NO_LIBUNWIND, it is like removing the ability for "perf record
--call-graph dwarf" to work - dwarf meaning libdw or libunwind in the
tool. Having NO_DWARF control NO_LIBDW, I'm not sure what I'm being
asked to do. The point of this clean up is to make the names mean what
they should mean and not something potentially confusingly broader,
but you're asking for the confusingly broader case to mean just libdw.
I don't follow and I don't see how it serves the purpose of the
cleanup.

> Also it seem we don't have an entry in the tests/make for no-dwarf
> build.  Can you please add one too?

Sure.

Thanks,
Ian

> Thanks,
> Namhyung
>
>
> >  #
> >  # Define WERROR=0 to disable treating any warnings as errors.
> >  #
> > diff --git a/tools/perf/arch/arm/Makefile b/tools/perf/arch/arm/Makefile
> > index 1d88fdab13bf..9b164d379548 100644
> > --- a/tools/perf/arch/arm/Makefile
> > +++ b/tools/perf/arch/arm/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >  PERF_HAVE_JITDUMP := 1
> > diff --git a/tools/perf/arch/arm64/Makefile b/tools/perf/arch/arm64/Makefile
> > index 5735ed4479bb..8a5ffbfe809f 100644
> > --- a/tools/perf/arch/arm64/Makefile
> > +++ b/tools/perf/arch/arm64/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >  PERF_HAVE_JITDUMP := 1
> > diff --git a/tools/perf/arch/csky/Makefile b/tools/perf/arch/csky/Makefile
> > index 88c08eed9c7b..119b06a64bed 100644
> > --- a/tools/perf/arch/csky/Makefile
> > +++ b/tools/perf/arch/csky/Makefile
> > @@ -1,4 +1,4 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> > diff --git a/tools/perf/arch/loongarch/Makefile b/tools/perf/arch/loongarch/Makefile
> > index c89d6bb6b184..1cc5eb01f32b 100644
> > --- a/tools/perf/arch/loongarch/Makefile
> > +++ b/tools/perf/arch/loongarch/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >  PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
> > diff --git a/tools/perf/arch/mips/Makefile b/tools/perf/arch/mips/Makefile
> > index cd0b011b3be5..733f7b76f52d 100644
> > --- a/tools/perf/arch/mips/Makefile
> > +++ b/tools/perf/arch/mips/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >
> > diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
> > index bf6d323574f6..7672d555f6cd 100644
> > --- a/tools/perf/arch/powerpc/Makefile
> > +++ b/tools/perf/arch/powerpc/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >
> > diff --git a/tools/perf/arch/riscv/Makefile b/tools/perf/arch/riscv/Makefile
> > index 90c3c476a242..4664a78a1afd 100644
> > --- a/tools/perf/arch/riscv/Makefile
> > +++ b/tools/perf/arch/riscv/Makefile
> > @@ -1,4 +1,4 @@
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >  PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
> > diff --git a/tools/perf/arch/s390/Makefile b/tools/perf/arch/s390/Makefile
> > index 56994e63b43a..3f66e2ede3f7 100644
> > --- a/tools/perf/arch/s390/Makefile
> > +++ b/tools/perf/arch/s390/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >  HAVE_KVM_STAT_SUPPORT := 1
> > diff --git a/tools/perf/arch/sh/Makefile b/tools/perf/arch/sh/Makefile
> > index 88c08eed9c7b..119b06a64bed 100644
> > --- a/tools/perf/arch/sh/Makefile
> > +++ b/tools/perf/arch/sh/Makefile
> > @@ -1,4 +1,4 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> > diff --git a/tools/perf/arch/sparc/Makefile b/tools/perf/arch/sparc/Makefile
> > index 4031db72ba71..7741184894c8 100644
> > --- a/tools/perf/arch/sparc/Makefile
> > +++ b/tools/perf/arch/sparc/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >
> > diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
> > index 67b4969a6738..9aa58acb5564 100644
> > --- a/tools/perf/arch/x86/Makefile
> > +++ b/tools/perf/arch/x86/Makefile
> > @@ -1,5 +1,5 @@
> >  # SPDX-License-Identifier: GPL-2.0
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> >  HAVE_KVM_STAT_SUPPORT := 1
> > diff --git a/tools/perf/arch/xtensa/Makefile b/tools/perf/arch/xtensa/Makefile
> > index 88c08eed9c7b..119b06a64bed 100644
> > --- a/tools/perf/arch/xtensa/Makefile
> > +++ b/tools/perf/arch/xtensa/Makefile
> > @@ -1,4 +1,4 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ifndef NO_DWARF
> > +ifndef NO_LIBDW
> >  PERF_HAVE_DWARF_REGS := 1
> >  endif
> > diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
> > index 003a3bcebfdf..91672bb3047c 100644
> > --- a/tools/perf/builtin-probe.c
> > +++ b/tools/perf/builtin-probe.c
> > @@ -616,7 +616,7 @@ __cmd_probe(int argc, const char **argv)
> >       set_option_flag(options, 'L', "line", PARSE_OPT_EXCLUSIVE);
> >       set_option_flag(options, 'V', "vars", PARSE_OPT_EXCLUSIVE);
> >  #else
> > -# define set_nobuild(s, l, c) set_option_nobuild(options, s, l, "NO_DWARF=1", c)
> > +# define set_nobuild(s, l, c) set_option_nobuild(options, s, l, "NO_LIBDW=1", c)
> >       set_nobuild('L', "line", false);
> >       set_nobuild('V', "vars", false);
> >       set_nobuild('\0', "externs", false);
> > --
> > 2.46.0.792.g87dc391469-goog
> >

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ