Patchwork [1/1] eglibc: remove runtime dependency of perl from eglibc-mtrace

login
register
mail settings
Submitter Nitin A Kamble
Date June 8, 2012, 10:23 p.m.
Message ID <01b0f43cacd0beed93aebd108730bfe420ab2397.1339194124.git.nitin.a.kamble@intel.com>
Download mbox | patch
Permalink /patch/29553/
State New
Headers show

Comments

Nitin A Kamble - June 8, 2012, 10:23 p.m.
From: Nitin A Kamble <nitin.a.kamble@intel.com>

perl needs eglibc to build. The presence of runtime dependency of
perl for eglibc-mtrace caused bitbake to build perl before eglibc,
which causes build failure of perl with poky-tiny distro

  This fixes bug: [YOCTO #2523]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
---
 meta/recipes-core/eglibc/eglibc-package.inc |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
Darren Hart - June 8, 2012, 11:02 p.m.
On 06/08/2012 03:23 PM, nitin.a.kamble@intel.com wrote:
> From: Nitin A Kamble <nitin.a.kamble@intel.com>
> 
> perl needs eglibc to build.
> The presence of runtime dependency of
> perl for eglibc-mtrace caused bitbake to build perl before eglibc,
> which causes build failure of perl with poky-tiny distro
> 

So is this a circular dependency chain?

perl DEPENDS on eglibc
eglibc (because of eglibc-mtrace) RDEPENDS on perl?

If so, doesn't this solution leave eglibc-mtrace with an incomplete set
of dependencies in it's final package meta-data?

Would the correct solution be to break eglibc-mtrace out into a separate
recipe.

eglibc-mtrace.bb could then DEPENDS=eglibc and RDEPENDS=perl and
poky-tiny would need to be able to exclude eglibc-mtrace.


>   This fixes bug: [YOCTO #2523]
> 
> Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
> ---
>  meta/recipes-core/eglibc/eglibc-package.inc |    1 -
>  1 files changed, 0 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
> index ce37155..423729a 100644
> --- a/meta/recipes-core/eglibc/eglibc-package.inc
> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
> @@ -55,7 +55,6 @@ FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
>  FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
>  RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
>  RDEPENDS_${PN}-utils += "bash"
> -RDEPENDS_${PN}-mtrace += "perl"
>  FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"
>  FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"
>  RPROVIDES_${PN}-dev += "libc-dev"
Saul Wold - June 11, 2012, 10:07 p.m.
On 06/08/2012 04:02 PM, Darren Hart wrote:
>
>
> On 06/08/2012 03:23 PM, nitin.a.kamble@intel.com wrote:
>> From: Nitin A Kamble<nitin.a.kamble@intel.com>
>>
>> perl needs eglibc to build.
>> The presence of runtime dependency of
>> perl for eglibc-mtrace caused bitbake to build perl before eglibc,
>> which causes build failure of perl with poky-tiny distro
>>
>
> So is this a circular dependency chain?
>
> perl DEPENDS on eglibc
> eglibc (because of eglibc-mtrace) RDEPENDS on perl?
>
> If so, doesn't this solution leave eglibc-mtrace with an incomplete set
> of dependencies in it's final package meta-data?
>
> Would the correct solution be to break eglibc-mtrace out into a separate
> recipe.
>
I am not sure if this would be more correct or have the PACKAGES contain 
something like ${EGLIBC_PACKAGE_MTRACE}, which could the be over-ridden 
by the yocto-tiny distro.

EGLIBC_PACKAGE_MTRACE ?= "${PN}-mtrace"

and then change ${PN}-mtrace in the PACKAGES list to 
${EGLIBC_PACKAGE_MTRACE}.

This exposes another "global", so I am not sure which is better.

Sau!


> eglibc-mtrace.bb could then DEPENDS=eglibc and RDEPENDS=perl and
> poky-tiny would need to be able to exclude eglibc-mtrace.
>
>
>>    This fixes bug: [YOCTO #2523]
>>
>> Signed-off-by: Nitin A Kamble<nitin.a.kamble@intel.com>
>> ---
>>   meta/recipes-core/eglibc/eglibc-package.inc |    1 -
>>   1 files changed, 0 insertions(+), 1 deletions(-)
>>
>> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
>> index ce37155..423729a 100644
>> --- a/meta/recipes-core/eglibc/eglibc-package.inc
>> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
>> @@ -55,7 +55,6 @@ FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
>>   FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
>>   RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
>>   RDEPENDS_${PN}-utils += "bash"
>> -RDEPENDS_${PN}-mtrace += "perl"
>>   FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"
>>   FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"
>>   RPROVIDES_${PN}-dev += "libc-dev"
>
Darren Hart - June 11, 2012, 10:08 p.m.
On 06/11/2012 03:07 PM, Saul Wold wrote:
> On 06/08/2012 04:02 PM, Darren Hart wrote:
>>
>>
>> On 06/08/2012 03:23 PM, nitin.a.kamble@intel.com wrote:
>>> From: Nitin A Kamble<nitin.a.kamble@intel.com>
>>>
>>> perl needs eglibc to build.
>>> The presence of runtime dependency of
>>> perl for eglibc-mtrace caused bitbake to build perl before eglibc,
>>> which causes build failure of perl with poky-tiny distro
>>>
>>
>> So is this a circular dependency chain?
>>
>> perl DEPENDS on eglibc
>> eglibc (because of eglibc-mtrace) RDEPENDS on perl?
>>
>> If so, doesn't this solution leave eglibc-mtrace with an incomplete set
>> of dependencies in it's final package meta-data?
>>
>> Would the correct solution be to break eglibc-mtrace out into a separate
>> recipe.
>>
> I am not sure if this would be more correct or have the PACKAGES contain 
> something like ${EGLIBC_PACKAGE_MTRACE}, which could the be over-ridden 
> by the yocto-tiny distro.
> 
> EGLIBC_PACKAGE_MTRACE ?= "${PN}-mtrace"
> 
> and then change ${PN}-mtrace in the PACKAGES list to 
> ${EGLIBC_PACKAGE_MTRACE}.
> 
> This exposes another "global", so I am not sure which is better.

This doesn't seem inconsistent with other solutions to similar sorts of
problems. This is certainly less work and a smaller change.

--
Darren

> 
> Sau!
> 
> 
>> eglibc-mtrace.bb could then DEPENDS=eglibc and RDEPENDS=perl and
>> poky-tiny would need to be able to exclude eglibc-mtrace.
>>
>>
>>>    This fixes bug: [YOCTO #2523]
>>>
>>> Signed-off-by: Nitin A Kamble<nitin.a.kamble@intel.com>
>>> ---
>>>   meta/recipes-core/eglibc/eglibc-package.inc |    1 -
>>>   1 files changed, 0 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
>>> index ce37155..423729a 100644
>>> --- a/meta/recipes-core/eglibc/eglibc-package.inc
>>> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
>>> @@ -55,7 +55,6 @@ FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
>>>   FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
>>>   RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
>>>   RDEPENDS_${PN}-utils += "bash"
>>> -RDEPENDS_${PN}-mtrace += "perl"
>>>   FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"
>>>   FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"
>>>   RPROVIDES_${PN}-dev += "libc-dev"
>>
Khem Raj - June 11, 2012, 10:25 p.m.
On Mon, Jun 11, 2012 at 3:07 PM, Saul Wold <sgw@linux.intel.com> wrote:
>> Would the correct solution be to break eglibc-mtrace out into a separate
>> recipe.
>>
> I am not sure if this would be more correct or have the PACKAGES contain
> something like ${EGLIBC_PACKAGE_MTRACE}, which could the be over-ridden by
> the yocto-tiny distro.
>
> EGLIBC_PACKAGE_MTRACE ?= "${PN}-mtrace"
>
> and then change ${PN}-mtrace in the PACKAGES list to
> ${EGLIBC_PACKAGE_MTRACE}.
>
> This exposes another "global", so I am not sure which is better.

there are other tools e.g. memusage etc. which could be built in a
second pass and IMO
we should separate the eglibc-bin into  a separate recipe since
everything depends on system libc
its desirable that it should have few dependencies to build it so
builds can be more parallel and
eglibc wont be a bottleneck.

-Khem

Patch

diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index ce37155..423729a 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -55,7 +55,6 @@  FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
 FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
 RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
 RDEPENDS_${PN}-utils += "bash"
-RDEPENDS_${PN}-mtrace += "perl"
 FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"
 FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"
 RPROVIDES_${PN}-dev += "libc-dev"