Patchwork eglibc-dbg: provides libc6-dbg

login
register
mail settings
Submitter Kang Kai
Date Jan. 22, 2014, 3:12 a.m.
Message ID <1390360372-10947-1-git-send-email-kai.kang@windriver.com>
Download mbox | patch
Permalink /patch/65497/
State New
Headers show

Comments

Kang Kai - Jan. 22, 2014, 3:12 a.m.
Update eglibc-package.inc to let eglibc-dbg provides libc6-dbg.

The use case is that when libc6-dbg is needded to be installed into
image, we don't need change glibc-dbg to uclibc-dbg in recipe when we
change to use package uclibc as default C library.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 meta/recipes-core/eglibc/eglibc-package.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Phil Blundell - Jan. 22, 2014, 7:08 a.m.
On Wed, 2014-01-22 at 11:12 +0800, Kai Kang wrote:
> Update eglibc-package.inc to let eglibc-dbg provides libc6-dbg.
> 
> The use case is that when libc6-dbg is needded to be installed into
> image, we don't need change glibc-dbg to uclibc-dbg in recipe when we
> change to use package uclibc as default C library.
> -RPROVIDES_${PN}-dbg = "glibc-dbg"
> +RPROVIDES_${PN}-dbg = "glibc-dbg libc6-dbg"

Isn't PKG_${PN}-dbg set to libc6-dbg anyway (by libc-common.bbclass)?
Can you explain the use case and justification for this change a bit
more clearly?

p.
Kang Kai - Jan. 22, 2014, 9:06 a.m.
On 2014?01?22? 15:08, Phil Blundell wrote:
> On Wed, 2014-01-22 at 11:12 +0800, Kai Kang wrote:
>> Update eglibc-package.inc to let eglibc-dbg provides libc6-dbg.
>>
>> The use case is that when libc6-dbg is needded to be installed into
>> image, we don't need change glibc-dbg to uclibc-dbg in recipe when we
>> change to use package uclibc as default C library.
>> -RPROVIDES_${PN}-dbg = "glibc-dbg"
>> +RPROVIDES_${PN}-dbg = "glibc-dbg libc6-dbg"
> Isn't PKG_${PN}-dbg set to libc6-dbg anyway (by libc-common.bbclass)?
> Can you explain the use case and justification for this change a bit
> more clearly?

In libc-common.bbclass, it set dependencies for the rpm packages. When
run 'rpm -qp --provides libc6-dbg-2.18-r2.0.x86_64.rpm', yes, it
provides 'eglibc-dbg  libc-dbg  glibc-dbg  libc6-dbg'.

But when bitbake parse the recipe and configure files, libc6-dbg is not
found and not package provides it. If you add one line such as:
IMAGE_INSTALL_append += "libc6-dbg"

bitbake complains:

ERROR: Nothing RPROVIDES 'libc6-dbg' (but
/mnt/sda8/poky-neil/meta/recipes-sato/images/core-image-sato.bb RDEPENDS
on or otherwise requires it)

Use glib-dbg does work. But if I use it in a recipe, when uclibc is
used, I have to edit the recipe.

So I update RPROVIDES_${PN}-dbg to let it provides libc6-dbg.

Regards,
Kai
>
> p.
>
>
>
>
Phil Blundell - Jan. 25, 2014, 7:30 p.m.
On Wed, 2014-01-22 at 17:06 +0800, Kang Kai wrote:
> Use glib-dbg does work. But if I use it in a recipe, when uclibc is
> used, I have to edit the recipe.

Isn't that still true of "libc6-dbg"?  Worse, it isn't even guaranteed
that the eglibc-debug package will be named libc6-dbg on all targets; it
would probably end up as libc6.1-dbg on alpha-linux or ia64-linux for
example.  Encouraging people to hardcode "libc6" doesn't seem very
wholesome.

p.
Kang Kai - Jan. 27, 2014, 3:20 a.m.
On 2014?01?26? 03:30, Phil Blundell wrote:
> On Wed, 2014-01-22 at 17:06 +0800, Kang Kai wrote:
>> Use glib-dbg does work. But if I use it in a recipe, when uclibc is
>> used, I have to edit the recipe.
> Isn't that still true of "libc6-dbg"?  Worse, it isn't even guaranteed
> that the eglibc-debug package will be named libc6-dbg on all targets; it
> would probably end up as libc6.1-dbg on alpha-linux or ia64-linux for
> example.  Encouraging people to hardcode "libc6" doesn't seem very
> wholesome.

I think this is the way to deal the "RPROVIDES" and please ref to
libc6-dev in eglibc-package.inc:

RPROVIDES_${PN}-dev = "glibc-dev libc6-dev virtual-libc-dev"

Thanks,
Kai

>
> p.
>
>
>

Patch

diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index 3adf1a9..220832a 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -30,7 +30,7 @@  RPROVIDES_${PN}-doc = "glibc-doc"
 RPROVIDES_eglibc-extra-nss = "glibc-extra-nss"
 RPROVIDES_eglibc-thread-db = "glibc-thread-db"
 RPROVIDES_${PN}-pcprofile = "glibc-pcprofile"
-RPROVIDES_${PN}-dbg = "glibc-dbg"
+RPROVIDES_${PN}-dbg = "glibc-dbg libc6-dbg"
 libc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so ${base_libdir}/libc.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so"
 
 FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${@base_conditional('USE_LDCONFIG', '1', '${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf', '', d)}"