From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752357Ab3DBEAu (ORCPT ); Tue, 2 Apr 2013 00:00:50 -0400 Received: from mail-da0-f54.google.com ([209.85.210.54]:47531 "EHLO mail-da0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760391Ab3DBDyv (ORCPT ); Mon, 1 Apr 2013 23:54:51 -0400 From: David Ahern To: acme@ghostprotocols.net, linux-kernel@vger.kernel.org Cc: David Ahern , Borislav Petkov , Frederic Weisbecker , Ingo Molnar , Jiri Olsa , Namhyung Kim , Peter Zijlstra , Stephane Eranian Subject: [PATCH 02/23] perf: make perl support based on CONFIG_LIBPERL Date: Mon, 1 Apr 2013 21:54:16 -0600 Message-Id: <1364874877-5618-3-git-send-email-dsahern@gmail.com> X-Mailer: git-send-email 1.7.10.1 In-Reply-To: <1364874877-5618-1-git-send-email-dsahern@gmail.com> References: <1364874877-5618-1-git-send-email-dsahern@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: David Ahern Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian --- tools/perf/Makefile | 34 ++++++++++++++----------------- tools/perf/Pconfig | 2 ++ tools/perf/builtin-script.c | 3 ++- tools/perf/config/feature-tests.mak | 4 ++-- tools/perf/util/trace-event-scripting.c | 13 ++++++------ 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 4e54d05..af7b746 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -16,8 +16,6 @@ include config/utilities.mak # # Define CROSS_COMPILE as prefix name of compiler if you want cross-builds. # -# Define NO_LIBPERL to disable perl script extension. -# # Define NO_LIBPYTHON to disable python script extension. # # Define PYTHON to point to the python binary if the default @@ -718,23 +716,21 @@ ifndef NO_GTK2 endif endif -ifdef NO_LIBPERL - BASIC_CFLAGS += -DNO_LIBPERL -else - PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null) - PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS)) - PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS)) - PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` - FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS) - - ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED),perl),y) - BASIC_CFLAGS += -DNO_LIBPERL - else - ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS) - EXTLIBS += $(PERL_EMBED_LIBADD) - LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o - LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o - endif +ifdef CONFIG_LIBPERL + PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null) + PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS)) + PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS)) + PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` + FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS) + + ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED)),y) + $(error perl module ExtUtils::Embed not installed. Install it or unset CONFIG_LIBPERL to continue) + endif + + ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS) + EXTLIBS += $(PERL_EMBED_LIBADD) + LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o + LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o endif disable-python = $(eval $(disable-python_code)) diff --git a/tools/perf/Pconfig b/tools/perf/Pconfig index e69de29..a636af3 100644 --- a/tools/perf/Pconfig +++ b/tools/perf/Pconfig @@ -0,0 +1,2 @@ +config LIBPERL + bool "Enable support for perl scripting engine" diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 92d4658..7841533 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -16,6 +16,7 @@ #include "util/evsel.h" #include "util/sort.h" #include +#include static char const *script_name; static char const *generate_script_lang; @@ -1110,7 +1111,7 @@ int find_scripts(char **scripts_array, char **scripts_path_array) for_each_lang(scripts_path, scripts_dir, lang_dirent, lang_next) { snprintf(lang_path, MAXPATHLEN, "%s/%s", scripts_path, lang_dirent.d_name); -#ifdef NO_LIBPERL +#ifndef CONFIG_LIBPERL if (strstr(lang_path, "perl")) continue; #endif diff --git a/tools/perf/config/feature-tests.mak b/tools/perf/config/feature-tests.mak index b4eabb4..1222b33 100644 --- a/tools/perf/config/feature-tests.mak +++ b/tools/perf/config/feature-tests.mak @@ -102,7 +102,7 @@ int main(void) endef endif -ifndef NO_LIBPERL +ifdef CONFIG_LIBPERL define SOURCE_PERL_EMBED #include #include @@ -235,4 +235,4 @@ int main(void) numa_available(); return 0; } -endef \ No newline at end of file +endef diff --git a/tools/perf/util/trace-event-scripting.c b/tools/perf/util/trace-event-scripting.c index 8715a10..3343d97 100644 --- a/tools/perf/util/trace-event-scripting.c +++ b/tools/perf/util/trace-event-scripting.c @@ -27,6 +27,7 @@ #include "../perf.h" #include "util.h" #include "trace-event.h" +#include struct scripting_context *scripting_context; @@ -110,7 +111,7 @@ void setup_python_scripting(void) static void print_perl_unsupported_msg(void) { fprintf(stderr, "Perl scripting not supported." - " Install libperl and rebuild perf to enable it.\n" + " Enable CONFIG_LIBPERL and rebuild perf.\n" "For example:\n # apt-get install libperl-dev (ubuntu)" "\n # yum install 'perl(ExtUtils::Embed)' (Fedora)" "\n etc.\n"); @@ -156,16 +157,16 @@ static void register_perl_scripting(struct scripting_ops *scripting_ops) scripting_context = malloc(sizeof(struct scripting_context)); } -#ifdef NO_LIBPERL +#ifdef CONFIG_LIBPERL +extern struct scripting_ops perl_scripting_ops; + void setup_perl_scripting(void) { - register_perl_scripting(&perl_scripting_unsupported_ops); + register_perl_scripting(&perl_scripting_ops); } #else -extern struct scripting_ops perl_scripting_ops; - void setup_perl_scripting(void) { - register_perl_scripting(&perl_scripting_ops); + register_perl_scripting(&perl_scripting_unsupported_ops); } #endif -- 1.7.10.1