From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
"Jiri Olsa" <jolsa@kernel.org>,
"Namhyung Kim" <namhyung@kernel.org>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Tom Rix" <trix@redhat.com>,
"Roberto Sassu" <roberto.sassu@huawei.com>,
"Quentin Monnet" <quentin@isovalent.com>,
"Andres Freund" <andres@anarazel.de>,
"Tiezhu Yang" <yangtiezhu@loongson.cn>,
"Pavithra Gurushankar" <gpavithrasha@gmail.com>,
"Yang Jihong" <yangjihong1@huawei.com>,
"Adrian Hunter" <adrian.hunter@intel.com>,
"Leo Yan" <leo.yan@linaro.org>, "Martin Liška" <mliska@suse.cz>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
llvm@lists.linux.dev, "Stephane Eranian" <eranian@google.com>
Subject: Re: [PATCH v1 07/13] perf build: Make binutil libraries opt in
Date: Mon, 13 Mar 2023 16:37:55 -0300 [thread overview]
Message-ID: <ZA97k8ZP4lAC0tia@kernel.org> (raw)
In-Reply-To: <20230311065753.3012826-8-irogers@google.com>
Em Fri, Mar 10, 2023 at 10:57:47PM -0800, Ian Rogers escreveu:
> binutils is GPLv3 so distributions cannot ship perf linked against
> libbfd and libiberty as the licenses are incompatible. Rather than
> defaulting the build to opting in to libbfd and libiberty support and
> opting out via NO_LIBBFD=1 and NO_DEMANGLE=1, make building against
> the libraries optional and enabled with BUILD_NONDISTRO=1.
So now I get this:
⬢[acme@toolbox perf-tools-next]$ perf -vv
perf version 6.3.rc1.gace4d44d094c
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ OFF ] # HAVE_LIBBFD_SUPPORT
debuginfod: [ on ] # HAVE_DEBUGINFOD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ on ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
aio: [ on ] # HAVE_AIO_SUPPORT
zstd: [ on ] # HAVE_ZSTD_SUPPORT
libpfm4: [ on ] # HAVE_LIBPFM
libtraceevent: [ on ] # HAVE_LIBTRACEEVENT
BPF skeletons: [ on ] # HAVE_BPF_SKEL
⬢[acme@toolbox perf-tools-next]$
Shouldn't we have, right next to libbpf that libstdc++ feature status?
- Arnaldo
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> tools/perf/Makefile.config | 25 ++++++++++---------------
> tools/perf/Makefile.perf | 2 ++
> tools/perf/tests/make | 2 ++
> 3 files changed, 14 insertions(+), 15 deletions(-)
>
> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> index 2557654d8e29..5756498248e0 100644
> --- a/tools/perf/Makefile.config
> +++ b/tools/perf/Makefile.config
> @@ -882,7 +882,7 @@ ifneq ($(NO_JEVENTS),1)
> endif
> endif
>
> -ifndef NO_LIBBFD
> +ifdef BUILD_NONDISTRO
> ifeq ($(feature-libbfd), 1)
> EXTLIBS += -lbfd -lopcodes
> else
> @@ -905,6 +905,7 @@ ifndef NO_LIBBFD
> $(call feature_check,disassembler-init-styled)
> endif
>
> + CFLAGS += -DHAVE_LIBBFD_SUPPORT
> ifeq ($(feature-libbfd-buildid), 1)
> CFLAGS += -DHAVE_LIBBFD_BUILDID_SUPPORT
> else
> @@ -915,32 +916,26 @@ endif
> ifdef NO_DEMANGLE
> CFLAGS += -DNO_DEMANGLE
> else
> - ifdef HAVE_CPLUS_DEMANGLE_SUPPORT
> - EXTLIBS += -liberty
> - else
> + ifdef BUILD_NONDISTRO
> ifeq ($(filter -liberty,$(EXTLIBS)),)
> - $(call feature_check,cplus-demangle)
> -
> - # we dont have neither HAVE_CPLUS_DEMANGLE_SUPPORT
> - # or any of 'bfd iberty z' trinity
> - ifeq ($(feature-cplus-demangle), 1)
> + ifdef HAVE_CPLUS_DEMANGLE_SUPPORT
> EXTLIBS += -liberty
> else
> - msg := $(warning No bfd.h/libbfd found, please install binutils-dev[el]/zlib-static/libiberty-dev to gain symbol demangling)
> - CFLAGS += -DNO_DEMANGLE
> + $(call feature_check,cplus-demangle)
> + ifeq ($(feature-cplus-demangle), 1)
> + EXTLIBS += -liberty
> + endif
> endif
> endif
> endif
>
> ifneq ($(filter -liberty,$(EXTLIBS)),)
> CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
> + else
> + CFLAGS += -DNO_DEMANGLE
> endif
> endif
>
> -ifneq ($(filter -lbfd,$(EXTLIBS)),)
> - CFLAGS += -DHAVE_LIBBFD_SUPPORT
> -endif
> -
> ifndef NO_ZLIB
> ifeq ($(feature-zlib), 1)
> CFLAGS += -DHAVE_ZLIB_SUPPORT
> diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> index 283ee4f56234..a35bc995d5d8 100644
> --- a/tools/perf/Makefile.perf
> +++ b/tools/perf/Makefile.perf
> @@ -128,6 +128,8 @@ include ../scripts/utilities.mak
> #
> # Define NO_BPF_SKEL to disable BPF skeletons
> #
> +# Define BUILD_NONDISTRO to enable building an linking against libbfd and
> +# libiberty distribution license incompatible libraries.
>
> # As per kernel Makefile, avoid funny character set dependencies
> unexport LC_ALL
> diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> index deb37fb982e9..c2f74ed43418 100644
> --- a/tools/perf/tests/make
> +++ b/tools/perf/tests/make
> @@ -68,6 +68,7 @@ python_perf_so := $(shell $(MAKE) python_perf_target|grep "Target is:"|awk '{pri
> make_clean_all := clean all
> make_python_perf_so := $(python_perf_so)
> make_debug := DEBUG=1
> +make_nondistro := BUILD_NONDISTRO=1
> make_no_libperl := NO_LIBPERL=1
> make_no_libpython := NO_LIBPYTHON=1
> make_no_scripts := NO_LIBPYTHON=1 NO_LIBPERL=1
> @@ -134,6 +135,7 @@ MAKE_F := $(MAKE) -f $(MK)
> endif
> run += make_python_perf_so
> run += make_debug
> +run += make_nondistro
> run += make_no_libperl
> run += make_no_libpython
> run += make_no_scripts
> --
> 2.40.0.rc1.284.g88254d51c5-goog
>
--
- Arnaldo
next prev parent reply other threads:[~2023-03-13 19:38 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-11 6:57 [PATCH v1 00/13] Perf tool build improvements Ian Rogers
2023-03-11 6:57 ` [PATCH v1 01/13] perf build: Support python/perf.so testing Ian Rogers
2023-03-11 6:57 ` [PATCH v1 02/13] perf build: Make BUILD_BPF_SKEL default, rename to NO_BPF_SKEL Ian Rogers
2023-03-13 20:19 ` Arnaldo Carvalho de Melo
2023-03-13 20:27 ` Ian Rogers
2023-03-13 20:34 ` Arnaldo Carvalho de Melo
2023-03-13 20:59 ` Arnaldo Carvalho de Melo
2023-03-13 21:05 ` Arnaldo Carvalho de Melo
2023-03-11 6:57 ` [PATCH v1 03/13] perf build: Remove unused HAVE_GLIBC_SUPPORT Ian Rogers
2023-03-11 6:57 ` [PATCH v1 04/13] perf build: Error if no libelf and NO_LIBELF isn't set Ian Rogers
2023-03-13 19:45 ` Arnaldo Carvalho de Melo
2023-03-13 20:18 ` Ian Rogers
2023-03-11 6:57 ` [PATCH v1 05/13] perf util: Remove weak sched_getcpu Ian Rogers
2023-03-11 6:57 ` [PATCH v1 06/13] perf build: Error if jevents won't work and NO_JEVENTS=1 isn't set Ian Rogers
2023-03-11 6:57 ` [PATCH v1 07/13] perf build: Make binutil libraries opt in Ian Rogers
2023-03-13 19:37 ` Arnaldo Carvalho de Melo [this message]
2023-03-11 6:57 ` [PATCH v1 08/13] tools build: Add feature test for abi::__cxa_demangle Ian Rogers
2023-03-11 6:57 ` [PATCH v1 09/13] perf symbol: Add abi::__cxa_demangle C++ demangling support Ian Rogers
2023-03-30 14:08 ` James Clark
2023-03-30 16:50 ` Ian Rogers
2023-03-30 19:03 ` Ian Rogers
2023-03-31 9:27 ` James Clark
2023-03-11 6:57 ` [PATCH v1 10/13] perf build: Switch libpfm4 to opt-out rather than opt-in Ian Rogers
2023-03-11 6:57 ` [PATCH v1 11/13] perf build: If libtraceevent isn't present error the build Ian Rogers
2023-03-11 6:57 ` [PATCH v1 12/13] tools headers: Make the difference output easier to read Ian Rogers
2023-03-13 19:35 ` Arnaldo Carvalho de Melo
2023-03-13 20:14 ` Ian Rogers
2023-03-11 6:57 ` [PATCH v1 13/13] perf build: Remove redundant NO_NEWT build option Ian Rogers
2023-03-14 12:11 ` [PATCH v1 00/13] Perf tool build improvements Arnaldo Carvalho de Melo
2023-03-14 12:12 ` Arnaldo Carvalho de Melo
2023-03-14 12:27 ` Arnaldo Carvalho de Melo
2023-03-14 12:29 ` Arnaldo Carvalho de Melo
2023-03-14 12:21 ` Adrian Hunter
2023-03-14 12:28 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZA97k8ZP4lAC0tia@kernel.org \
--to=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=andres@anarazel.de \
--cc=eranian@google.com \
--cc=gpavithrasha@gmail.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=mliska@suse.cz \
--cc=namhyung@kernel.org \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=peterz@infradead.org \
--cc=quentin@isovalent.com \
--cc=roberto.sassu@huawei.com \
--cc=trix@redhat.com \
--cc=yangjihong1@huawei.com \
--cc=yangtiezhu@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.