[28/52] linux-tools.inc: Dummify do_compile_perf and do_install_perf for uclibc

Submitted by Saul Wold on April 27, 2011, 7:29 a.m.

Details

Message ID 877ce168510cded8f23ea173c33c882f966ebe49.1303889119.git.sgw@linux.intel.com
State New, archived
Headers show

Commit Message

Saul Wold April 27, 2011, 7:29 a.m.
From: Khem Raj <raj.khem@gmail.com>

Perf wants elfutils and elfutils on uclibc does not work due to
its usage of obstack_printf functionality missing from uclibc.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-kernel/linux/linux-tools.inc |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc
index d64c9be..ef81650 100644
--- a/meta/recipes-kernel/linux/linux-tools.inc
+++ b/meta/recipes-kernel/linux/linux-tools.inc
@@ -1,6 +1,11 @@ 
 # included by kernel recipes if they want to build/provide
 # perf functionality from their tree.
-
+do_compile_perf_libc-uclibc () {
+	:
+}
+do_install_perf_libc-uclibc () {
+	:
+}
 do_compile_perf() {
 	oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} NO_NEWT=1 NO_DWARF=1
 }
@@ -14,6 +19,10 @@  do_install_perf() {
 addtask compile_perf after do_compile before do_install
 addtask install_perf after do_install before do_package
 
-do_compile_perf[depends] =  "virtual/libc:do_populate_sysroot"
-do_compile_perf[depends] =+ "elfutils:do_populate_sysroot"
-RDEPENDS_perf += "python perl elfutils"
+
+PERFDEPENDS = "virtual/libc:do_populate_sysroot elfutils:do_populate_sysroot"
+PERFDEPENDS_libc-uclibc = ""
+PERFRDEPENDS = "python perl elfutils"
+PERFRDEPENDS_libc-uclibc = ""
+do_compile_perf[depends] = "${PERFDEPENDS}"
+RDEPENDS_perf += "${PERFRDEPENDS}"

Comments

Darren Hart April 27, 2011, 2:34 p.m.
On 04/27/2011 12:29 AM, Saul Wold wrote:
> From: Khem Raj <raj.khem@gmail.com>
> 
> Perf wants elfutils and elfutils on uclibc does not work due to
> its usage of obstack_printf functionality missing from uclibc.

This appears to silently not build perf when uclibc is being used. Do I
have that right? I don't care for implicit changes in functionality
without any notification to the user (even then...). However, perf is
just automatically built IIRC, and not specified in the image recipe, so
there isn't a lot we can do about it without major changes.

Perhaps a simple warning in the do_compile_perf_libc-uclibc() and
do_install_perf_libc-uclibc() would be sufficient until such time as
perf has a real option to explicitly enable it.

my bash logging.bbclass hasn't been merged yet, so for now:

oe_warn "using uclibc, perf will not be (compiled|installed)"

Thanks,

--
Darren

> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/recipes-kernel/linux/linux-tools.inc |   17 +++++++++++++----
>  1 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc
> index d64c9be..ef81650 100644
> --- a/meta/recipes-kernel/linux/linux-tools.inc
> +++ b/meta/recipes-kernel/linux/linux-tools.inc
> @@ -1,6 +1,11 @@
>  # included by kernel recipes if they want to build/provide
>  # perf functionality from their tree.
> -
> +do_compile_perf_libc-uclibc () {
> +	:
> +}
> +do_install_perf_libc-uclibc () {
> +	:
> +}
>  do_compile_perf() {
>  	oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} NO_NEWT=1 NO_DWARF=1
>  }
> @@ -14,6 +19,10 @@ do_install_perf() {
>  addtask compile_perf after do_compile before do_install
>  addtask install_perf after do_install before do_package
>  
> -do_compile_perf[depends] =  "virtual/libc:do_populate_sysroot"
> -do_compile_perf[depends] =+ "elfutils:do_populate_sysroot"
> -RDEPENDS_perf += "python perl elfutils"
> +
> +PERFDEPENDS = "virtual/libc:do_populate_sysroot elfutils:do_populate_sysroot"
> +PERFDEPENDS_libc-uclibc = ""
> +PERFRDEPENDS = "python perl elfutils"
> +PERFRDEPENDS_libc-uclibc = ""
> +do_compile_perf[depends] = "${PERFDEPENDS}"
> +RDEPENDS_perf += "${PERFRDEPENDS}"
Darren Hart April 27, 2011, 2:37 p.m.
On 04/27/2011 07:34 AM, Darren Hart wrote:
> On 04/27/2011 12:29 AM, Saul Wold wrote:
>> From: Khem Raj <raj.khem@gmail.com>
>>
>> Perf wants elfutils and elfutils on uclibc does not work due to
>> its usage of obstack_printf functionality missing from uclibc.
> 
> This appears to silently not build perf when uclibc is being used. Do I
> have that right? I don't care for implicit changes in functionality
> without any notification to the user (even then...). However, perf is
> just automatically built IIRC, and not specified in the image recipe, so
> there isn't a lot we can do about it without major changes.
> 
> Perhaps a simple warning in the do_compile_perf_libc-uclibc() and
> do_install_perf_libc-uclibc() would be sufficient until such time as
> perf has a real option to explicitly enable it.
> 
> my bash logging.bbclass hasn't been merged yet, so for now:
> 
> oe_warn "using uclibc, perf will not be (compiled|installed)"

Actually, I see Saul included the logging patches later in the series.
For the sake of simplicity, I'm fine with this going in as is - if Khem
will submit a follow-on patch to add the warning using the new bash
logging API:

bbwarn "using uclibc, perf cannot be compiled"
bbwarn "using uclibc, perf cannot be installed"

or something to that effect.


>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>


Acked-by: Darren Hart <dvhart@linux.intel.com>


>> ---
>>  meta/recipes-kernel/linux/linux-tools.inc |   17 +++++++++++++----
>>  1 files changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc
>> index d64c9be..ef81650 100644
>> --- a/meta/recipes-kernel/linux/linux-tools.inc
>> +++ b/meta/recipes-kernel/linux/linux-tools.inc
>> @@ -1,6 +1,11 @@
>>  # included by kernel recipes if they want to build/provide
>>  # perf functionality from their tree.
>> -
>> +do_compile_perf_libc-uclibc () {
>> +	:
>> +}
>> +do_install_perf_libc-uclibc () {
>> +	:
>> +}
>>  do_compile_perf() {
>>  	oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} NO_NEWT=1 NO_DWARF=1
>>  }
>> @@ -14,6 +19,10 @@ do_install_perf() {
>>  addtask compile_perf after do_compile before do_install
>>  addtask install_perf after do_install before do_package
>>  
>> -do_compile_perf[depends] =  "virtual/libc:do_populate_sysroot"
>> -do_compile_perf[depends] =+ "elfutils:do_populate_sysroot"
>> -RDEPENDS_perf += "python perl elfutils"
>> +
>> +PERFDEPENDS = "virtual/libc:do_populate_sysroot elfutils:do_populate_sysroot"
>> +PERFDEPENDS_libc-uclibc = ""
>> +PERFRDEPENDS = "python perl elfutils"
>> +PERFRDEPENDS_libc-uclibc = ""
>> +do_compile_perf[depends] = "${PERFDEPENDS}"
>> +RDEPENDS_perf += "${PERFRDEPENDS}"
>
Khem Raj April 27, 2011, 4:10 p.m.
On Wed, Apr 27, 2011 at 7:37 AM, Darren Hart <dvhart@linux.intel.com> wrote:
>
>
> On 04/27/2011 07:34 AM, Darren Hart wrote:
>> On 04/27/2011 12:29 AM, Saul Wold wrote:
>>> From: Khem Raj <raj.khem@gmail.com>
>>>
>>> Perf wants elfutils and elfutils on uclibc does not work due to
>>> its usage of obstack_printf functionality missing from uclibc.
>>
>> This appears to silently not build perf when uclibc is being used. Do I
>> have that right? I don't care for implicit changes in functionality
>> without any notification to the user (even then...). However, perf is
>> just automatically built IIRC, and not specified in the image recipe, so
>> there isn't a lot we can do about it without major changes.
>>
>> Perhaps a simple warning in the do_compile_perf_libc-uclibc() and
>> do_install_perf_libc-uclibc() would be sufficient until such time as
>> perf has a real option to explicitly enable it.
>>
>> my bash logging.bbclass hasn't been merged yet, so for now:
>>
>> oe_warn "using uclibc, perf will not be (compiled|installed)"
>
> Actually, I see Saul included the logging patches later in the series.
> For the sake of simplicity, I'm fine with this going in as is - if Khem
> will submit a follow-on patch to add the warning using the new bash
> logging API:
>
> bbwarn "using uclibc, perf cannot be compiled"
> bbwarn "using uclibc, perf cannot be installed"
>
> or something to that effect.


yes that will come with another set of patches.
>
>
>>>
>>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>
>
> Acked-by: Darren Hart <dvhart@linux.intel.com>
>
>
>>> ---
>>>  meta/recipes-kernel/linux/linux-tools.inc |   17 +++++++++++++----
>>>  1 files changed, 13 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc
>>> index d64c9be..ef81650 100644
>>> --- a/meta/recipes-kernel/linux/linux-tools.inc
>>> +++ b/meta/recipes-kernel/linux/linux-tools.inc
>>> @@ -1,6 +1,11 @@
>>>  # included by kernel recipes if they want to build/provide
>>>  # perf functionality from their tree.
>>> -
>>> +do_compile_perf_libc-uclibc () {
>>> +    :
>>> +}
>>> +do_install_perf_libc-uclibc () {
>>> +    :
>>> +}
>>>  do_compile_perf() {
>>>      oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} NO_NEWT=1 NO_DWARF=1
>>>  }
>>> @@ -14,6 +19,10 @@ do_install_perf() {
>>>  addtask compile_perf after do_compile before do_install
>>>  addtask install_perf after do_install before do_package
>>>
>>> -do_compile_perf[depends] =  "virtual/libc:do_populate_sysroot"
>>> -do_compile_perf[depends] =+ "elfutils:do_populate_sysroot"
>>> -RDEPENDS_perf += "python perl elfutils"
>>> +
>>> +PERFDEPENDS = "virtual/libc:do_populate_sysroot elfutils:do_populate_sysroot"
>>> +PERFDEPENDS_libc-uclibc = ""
>>> +PERFRDEPENDS = "python perl elfutils"
>>> +PERFRDEPENDS_libc-uclibc = ""
>>> +do_compile_perf[depends] = "${PERFDEPENDS}"
>>> +RDEPENDS_perf += "${PERFRDEPENDS}"
>>
>
> --
> Darren Hart
> Intel Open Source Technology Center
> Yocto Project - Linux Kernel
>