linux-yocto-3.4/standard/base: perf scripting updates
cover linux-yocto-3.4/standard/base: perf scripting updates
From: Tom Zanussi <[email protected]>
This patchset comprises the kernel side of the modifications needed to enable the Perl and Python bindings for perf scripting.
Please pull into linux-yocto-3.4 standard/base.
Thanks,
Tom
The following changes since commit a8291fa6f723b0182d2b7033b5d59f412ba7cf72:
Bruce Ashfield (1):
yaffs2: update to 2012-05-29 development head
are available in the git repository at:
git://git.yoctoproject.org/linux-yocto-2.6.37-contrib.git tzanussi/3.4-perf-scripting-standard-base
http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.37-contrib/log/?h=tzanussi/3.4-perf-scripting-standard-base
Tom Zanussi (4):
Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"
perf: use pkg-config instead of python-config
perf: add 'libperl not found' warning
perf: change --root to --prefix for python install
tools/perf/Makefile | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 87 insertions(+), 3 deletions(-)
PATCH 1/4 Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"
From: Tom Zanussi <[email protected]>
This reverts commit 7c35c402e5bc2df6907b8f5d8a495dd6937a1b50.
LIBPERL and LIBPYTHON can now be enabled using the 'perf-scripting' feature.
--- tools/perf/Makefile | 87 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 85 insertions(+), 2 deletions(-)
tools/perf/Makefile +85 -2
@@ -539,14 +539,97 @@ else endif endif -BASIC_CFLAGS += -DNO_LIBPERL -BASIC_CFLAGS += -DNO_LIBPYTHON +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)),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 +endif + +disable-python = $(eval $(disable-python_code)) +define disable-python_code + BASIC_CFLAGS += -DNO_LIBPYTHON + $(if $(1),$(warning No $(1) was found)) + $(warning Python support won't be built) +endef override PYTHON := \ $(call get-executable-or-default,PYTHON,python) ifndef PYTHON $(call disable-python,python interpreter) + python-clean := +else + + PYTHON_WORD := $(call shell-wordify,$(PYTHON)) + + # python extension build directories + PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ + PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/ + PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/ + export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP + + python-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so + + ifdef NO_LIBPYTHON + $(call disable-python) + else + + override PYTHON_CONFIG := \ + $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config) + + ifndef PYTHON_CONFIG + $(call disable-python,python-config tool) + else + + PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG)) + + PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null) + PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS)) + PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) + PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null) + FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS) + + ifneq ($(call try-cc,$(SOURCE_PYTHON_EMBED),$(FLAGS_PYTHON_EMBED)),y) + $(call disable-python,Python.h (for Python 2.x)) + else + + ifneq ($(call try-cc,$(SOURCE_PYTHON_VERSION),$(FLAGS_PYTHON_EMBED)),y) + $(warning Python 3 is not yet supported; please set) + $(warning PYTHON and/or PYTHON_CONFIG appropriately.) + $(warning If you also have Python 2 installed, then) + $(warning try something like:) + $(warning $(and ,)) + $(warning $(and ,) make PYTHON=python2) + $(warning $(and ,)) + $(warning Otherwise, disable Python support entirely:) + $(warning $(and ,)) + $(warning $(and ,) make NO_LIBPYTHON=1) + $(warning $(and ,)) + $(error $(and ,)) + else + ALL_LDFLAGS += $(PYTHON_EMBED_LDFLAGS) + EXTLIBS += $(PYTHON_EMBED_LIBADD) + LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-python.o + LIB_OBJS += $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o + LANG_BINDINGS += $(OUTPUT)python/perf.so + endif + + endif + endif + endif endif ifdef NO_DEMANGLE
Signature · 1 line
1.7.0.4
PATCH 2/4 perf: use pkg-config instead of python-config
From: Tom Zanussi <[email protected]>
Python has build flags available via pkg-config, use those at build-time instead.
--- tools/perf/Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
tools/perf/Makefile +2 -2
@@ -596,10 +596,10 @@ else PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG)) - PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null) + PYTHON_EMBED_LDOPTS := $(shell pkg-config --libs python 2>/dev/null) PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS)) PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) - PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null) + PYTHON_EMBED_CCOPTS := $(shell pkg-config --cflags python 2>/dev/null) FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS) ifneq ($(call try-cc,$(SOURCE_PYTHON_EMBED),$(FLAGS_PYTHON_EMBED)),y)
Signature · 1 line
1.7.0.4
PATCH 3/4 perf: add 'libperl not found' warning
In reply to [email protected]From: Tom Zanussi <[email protected]>
If libperl isn't found, display a message to that effect along with some hints on how to fix it.
--- tools/perf/Makefile | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
tools/perf/Makefile +1 -0
@@ -549,6 +549,7 @@ else FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS) ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED)),y) + msg := $(warning libperl not found, disables Perl scripting support. Please install libperl-dev or perl-devel); BASIC_CFLAGS += -DNO_LIBPERL else ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS)
Signature · 1 line
1.7.0.4
PATCH 4/4 perf: change --root to --prefix for python install
In reply to [email protected]From: Tom Zanussi <[email protected]>
Otherwise we get the sysroot path appended to the build path, not what we want.
--- tools/perf/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
tools/perf/Makefile +1 -1
@@ -954,7 +954,7 @@ install: all $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' install-python_ext: - $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' + $(PYTHON_WORD) util/setup.py --quiet install --prefix='$(DESTDIR_SQ)/usr' install-doc: $(MAKE) -C Documentation install
Signature · 1 line
1.7.0.4
Quoted 4 lines · On 12-07-03 02:07 PM, [email protected] wrote:
From: Tom Zanussi<[email protected]>
This patchset comprises the kernel side of the modifications needed to enable the Perl and Python bindings for perf scripting.
Looks good to me, I'm happy to finally revert the no_perl patch :) I assume that you verified everything happily builds with and without the perf-scripting being available ?
Cheers,
Bruce
Quoted 25 lines
Please pull into linux-yocto-3.4 standard/base.
Thanks,
Tom
The following changes since commit
a8291fa6f723b0182d2b7033b5d59f412ba7cf72:
Bruce Ashfield (1):yaffs2: update to 2012-05-29 development headare available in the git repository at:
git://git.yoctoproject.org/linux-yocto-2.6.37-contrib.git tzanussi/3.4-perf-scripting-standard-base http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.37-contrib/log/?h=tzanussi/3.4-perf-scripting-standard-baseTom Zanussi (4):
Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"
perf: use pkg-config instead of python-config
perf: add 'libperl not found' warning
perf: change --root to --prefix for python installtools/perf/Makefile | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 87 insertions(+), 3 deletions(-)
Quoted 10 lines · Bruce Ashfield
Quoted 4 lines · On 12-07-03 02:07 PM, [email protected] wrote:
From: Tom Zanussi<[email protected]>
This patchset comprises the kernel side of the modifications needed to enable the Perl and Python bindings for perf scripting.
Looks good to me, I'm happy to finally revert the
no_perlpatch :) I assume that you verified everything happily builds with and without the perf-scripting being available ?
Yeah, I built and run-tested several different machines with and without perf-scripting and perf-tui and didn't see any problems...
Tom
Quoted 32 lines
Cheers,
Bruce
Quoted 25 lines
Please pull into linux-yocto-3.4 standard/base.
Thanks,
Tom
The following changes since commit
a8291fa6f723b0182d2b7033b5d59f412ba7cf72:
Bruce Ashfield (1):yaffs2: update to 2012-05-29 development headare available in the git repository at:
git://git.yoctoproject.org/linux-yocto-2.6.37-contrib.git tzanussi/3.4-perf-scripting-standard-base http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.37-contrib/log/?h=tzanussi/3.4-perf-scripting-standard-baseTom Zanussi (4):
Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"
perf: use pkg-config instead of python-config
perf: add 'libperl not found' warning
perf: change --root to --prefix for python installtools/perf/Makefile | 90 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 87 insertions(+), 3 deletions(-)