Message ID | 20210923001024.550263-1-irogers@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b758a61b391fb5ed749f4848f444d8223ae0a324 |
Headers | show |
Series | [v3,1/4] perf: Enable libtracefs dynamic linking | expand |
Em Wed, Sep 22, 2021 at 05:10:21PM -0700, Ian Rogers escreveu: > Currently libtracefs isn't used by perf, but there are potential > improvements by using it as identified Steven Rostedt's e-mail: > https://lore.kernel.org/lkml/20210610154759.1ef958f0@oasis.local.home/ > > This change is modelled on the dynamic libtraceevent patch by Michael > Petlan: > https://lore.kernel.org/linux-perf-users/20210428092023.4009-1-mpetlan@redhat.com/ > > v3. Adds file missed in v1 and v2 spotted by Jiri Olsa. Thanks, applied. - Arnaldo > Signed-off-by: Ian Rogers <irogers@google.com> > --- > tools/build/Makefile.feature | 1 + > tools/build/feature/Makefile | 4 ++++ > tools/build/feature/test-libtracefs.c | 10 ++++++++++ > tools/perf/Makefile.config | 9 +++++++++ > tools/perf/Makefile.perf | 2 ++ > 5 files changed, 26 insertions(+) > create mode 100644 tools/build/feature/test-libtracefs.c > > diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature > index 3dd2f68366f9..45a9a59828c3 100644 > --- a/tools/build/Makefile.feature > +++ b/tools/build/Makefile.feature > @@ -52,6 +52,7 @@ FEATURE_TESTS_BASIC := \ > libslang \ > libslang-include-subdir \ > libtraceevent \ > + libtracefs \ > libcrypto \ > libunwind \ > pthread-attr-setaffinity-np \ > diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile > index eff55d287db1..d024b5204ba0 100644 > --- a/tools/build/feature/Makefile > +++ b/tools/build/feature/Makefile > @@ -36,6 +36,7 @@ FILES= \ > test-libslang.bin \ > test-libslang-include-subdir.bin \ > test-libtraceevent.bin \ > + test-libtracefs.bin \ > test-libcrypto.bin \ > test-libunwind.bin \ > test-libunwind-debug-frame.bin \ > @@ -199,6 +200,9 @@ $(OUTPUT)test-libslang-include-subdir.bin: > $(OUTPUT)test-libtraceevent.bin: > $(BUILD) -ltraceevent > > +$(OUTPUT)test-libtracefs.bin: > + $(BUILD) -ltracefs > + > $(OUTPUT)test-libcrypto.bin: > $(BUILD) -lcrypto > > diff --git a/tools/build/feature/test-libtracefs.c b/tools/build/feature/test-libtracefs.c > new file mode 100644 > index 000000000000..8eff16c0c10b > --- /dev/null > +++ b/tools/build/feature/test-libtracefs.c > @@ -0,0 +1,10 @@ > +// SPDX-License-Identifier: GPL-2.0 > +#include <tracefs/tracefs.h> > + > +int main(void) > +{ > + struct tracefs_instance *inst = tracefs_instance_create("dummy"); > + > + tracefs_instance_destroy(inst); > + return 0; > +} > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > index 446180401e26..00ec900ddbca 100644 > --- a/tools/perf/Makefile.config > +++ b/tools/perf/Makefile.config > @@ -1098,6 +1098,15 @@ ifdef LIBTRACEEVENT_DYNAMIC > endif > endif > > +ifdef LIBTRACEFS_DYNAMIC > + $(call feature_check,libtracefs) > + ifeq ($(feature-libtracefs), 1) > + EXTLIBS += -ltracefs > + else > + dummy := $(error Error: No libtracefs devel library found, please install libtracefs-dev); > + endif > +endif > + > # Among the variables below, these: > # perfexecdir > # perf_include_dir > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index e04313c4d840..7df13e74450c 100644 > --- a/tools/perf/Makefile.perf > +++ b/tools/perf/Makefile.perf > @@ -130,6 +130,8 @@ include ../scripts/utilities.mak > # > # Define LIBTRACEEVENT_DYNAMIC to enable libtraceevent dynamic linking > # > +# Define LIBTRACEFS_DYNAMIC to enable libtracefs dynamic linking > +# > > # As per kernel Makefile, avoid funny character set dependencies > unexport LC_ALL > -- > 2.33.0.464.g1972c5931b-goog
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature index 3dd2f68366f9..45a9a59828c3 100644 --- a/tools/build/Makefile.feature +++ b/tools/build/Makefile.feature @@ -52,6 +52,7 @@ FEATURE_TESTS_BASIC := \ libslang \ libslang-include-subdir \ libtraceevent \ + libtracefs \ libcrypto \ libunwind \ pthread-attr-setaffinity-np \ diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile index eff55d287db1..d024b5204ba0 100644 --- a/tools/build/feature/Makefile +++ b/tools/build/feature/Makefile @@ -36,6 +36,7 @@ FILES= \ test-libslang.bin \ test-libslang-include-subdir.bin \ test-libtraceevent.bin \ + test-libtracefs.bin \ test-libcrypto.bin \ test-libunwind.bin \ test-libunwind-debug-frame.bin \ @@ -199,6 +200,9 @@ $(OUTPUT)test-libslang-include-subdir.bin: $(OUTPUT)test-libtraceevent.bin: $(BUILD) -ltraceevent +$(OUTPUT)test-libtracefs.bin: + $(BUILD) -ltracefs + $(OUTPUT)test-libcrypto.bin: $(BUILD) -lcrypto diff --git a/tools/build/feature/test-libtracefs.c b/tools/build/feature/test-libtracefs.c new file mode 100644 index 000000000000..8eff16c0c10b --- /dev/null +++ b/tools/build/feature/test-libtracefs.c @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +#include <tracefs/tracefs.h> + +int main(void) +{ + struct tracefs_instance *inst = tracefs_instance_create("dummy"); + + tracefs_instance_destroy(inst); + return 0; +} diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index 446180401e26..00ec900ddbca 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -1098,6 +1098,15 @@ ifdef LIBTRACEEVENT_DYNAMIC endif endif +ifdef LIBTRACEFS_DYNAMIC + $(call feature_check,libtracefs) + ifeq ($(feature-libtracefs), 1) + EXTLIBS += -ltracefs + else + dummy := $(error Error: No libtracefs devel library found, please install libtracefs-dev); + endif +endif + # Among the variables below, these: # perfexecdir # perf_include_dir diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index e04313c4d840..7df13e74450c 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -130,6 +130,8 @@ include ../scripts/utilities.mak # # Define LIBTRACEEVENT_DYNAMIC to enable libtraceevent dynamic linking # +# Define LIBTRACEFS_DYNAMIC to enable libtracefs dynamic linking +# # As per kernel Makefile, avoid funny character set dependencies unexport LC_ALL
Currently libtracefs isn't used by perf, but there are potential improvements by using it as identified Steven Rostedt's e-mail: https://lore.kernel.org/lkml/20210610154759.1ef958f0@oasis.local.home/ This change is modelled on the dynamic libtraceevent patch by Michael Petlan: https://lore.kernel.org/linux-perf-users/20210428092023.4009-1-mpetlan@redhat.com/ v3. Adds file missed in v1 and v2 spotted by Jiri Olsa. Signed-off-by: Ian Rogers <irogers@google.com> --- tools/build/Makefile.feature | 1 + tools/build/feature/Makefile | 4 ++++ tools/build/feature/test-libtracefs.c | 10 ++++++++++ tools/perf/Makefile.config | 9 +++++++++ tools/perf/Makefile.perf | 2 ++ 5 files changed, 26 insertions(+) create mode 100644 tools/build/feature/test-libtracefs.c