tracing: trace-cmd fixes and new kernelshark recipe
v2 cover tracing: trace-cmd fixes and new kernelshark recipe
This series fixes some issues with the existing trace-cmd recipe and adds a new recipe for kernelshark. The latter catches a bug in glib-2.0 which is also addressed in this series with a patch from Open Embedded.
V2: Update license and license files for trace-cmd and kernelshark
Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dvhart/tracing
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/tracing
Thanks,
Darren Hart <[email protected]>
---
Darren Hart (4):
trace-cmd: fix cross-compilation
trace-cmd: license file updates
glib-2.0: fix g_once_init_enter compile failure
kernelshark: add ftrace gui viewer
.../glib-2.0-2.27.3/g_once_init_enter.patch | 13 +++++++++++ meta/recipes-core/glib-2.0/glib-2.0_2.27.3.bb | 6 +++- meta/recipes-kernel/trace-cmd/kernelshark_git.bb | 22 ++++++++++++++++++++ meta/recipes-kernel/trace-cmd/trace-cmd_git.bb | 17 +++++++-------- 4 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-2.27.3/g_once_init_enter.patch create mode 100644 meta/recipes-kernel/trace-cmd/kernelshark_git.bb
PATCH v2 1/4 trace-cmd: fix cross-compilation
The trace-cmd Makefile forces certain variables, such as CC and AR. It was using the host gcc and loader, fix it to use the poky-built cross-compiler and linker.
inherit pkgconfig to ensure we don't use the host pkg-config.
Remove unecessary variables from the oemake commands, such as ARCH and LD which aren't used by the Makefile.
--- meta/recipes-kernel/trace-cmd/trace-cmd_git.bb | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
meta/recipes-kernel/trace-cmd/trace-cmd_git.bb +5 -7
@@ -2,18 +2,16 @@ DESCRIPTION = "User interface to Ftrace" LICENSE = "GPL" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -PR = r1 +PR = r2 PV = "1.0.4+git${SRCPV}" +inherit pkgconfig + SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git" S = "${WORKDIR}/git" - -do_compile() { - oe_runmake ARCH="${ARCH}" CC="${CC}" LD="${LD}" prefix=${prefix} -} +EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}'" do_install() { - oe_runmake ARCH="${ARCH}" CC="${CC}" LD="${LD}" \ - prefix=${prefix} DESTDIR=${D} install + oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install }
Signature · 1 line
1.7.1
PATCH v2 2/4 trace-cmd: license file updates
In reply to Darren Hart--- meta/recipes-kernel/trace-cmd/trace-cmd_git.bb | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
meta/recipes-kernel/trace-cmd/trace-cmd_git.bb +3 -2
@@ -1,6 +1,7 @@ DESCRIPTION = "User interface to Ftrace" -LICENSE = "GPL" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://trace-cmd.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e" PR = r2 PV = "1.0.4+git${SRCPV}"
Signature · 1 line
1.7.1
PATCH v2 3/4 glib-2.0: fix g_once_init_enter compile failure
In reply to Darren HartKernelshark trips over a compile bug in glib-2.0 addressed by Open Embedded back in the 2.22 timeframe. It appears to still be present in 2.27.
http://www.mail-archive.com/[email protected]/msg00529.html
--- .../glib-2.0-2.27.3/g_once_init_enter.patch | 13 +++++++++++++ meta/recipes-core/glib-2.0/glib-2.0_2.27.3.bb | 6 ++++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-2.27.3/g_once_init_enter.patch
meta/recipes-core/glib-2.0/glib-2.0-2.27.3/g_once_init_enter.patch new file +13 -0
@@ -0,0 +1,13 @@ +Index: glib-2.27.3/glib/gthread.h +=================================================================== +--- glib-2.27.3.orig/glib/gthread.h ++++ glib-2.27.3/glib/gthread.h +@@ -344,7 +344,7 @@ void g_once_init_leav + G_INLINE_FUNC gboolean + g_once_init_enter (volatile gsize *value_location) + { +- if G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL) ++ if G_LIKELY ((gpointer) g_atomic_pointer_get ((volatile gpointer *)value_location) != NULL) + return FALSE; + else + return g_once_init_enter_impl (value_location);
meta/recipes-core/glib-2.0/glib-2.0_2.27.3.bb +4 -2
@@ -1,10 +1,12 @@ require glib.inc -PR = "r0" +PR = "r1" SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glib/2.27/glib-${PV}.tar.bz2 \ file://configure-libtool.patch \ - file://60_wait-longer-for-threads-to-die.patch" + file://60_wait-longer-for-threads-to-die.patch \ + file://g_once_init_enter.patch \ + " SRC_URI[md5sum] = "d3e976ff92b55b6064a0eb3110f36158" SRC_URI[sha256sum] = "c44177b635e88639361eb1daf7aaa33315a00aaf46db5accf2f11920c7ff1919"
Signature · 1 line
1.7.1
PATCH v2 4/4 kernelshark: add ftrace gui viewer
In reply to Darren HartThe trace-cmd source includes a graphical trace viewer, but we don't want to make the trace-cmd recipe depend on gtk+. This patch adds a second recipe in the meta/recipes-kernel/trace-cmd directory which uses the trace-cmd SRCREV and RDEPENDS on trace-cmd to ensure compatibility.
--- meta/recipes-kernel/trace-cmd/kernelshark_git.bb | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) create mode 100644 meta/recipes-kernel/trace-cmd/kernelshark_git.bb
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +22 -0
@@ -0,0 +1,22 @@ +DESCRIPTION = "Graphical trace viewer for Ftrace" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e" + +PR = r0 +PV = "1.0.4+git${SRCPV}" + +DEPENDS = "gtk+" +RDEPENDS = "trace-cmd" + +inherit pkgconfig + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git" +SRCREV = "${SRCREV_pn-trace-cmd}" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}' gui" + +do_install() { + oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install_gui +}
Signature · 1 line
1.7.1
Re: [PATCH 4/4] kernelshark: add ftrace gui viewer
Quoted 6 lines · Darren Hart
trace-cmd/kernelshark_git.bb b/meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file mode 100644
index 0000000..781f983
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10
Quoted 10 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +10
-0@@ -0,0 +1,22 @@ +DESCRIPTION = "Graphical trace viewer for Ftrace" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e" + +PR = r0 +PV = "1.0.4+git${SRCPV}" + +DEPENDS = "gtk+" +RDEPENDS = "trace-cmd"
This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 15
Quoted 4 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4
-0+inherit pkgconfig + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git" +SRCREV = "${SRCREV_pn-trace-cmd}"
I'd suggest declaring that alongside the trace-cmd SRCREV definition, something like:
TRACECMDREV ?= "xxx"
SRCREV_pn-trace-cmd ?= "${TRACECMDREV}"
SRCREV_pn-kernelshark ?= "${TRACECMDREV}"
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 22
Quoted 7 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +7
-0+S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}' 'prefix=${prefix}' gui" + +do_install() { + oe_runmake CC="${CC}" AR="${AR}" prefix="${prefix}" DESTDIR="${D}" install_gui +}
Cheers,
Richard
Re: [PATCH 4/4] kernelshark: add ftrace gui viewer
Quoted 12 lines · Richard Purdie
Quoted 11 lines · Darren Hart
trace-cmd/kernelshark_git.bb b/meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file mode 100644
index 0000000..781f983meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5
-0@@ -0,0 +1,22 @@ +DESCRIPTION = "Graphical trace viewer for Ftrace" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e" +
Quoted 8 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10
Quoted 5 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5
-0+PR = r0 +PV = "1.0.4+git${SRCPV}" + +DEPENDS = "gtk+" +RDEPENDS = "trace-cmd"This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.
Hi Richard, thanks for the review.
I'm missing something about how these variables are used I guess. I had thought that being assigned inside the kernelshark_git.bb recipe would have been sufficient to make it clear it applied to kernelshark. How does this bleed over into other recipes?
Quoted 9 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 15
Quoted 5 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4
-0+inherit pkgconfig + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git" +SRCREV = "${SRCREV_pn-trace-cmd}"I'd suggest declaring that alongside the trace-cmd SRCREV definition, something like:
Quoted 3 lines
TRACECMDREV ?= "xxx"
SRCREV_pn-trace-cmd ?= "${TRACECMDREV}"
SRCREV_pn-kernelshark ?= "${TRACECMDREV}"
If I do this, I think a trace-cmd.inc would be the right way to go. Having kernelshark specific bits in the base trace-cmd recipe seems backwards to me: kernelshark builds on trace-cmd, so it makes sense to me for the extension to made in the kernelshark recipe.
Signature · 2 lines
Darren Hart Yocto Linux Kernel
Re: [PATCH 4/4] kernelshark: add ftrace gui viewer
Op 3 jan 2011, om 20:23 heeft Darren Hart het volgende geschreven:
Quoted 9 lines · Richard Purdie
Quoted 7 lines · Darren Hart
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10
Quoted 3 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +2
-0+DEPENDS = "gtk+" +RDEPENDS = "trace-cmd"This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.
Quoted 3 lines
Hi Richard, thanks for the review.
I'm missing something about how these variables are used I guess. I had thought that being assigned inside the kernelshark_git.bb recipe would have been sufficient to make it clear it applied to kernelshark. How does this bleed over into other recipes?
It bleeds over into the -dev, -dbg and any other packages the recipes generates.
regards,
Koen
Re: [PATCH 4/4] kernelshark: add ftrace gui viewer
In reply to Darren HartQuoted 22 lines · Darren Hart
Quoted 12 lines · Richard Purdie
Quoted 11 lines · Darren Hart
trace-cmd/kernelshark_git.bb b/meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file mode 100644
index 0000000..781f983meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5
-0@@ -0,0 +1,22 @@ +DESCRIPTION = "Graphical trace viewer for Ftrace" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e" +Quoted 8 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 10
Quoted 5 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +5
-0+PR = r0 +PV = "1.0.4+git${SRCPV}" + +DEPENDS = "gtk+" +RDEPENDS = "trace-cmd"This should be RDEPENDS_${PN} I suspect. We need to be clear about which package has the runtime dependency.
Quoted 6 lines
Hi Richard, thanks for the review.
I'm missing something about how these variables are used I guess. I had thought that being assigned inside the kernelshark_git.bb recipe would have been sufficient to make it clear it applied to kernelshark. How does this bleed over into other recipes?
Other packages (.rpm/ipk), not recipes.
RDEPENDS = "XXX" means apply this RDEPENDS to every package the kernelshark recipe generates. This as standard would be:
kernelshark
kernelshark-dbg
kernelshark-dev
kernelshark-doc
and it clearly doesn't apply for the last three, only the first (in general principle, the kernelshark recipe probably doesn't generate a -doc at all but you get the idea).
Quoted 8 lines
Quoted 8 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 15
Quoted 4 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4
-0+inherit pkgconfig + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;protocol=git" +SRCREV = "${SRCREV_pn-trace-cmd}"I'd suggest declaring that alongside the trace-cmd SRCREV definition, something like:
Quoted 8 lines
Quoted 3 lines
TRACECMDREV ?= "xxx"
SRCREV_pn-trace-cmd ?= "${TRACECMDREV}"
SRCREV_pn-kernelshark ?= "${TRACECMDREV}"If I do this, I think a trace-cmd.inc would be the right way to go. Having kernelshark specific bits in the base trace-cmd recipe seems backwards to me: kernelshark builds on trace-cmd, so it makes sense to me for the extension to made in the kernelshark recipe.
I meant in the common .inc file in the distro directiory where all the other SRCREVs are set.
Cheers,
Richard
Re: [PATCH 4/4] kernelshark: add ftrace gui viewer
In reply to Darren HartQuoted 19 lines · Darren Hart
The trace-cmd source includes a graphical trace viewer, but we don't want to make the trace-cmd recipe depend on gtk+. This patch adds a second recipe in the meta/recipes-kernel/trace-cmd directory which uses the trace-cmd SRCREV and RDEPENDS on trace-cmd to ensure compatibility.
Signed-off-by Darren Hart<[email protected]>CC Tom Zanussi<[email protected]>--- meta/recipes-kernel/trace-cmd/kernelshark_git.bb | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-)create mode 100644 meta/recipes-kernel/trace-cmd/kernelshark_git.bb
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +0
-0
meta/recipes-kernel/trace-cmd/kernelshark_git.bb line 4
Quoted 4 lines
meta/recipes-kernel/trace-cmd/kernelshark_git.bb new file +4
-0@@ -0,0 +1,22 @@ +DESCRIPTION = "Graphical trace viewer for Ftrace" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://kernelshark.c;beginline=6;endline=8;md5=2c22c965a649ddd7973d7913c5634a5e"
This should have been kernel-shark.c. A failed thermal cleaning of the previous build resulted in my not catching it. I have fixed this in my contrib branch, but won't resend the patch series unless requested.
Signature · 1 line
Darren Hart