Skip to contentSkip to conversation

linux-yocto: temporary NO_LIBPERL fix for perf

PATCH In review Tom Zanussi 3 participants 6 messages Jan 14, 2011 – Jan 15, 2011

lore
Share & tools
lore
#0 lore raw

cover linux-yocto: temporary NO_LIBPERL fix for perf

I'm not familiar enough with the perf recipe to come up with a proper fix for the problem yet, but this patch at least removes the build error that recently started happening with the linux-yocto perf compile.

I'll send a patch re-instating the code it removes once I've understood the perf recipe and root-caused the problem. In any case, it doesn't remove any functionality that was there before - NO_LIBPERL was always the case, but the code that made that happen just started blowing up for some reason.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: tzanussi/perf-no-libperl-fix
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=tzanussi/perf-no-libperl-fix

Thanks,
Tom Zanussi <[email protected]>
---

Tom Zanussi (1):
linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON

 .../linux-yocto/tools-perf-no-scripting.patch      |   49 ++++++++++++++++++++
 meta/recipes-kernel/linux/linux-yocto_git.bb       |    5 +-
 2 files changed, 52 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch
#1 lore raw

PATCH 1/1 linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON

ExtUtils::Embed ccopts is getting the host's -I/usr/local/include and using it to compile perf, which results in a compilation error that started appearing just recently.

This turns the code that makes use of ExtUtils::Embed off and simply hard-codes NO_LIBPERL.

It does the same for LIBPYTHON while we're at it, since it probably suffers from a similar underlying problem and just by chance hasn't broken anything yet.

This will be re-enabled after I familiarize myself with the perf recipe and am able to create a proper fix.

---
 .../linux-yocto/tools-perf-no-scripting.patch      |   49 ++++++++++++++++++++
 meta/recipes-kernel/linux/linux-yocto_git.bb       |    5 +-
 2 files changed, 52 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch
meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch new file +49 -0
new file mode 100644
index 0000000..e0ad999
@@ -0,0 +1,49 @@
+Index: tools/perf/Makefile
+===================================================================
+--- a/tools/perf/Makefile	2011-01-14 14:17:33.127008554 -0600
++++ b/tools/perf/Makefile	2011-01-14 14:18:14.227008548 -0600
+@@ -588,42 +588,8 @@
+ 	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)),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
+-
+-ifdef NO_LIBPYTHON
+-	BASIC_CFLAGS += -DNO_LIBPYTHON
+-else
+-       PYTHON_EMBED_LDOPTS = $(shell python-config --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 = `python-config --cflags 2>/dev/null`
+-	FLAGS_PYTHON_EMBED=$(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
+-	ifneq ($(call try-cc,$(SOURCE_PYTHON_EMBED),$(FLAGS_PYTHON_EMBED)),y)
+-		BASIC_CFLAGS += -DNO_LIBPYTHON
+-	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
+-	endif
+-endif
++BASIC_CFLAGS += -DNO_LIBPERL
++BASIC_CFLAGS += -DNO_LIBPYTHON
+ 
+ ifdef NO_DEMANGLE
+ 	BASIC_CFLAGS += -DNO_DEMANGLE
meta/recipes-kernel/linux/linux-yocto_git.bb +3 -2
index 21023da..7833f65 100644
@@ -13,12 +13,13 @@ KMACHINE_beagleboard = "yocto/standard/beagleboard"
 
 LINUX_VERSION ?= "2.6.37"
 LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
-PR = "r14"
+PR = "r15"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 SRCREV_FORMAT = "meta_machine"
 
 SRC_URI = "git://git.pokylinux.org/linux-yocto-2.6.37;protocol=git;fullclone=1;branch=${KBRANCH};name=machine \
-           git://git.pokylinux.org/linux-yocto-2.6.37;protocol=git;noclone=1;branch=meta;name=meta"
+           git://git.pokylinux.org/linux-yocto-2.6.37;protocol=git;noclone=1;branch=meta;name=meta \
+           file://tools-perf-no-scripting.patch"
 
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|mpc8315e-rdb|routerstationpro)"
 
Signature · 1 line
1.7.0.4
#2 lore raw
In reply to Tom Zanussi
Quoted 10 lines · Tom Zanussi

I'm not familiar enough with the perf recipe to come up with a proper fix for the problem yet, but this patch at least removes the build error that recently started happening with the linux-yocto perf compile.

I'll send a patch re-instating the code it removes once I've understood the perf recipe and root-caused the problem.  In any case, it doesn't remove any functionality that was there before - NO_LIBPERL was always the case, but the code that made that happen just started blowing up for some reason.

Thanks Tom! I was going to offer to merge this into the kernel tree itself, since having external patches to the repo isn't something we typically do. But in this case, the patch is temporary so I'm going to just ack it, and stay out of the way.

Cheers,

Bruce

Quoted 23 lines

Pull URL: git://git.pokylinux.org/poky-contrib.git
 Branch: tzanussi/perf-no-libperl-fix
 Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=tzanussi/perf-no-libperl-fix

Thanks,
   Tom Zanussi <[email protected]>
---

Tom Zanussi (1):
 linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON

 .../linux-yocto/tools-perf-no-scripting.patch      |   49 ++++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto_git.bb       |    5 +-

 2 files changed, 52 insertions(+), 2 deletions(-)

 create mode 100644 meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch

_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky

Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
#3 lore raw
Quoted 13 lines · Bruce Ashfield
Quoted 10 lines · Tom Zanussi

I'm not familiar enough with the perf recipe to come up with a proper fix for the problem yet, but this patch at least removes the build error that recently started happening with the linux-yocto perf compile.

I'll send a patch re-instating the code it removes once I've understood the perf recipe and root-caused the problem. In any case, it doesn't remove any functionality that was there before - NO_LIBPERL was always the case, but the code that made that happen just started blowing up for some reason.

Quoted 5 lines

Thanks Tom! I was going to offer to merge this into the kernel tree itself, since having external patches to the repo isn't something we typically do. But in this case, the patch is temporary so I'm going to just ack it, and stay out of the way.

Hi Bruce,

The funny thing is that my first inclination and preference was to just submit the kernel patch, and I was about to do that anyway after having initial trouble getting it to apply this way... Anyway, I decided at least this way if you weren't around to apply it to the kernel tree, Saul was waiting for it and it would be applied regardless - next time I'll just do it the easy way ;-)

