diff options
Diffstat (limited to 'meta/recipes-kernel/systemtap')
10 files changed, 191 insertions, 60 deletions
diff --git a/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb b/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb index 758908bff9..46820ef489 100644 --- a/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb +++ b/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb @@ -4,8 +4,6 @@ require systemtap_git.inc DEPENDS = "systemtap virtual/kernel" -PR = "r1" - # On systems without CONFIG_UTRACE, this package is empty. ALLOW_EMPTY_${PN} = "1" @@ -15,8 +13,6 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemtap:" FILES_${PN} += "${datadir}/systemtap/runtime/uprobes" -EXTRA_OEMAKE = "" - # Compile and install the uprobes kernel module on machines with utrace # support. Note that staprun expects it in the systemtap/runtime directory, # not in /lib/modules. diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch b/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch new file mode 100644 index 0000000000..742b1187fc --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/0001-Do-not-let-configure-write-a-python-location-into-th.patch @@ -0,0 +1,25 @@ +From ab29615ed6c2e779b472903564dc683dc1015de7 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 22 Feb 2017 13:37:33 +0200 +Subject: [PATCH] Do not let configure write a python location into the dtrace + binary + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + dtrace.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dtrace.in b/dtrace.in +index 5e1cf8079..a24229cbc 100644 +--- a/dtrace.in ++++ b/dtrace.in +@@ -1,4 +1,4 @@ +-#!@preferred_python@ ++#!/usr/bin/python3 + # vim: et sta sts=4 sw=4 ts=8 + + # This handles the systemtap equivalent of +-- +2.11.0 + diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-Install-python-modules-to-correct-library-dir.patch b/meta/recipes-kernel/systemtap/systemtap/0001-Install-python-modules-to-correct-library-dir.patch new file mode 100644 index 0000000000..528864cc93 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/0001-Install-python-modules-to-correct-library-dir.patch @@ -0,0 +1,36 @@ +From 2ada22f05460223924efe54080cb4419e2b4c276 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Fri, 24 Feb 2017 17:53:02 +0200 +Subject: [PATCH] Install python modules to correct library dir. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + python/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/python/Makefile.am b/python/Makefile.am +index a254480f9..efe9f3c01 100644 +--- a/python/Makefile.am ++++ b/python/Makefile.am +@@ -47,7 +47,7 @@ install-exec-local: + if HAVE_PYTHON2_PROBES + (cd $(srcdir); CFLAGS="$(AM_CPPFLAGS)" $(PYTHON) setup.py build \ + --build-base $(shell readlink -f $(builddir))/py2build \ +- install --prefix $(DESTDIR)$(prefix) \ ++ install --prefix $(DESTDIR)$(prefix) --install-lib=$(DESTDIR)${pythondir} \ + --single-version-externally-managed \ + --record $(shell readlink -f $(builddir))/py2build/install_files.txt \ + --verbose) +@@ -55,7 +55,7 @@ endif + if HAVE_PYTHON3_PROBES + (cd $(srcdir); CFLAGS="$(AM_CPPFLAGS)" $(PYTHON3) setup.py build \ + --build-base $(shell readlink -f $(builddir))/py3build \ +- install --prefix $(DESTDIR)$(prefix) \ ++ install --prefix $(DESTDIR)$(prefix) --install-lib=$(DESTDIR)${python3dir} \ + --single-version-externally-managed \ + --record $(shell readlink -f $(builddir))/py3build/install_files.txt \ + --verbose) +-- +2.11.0 + diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-buildrun-remove-quotes-around-I-include-line.patch b/meta/recipes-kernel/systemtap/systemtap/0001-buildrun-remove-quotes-around-I-include-line.patch new file mode 100644 index 0000000000..7996fdde73 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/0001-buildrun-remove-quotes-around-I-include-line.patch @@ -0,0 +1,38 @@ +From 75c4aec6de3a615909f3283eac585760de101b8c Mon Sep 17 00:00:00 2001 +From: Saul Wold <sgw@linux.intel.com> +Date: Tue, 7 Mar 2017 10:46:12 -0800 +Subject: [PATCH] buildrun: remove quotes around -I include line + +By having the quotes, the kernel Makefile addtree macro adds the +kernel $srctree directory as a prefix and causes compilation failures. +Removing the quotes resolves the issue. + +This is trimmed from the verbose output of the GCC command line +Before: + -I/srv/sdb/builds/4.9/tmp/work-shared/qemux86-64/kernel-source/"/srv/sdb/releases/jethro/builds/4.1/tmp/sysroots/x86_64-linux/usr/share/systemtap/runtime" + +After: + -I/srv/sdb/builds/4.9/tmp/sysroots/x86_64-linux/usr/share/systemtap/runtime + +Upstream-Status: Pending +Signed-off-by: Saul Wold <sgw@linux.intel.com> +--- + buildrun.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/buildrun.cxx b/buildrun.cxx +index aaea64c..8a8ee9f 100644 +--- a/buildrun.cxx ++++ b/buildrun.cxx +@@ -495,7 +495,7 @@ compile_pass (systemtap_session& s) + #if CHECK_POINTER_ARITH_PR5947 + o << "EXTRA_CFLAGS += -Wpointer-arith" << endl; + #endif +- o << "EXTRA_CFLAGS += -I\"" << s.runtime_path << "\"" << endl; ++ o << "EXTRA_CFLAGS += -I" << s.runtime_path << endl; + // XXX: this may help ppc toc overflow + // o << "CFLAGS := $(subst -Os,-O2,$(CFLAGS)) -fminimal-toc" << endl; + o << "obj-m := " << s.module_name << ".o" << endl; +-- +2.7.4 + diff --git a/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch b/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch deleted file mode 100644 index 33a89940ae..0000000000 --- a/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch +++ /dev/null @@ -1,19 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Tom Zanussi <tom.zanussi@intel.com> - -Index: git/doc/SystemTap_Tapset_Reference/Makefile.am -=================================================================== ---- git.orig/doc/SystemTap_Tapset_Reference/Makefile.am 2012-04-13 08:43:46.263339003 -0500 -+++ git/doc/SystemTap_Tapset_Reference/Makefile.am 2012-04-13 09:31:22.470083915 -0500 -@@ -27,6 +27,10 @@ - noinst_PROGRAMS = docproc - SRCTREE=$(abs_top_srcdir)/ - DOCPROC=$(abs_builddir)/docproc -+docproc_LINK = $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ -+ -+docproc.o: $(srcdir)/docproc.c -+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) -o $@ $(srcdir)/docproc.c - - all: $(PDFDOCS) stamp-htmldocs stamp-mandocs - tapsets.xml: docproc $(shell find $(SRCTREE)/tapset -name '*.stp') diff --git a/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch b/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch new file mode 100644 index 0000000000..b7ee0701b1 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch @@ -0,0 +1,40 @@ +From 93fc4744fedf6fc593ee656968da97f7b1862ada Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Tue, 4 Oct 2016 16:37:53 +0100 +Subject: [PATCH 4/6] systemtap: rationalise dependencies + +Add an option to explicitly disable the monitor (and therefore the dependency on +json-c and ncurses). + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- + configure.ac | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6bd0c5fc4..2ea9b3cbf 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -752,13 +752,16 @@ dnl We want either (or both) python probe support. + AM_CONDITIONAL([HAVE_PYTHON_PROBES], + [test "x$have_python2_support" = "xyes" -o "x$have_python3_support" = "xyes"]) + ++AC_ARG_ENABLE([monitor], AS_HELP_STRING([--disable-monitor],[Disable monitor])) ++if test "$enable_monitor" != "no"; then + dnl Check for presence of json-c and ncurses for use in monitor mode + PKG_CHECK_MODULES([jsonc], [json-c >= 0.12], [have_jsonc=yes], [have_jsonc=no]) + PKG_CHECK_MODULES([ncurses], [ncurses], [have_ncurses=yes], [have_ncurses=no]) +-AM_CONDITIONAL([HAVE_MONITOR_LIBS], [test "${have_jsonc}" == "yes" -a "${have_ncurses}" == "yes"]) + if test "${have_jsonc}" == "yes" -a "${have_ncurses}" == yes; then + AC_DEFINE([HAVE_MONITOR_LIBS],[1],[Define to 1 if json-c and ncurses libraries are installed]) + fi ++fi ++AM_CONDITIONAL([HAVE_MONITOR_LIBS], [test "${have_jsonc}" == "yes" -a "${have_ncurses}" == "yes" -a "$enable_monitor" != "no"]) + + AC_CACHE_CHECK([for assembler .section "?" flags support], stap_cv_sectionq, [ + old_CFLAGS="$CFLAGS" +-- +2.11.0 + diff --git a/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch b/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch new file mode 100644 index 0000000000..2c860b19e5 --- /dev/null +++ b/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch @@ -0,0 +1,33 @@ +From 43f1b04449bb1cf7e0092263f1c2a25f3fca08ef Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Tue, 8 Nov 2016 23:07:41 +0000 +Subject: [PATCH 5/6] systemtap: remove explicit msgfmt check + +There is no need to explicitly check that msgfmt was found as the gettext macros +handle this for us if NLS is enabled. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- + configure.ac | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2ea9b3cbf..95417f59c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -36,10 +36,6 @@ AC_CHECK_FUNCS(openat) + AM_GNU_GETTEXT(external) + AM_GNU_GETTEXT_VERSION([0.19.4]) + +-if test "x$GMSGFMT" = "x:"; then +- AC_MSG_ERROR([missing gnu /usr/bin/msgfmt]) +-fi +- + # We want the 'PYTHON' varible to be python version 2. We also want + # our custom 'PYTHON3' varible to be python version 3. + # +-- +2.11.0 + diff --git a/meta/recipes-kernel/systemtap/systemtap/obsolete_automake_macros.patch b/meta/recipes-kernel/systemtap/systemtap/obsolete_automake_macros.patch deleted file mode 100644 index 988cda4f0c..0000000000 --- a/meta/recipes-kernel/systemtap/systemtap/obsolete_automake_macros.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Pending - -Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> -Index: git/configure.ac -=================================================================== ---- git.orig/configure.ac -+++ git/configure.ac -@@ -19,7 +19,6 @@ AC_PROG_LN_S - AC_PROG_CC - AC_PROG_CXX - AC_PROG_CPP --AM_PROG_CC_STDC - AM_PROG_CC_C_O - AC_PROG_RANLIB - AC_OBJEXT diff --git a/meta/recipes-kernel/systemtap/systemtap_git.bb b/meta/recipes-kernel/systemtap/systemtap_git.bb index d0dd42a643..fed368a38b 100644 --- a/meta/recipes-kernel/systemtap/systemtap_git.bb +++ b/meta/recipes-kernel/systemtap/systemtap_git.bb @@ -2,17 +2,14 @@ SUMMARY = "Script-directed dynamic tracing and performance analysis tool for Lin require systemtap_git.inc -DEPENDS = "elfutils sqlite3 systemtap-native" -DEPENDS_class-native = "elfutils-native sqlite3-native gettext-native" -DEPENDS_class-nativesdk = "nativesdk-elfutils nativesdk-sqlite3 nativesdk-gettext" +DEPENDS = "boost elfutils" -RDEPENDS_${PN} += "python bash" -RDEPENDS_${PN}_class-native += "python-native" -RDEPENDS_${PN}_class-nativesdk += "python-native" +RDEPENDS_${PN} += "python3-core bash perl" EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \ --without-nss --without-avahi --without-dyninst \ --disable-server --disable-grapher --enable-prologues \ + --with-python3 --without-python2-probes \ ac_cv_prog_have_javac=no \ ac_cv_prog_have_jar=no " @@ -20,11 +17,12 @@ STAP_DOCS ?= "--disable-docs --disable-publican --disable-refdocs" EXTRA_OECONF += "${STAP_DOCS} " -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "sqlite monitor python3-probes" PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt" +PACKAGECONFIG[sqlite] = "--enable-sqlite,--disable-sqlite,sqlite3" +PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor,ncurses json-c" +PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native" -inherit autotools gettext pkgconfig +inherit autotools gettext pkgconfig distutils3-base BBCLASSEXTEND = "native nativesdk" - -FILES_${PN}-dbg += "${libexecdir}/systemtap/.debug" diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc index 59a578daac..a6aedd38a6 100644 --- a/meta/recipes-kernel/systemtap/systemtap_git.inc +++ b/meta/recipes-kernel/systemtap/systemtap_git.inc @@ -1,14 +1,17 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "bf16266782e1f2588b519a50d9684279d4e21036" -PV = "2.7+git${SRCPV}" +SRCREV = "b8ea350dc13adb6190d9044a5b80110a4c441270" +PV = "3.1" SRC_URI = "git://sourceware.org/git/systemtap.git \ - file://docproc-build-fix.patch \ - file://obsolete_automake_macros.patch \ file://system_map_location.patch \ file://configure-allow-to-disable-libvirt.patch \ file://x32_abi_time.patch \ + file://monitor-option.patch \ + file://no-msgfmt-check.patch \ + file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \ + file://0001-Install-python-modules-to-correct-library-dir.patch \ + file://0001-buildrun-remove-quotes-around-I-include-line.patch \ " # systemtap doesn't support mips @@ -17,12 +20,8 @@ COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64).*-linux' S = "${WORKDIR}/git" # systemtap can't be built without optimization, if someone tries to compile an -# entire image as -O0, we override it with -O2 here and give a note about it. -def get_optimization(d): - selected_optimization = d.getVar("SELECTED_OPTIMIZATION", True) +# entire image as -O0, break with fatal. +python () { if bb.utils.contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x": - bb.note("systemtap can't be built with -O0, -O2 will be used instead.") - return selected_optimization.replace("-O0", "-O2") - return selected_optimization - -SELECTED_OPTIMIZATION := "${@get_optimization(d)}" + bb.fatal("systemtap can't be built with -O0, using -O1 -Wno-error or -O1 instead.") +} |