Tom

Quoted 30 lines

Cheers,

Bruce

Quoted 23 lines

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: tzanussi/perf-no-libperl-fix
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=tzanussi/perf-no-libperl-fix

Thanks,
Tom Zanussi <[email protected]>
---

Tom Zanussi (1):
linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON

 .../linux-yocto/tools-perf-no-scripting.patch      |   49 ++++++++++++++++++++
 meta/recipes-kernel/linux/linux-yocto_git.bb       |    5 +-
 2 files changed, 52 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch

_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky

#4 lore raw
Quoted 20 lines · Tom Zanussi
Quoted 13 lines · Bruce Ashfield
Quoted 10 lines · Tom Zanussi

I'm not familiar enough with the perf recipe to come up with a proper fix for the problem yet, but this patch at least removes the build error that recently started happening with the linux-yocto perf compile.

I'll send a patch re-instating the code it removes once I've understood the perf recipe and root-caused the problem.  In any case, it doesn't remove any functionality that was there before - NO_LIBPERL was always the case, but the code that made that happen just started blowing up for some reason.

Quoted 5 lines

Thanks Tom! I was going to offer to merge this into the kernel tree itself, since having external patches to the repo isn't something we typically do. But in this case, the patch is temporary so I'm going to just ack it, and stay out of the way.

Quoted 8 lines

Hi Bruce,

The funny thing is that my first inclination and preference was to just submit the kernel patch, and I was about to do that anyway after having initial trouble getting it to apply this way...  Anyway, I decided at least this way if you weren't around to apply it to the kernel tree, Saul was waiting for it and it would be applied regardless - next time I'll just do it the easy way ;-)

Agreed. We think alike on this one. Hedging your bets on the one step process of Saul pulling it into master without me needing to be in the middle was good, but given the choice, I'd chose the merge to the kernel branches as well.

Cheers,

Bruce

Quoted 36 lines

Tom

Quoted 30 lines

Cheers,

Bruce

Quoted 23 lines

Pull URL: git://git.pokylinux.org/poky-contrib.git
 Branch: tzanussi/perf-no-libperl-fix
 Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=tzanussi/perf-no-libperl-fix

Thanks,
   Tom Zanussi <[email protected]>
---

Tom Zanussi (1):
 linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON

 .../linux-yocto/tools-perf-no-scripting.patch      |   49 ++++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto_git.bb       |    5 +-

 2 files changed, 52 insertions(+), 2 deletions(-)

 create mode 100644 meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch

_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky

Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
#5 lore raw
Quoted 30 lines · Bruce Ashfield
Quoted 20 lines · Tom Zanussi
Quoted 13 lines · Bruce Ashfield
Quoted 10 lines · Tom Zanussi

I'm not familiar enough with the perf recipe to come up with a proper fix for the problem yet, but this patch at least removes the build error that recently started happening with the linux-yocto perf compile.

I'll send a patch re-instating the code it removes once I've understood the perf recipe and root-caused the problem. In any case, it doesn't remove any functionality that was there before - NO_LIBPERL was always the case, but the code that made that happen just started blowing up for some reason.

Quoted 5 lines

Thanks Tom! I was going to offer to merge this into the kernel tree itself, since having external patches to the repo isn't something we typically do. But in this case, the patch is temporary so I'm going to just ack it, and stay out of the way.

Quoted 8 lines

Hi Bruce,

The funny thing is that my first inclination and preference was to just submit the kernel patch, and I was about to do that anyway after having initial trouble getting it to apply this way... Anyway, I decided at least this way if you weren't around to apply it to the kernel tree, Saul was waiting for it and it would be applied regardless - next time I'll just do it the easy way ;-)

Quoted 5 lines

Agreed. We think alike on this one. Hedging your bets on the one step process of Saul pulling it into master without me needing to be in the middle was good, but given the choice, I'd chose the merge to the kernel branches as well.

The question still remains, is the root cause of this issue after the perl update, so Nitin is still looking into this.

Thanks for working the patch out so quickly, there are still a couple of issues with Master, but it's looking alot better right now!

Sau!

Quoted 43 lines

Cheers,

Bruce

Quoted 36 lines

Tom

Quoted 30 lines

Cheers,

Bruce

Quoted 23 lines

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: tzanussi/perf-no-libperl-fix
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=tzanussi/perf-no-libperl-fix

Thanks,
Tom Zanussi<[email protected]>
---

Tom Zanussi (1):
linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON

  .../linux-yocto/tools-perf-no-scripting.patch      |   49 ++++++++++++++++++++
  meta/recipes-kernel/linux/linux-yocto_git.bb       |    5 +-
  2 files changed, 52 insertions(+), 2 deletions(-)

create mode 100644 meta/recipes-kernel/linux/linux-yocto/tools-perf-no-scripting.patch

_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky