Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] uclibc: improve packaging granularity
@ 2011-07-19 16:01 Phil Blundell
  2011-07-19 17:09 ` Khem Raj
  2011-07-20 17:24 ` Saul Wold
  0 siblings, 2 replies; 5+ messages in thread
From: Phil Blundell @ 2011-07-19 16:01 UTC (permalink / raw)
  To: oe-core

Put each of the libraries into its own package rather than dumping them
all into libc0.  This saves ~300kB on the installed size of an i586 micro-base-image
and avoids the need to set the hated LEAD_SONAME.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 meta/recipes-core/uclibc/uclibc.inc |   31 ++++++++++++++++---------------
 1 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index 23a8ecb..222c34f 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -13,7 +13,7 @@ SECTION = "libs"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
 		    file://COPYING.LIB.boilerplate;md5=aaddeadcddeb918297e0e4afc52ce46f \
 file://${S}/test/regex/testregex.c;startline=1;endline=31;md5=234efb227d0a40677f895e4a1e26e960"
-INC_PR = "r2"
+INC_PR = "r4"
 
 require uclibc-config.inc
 STAGINGCC = "gcc-cross-intermediate"
@@ -49,27 +49,28 @@ RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 INHIBIT_DEFAULT_DEPS = "1"
 
 PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace"
-
-LEAD_SONAME = "libc.so"
+PACKAGES =+ "uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm"
+PACKAGES =+ "uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt"
+
+FILES_uclibc-libcrypt = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so"
+FILES_uclibc-libintl = "${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so"
+FILES_uclibc-libnsl = "${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so"
+FILES_uclibc-libresolv = "${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so"
+FILES_uclibc-libm = "${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so"
+FILES_uclibc-libdl = "${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so"
+FILES_uclibc-libutil = "${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so"
+FILES_uclibc-libpthread = "${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so"
+FILES_uclibc-librt = "${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so"
 
 # The last line (gdb and lib1) is for uclinux-uclibc builds
-uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
-                   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
-                   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
-                   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
-                   ${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
+uclibc_baselibs = "${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
                    ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
-                   ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
-                   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
-                   ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
-                   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
-                   ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
                    ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
                   "
 FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
                ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
 FILES_ldd = "${bindir}/ldd"
-FILES_uclibc-dev_append = "\
+FILES_${PN}-dev_append = "\
         ${libdir}/lib*.so \
         ${libdir}/*_nonshared.a \
         ${libdir}/[S]*crt[1in].o \
@@ -84,7 +85,7 @@ FILES_uclibc-thread-db = "${base_libdir}/libthread_db*"
 FILES_uclibc-argp = "${base_libdir}/libuargp-*.so ${base_libdir}/libuargp*.so.*"
 FILES_uclibc-backtrace = "${base_libdir}/libubacktrace-*.so ${base_libdir}/libubacktrace*.so.*"
 
-RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
+RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 # uclibc does not really have libsegfault but then using the one from glibc is also not
 # going to work. So we pretend that we have it to make bitbake not pull other recipes
 # to satisfy this dependency for the images/tasks
-- 
1.7.4.1






^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] uclibc: improve packaging granularity
  2011-07-19 16:01 [PATCH] uclibc: improve packaging granularity Phil Blundell
@ 2011-07-19 17:09 ` Khem Raj
  2011-07-19 17:13   ` Phil Blundell
  2011-07-20 17:24 ` Saul Wold
  1 sibling, 1 reply; 5+ messages in thread
From: Khem Raj @ 2011-07-19 17:09 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, Jul 19, 2011 at 9:01 AM, Phil Blundell <philb@gnu.org> wrote:
> Put each of the libraries into its own package rather than dumping them
> all into libc0.  This saves ~300kB on the installed size of an i586 micro-base-image
> and avoids the need to set the hated LEAD_SONAME.
>
> Signed-off-by: Phil Blundell <philb@gnu.org>
> ---
>  meta/recipes-core/uclibc/uclibc.inc |   31 ++++++++++++++++---------------
>  1 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
> index 23a8ecb..222c34f 100644
> --- a/meta/recipes-core/uclibc/uclibc.inc
> +++ b/meta/recipes-core/uclibc/uclibc.inc
> @@ -13,7 +13,7 @@ SECTION = "libs"
>  LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
>                    file://COPYING.LIB.boilerplate;md5=aaddeadcddeb918297e0e4afc52ce46f \
>  file://${S}/test/regex/testregex.c;startline=1;endline=31;md5=234efb227d0a40677f895e4a1e26e960"
> -INC_PR = "r2"
> +INC_PR = "r4"
>
>  require uclibc-config.inc
>  STAGINGCC = "gcc-cross-intermediate"
> @@ -49,27 +49,28 @@ RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
>  INHIBIT_DEFAULT_DEPS = "1"
>
>  PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace"
> -
> -LEAD_SONAME = "libc.so"
> +PACKAGES =+ "uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm"
> +PACKAGES =+ "uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt"
> +
> +FILES_uclibc-libcrypt = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so"
> +FILES_uclibc-libintl = "${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so"
> +FILES_uclibc-libnsl = "${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so"
> +FILES_uclibc-libresolv = "${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so"
> +FILES_uclibc-libm = "${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so"
> +FILES_uclibc-libdl = "${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so"
> +FILES_uclibc-libutil = "${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so"
> +FILES_uclibc-libpthread = "${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so"
> +FILES_uclibc-librt = "${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so"
>
>  # The last line (gdb and lib1) is for uclinux-uclibc builds
> -uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
> -                   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
> -                   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
> -                   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
> -                   ${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
> +uclibc_baselibs = "${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
>                    ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
> -                   ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
> -                   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
> -                   ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
> -                   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
> -                   ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
>                    ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
>                   "
>  FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
>                ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
>  FILES_ldd = "${bindir}/ldd"
> -FILES_uclibc-dev_append = "\
> +FILES_${PN}-dev_append = "\

same uclibc.inc is also used by uclibc-initial recipe so using ${PN}
may not be ok here

>         ${libdir}/lib*.so \
>         ${libdir}/*_nonshared.a \
>         ${libdir}/[S]*crt[1in].o \
> @@ -84,7 +85,7 @@ FILES_uclibc-thread-db = "${base_libdir}/libthread_db*"
>  FILES_uclibc-argp = "${base_libdir}/libuargp-*.so ${base_libdir}/libuargp*.so.*"
>  FILES_uclibc-backtrace = "${base_libdir}/libubacktrace-*.so ${base_libdir}/libubacktrace*.so.*"
>
> -RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
> +RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"

same as above

>  # uclibc does not really have libsegfault but then using the one from glibc is also not
>  # going to work. So we pretend that we have it to make bitbake not pull other recipes
>  # to satisfy this dependency for the images/tasks
> --
> 1.7.4.1
>
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] uclibc: improve packaging granularity
  2011-07-19 17:09 ` Khem Raj
@ 2011-07-19 17:13   ` Phil Blundell
  2011-07-19 17:16     ` Phil Blundell
  0 siblings, 1 reply; 5+ messages in thread
From: Phil Blundell @ 2011-07-19 17:13 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 2011-07-19 at 10:09 -0700, Khem Raj wrote:
> On Tue, Jul 19, 2011 at 9:01 AM, Phil Blundell <philb@gnu.org> wrote:
> > -FILES_uclibc-dev_append = "\
> > +FILES_${PN}-dev_append = "\
> 
> same uclibc.inc is also used by uclibc-initial recipe so using ${PN}
> may not be ok here

Does uclibc-initial generate any PACKAGES?  I rather assumed it was
sysroot only, in which case the FILES are irrelevant.

In any case, the name of the FILES variable needs to match the value in
PACKAGES.  Having "FILES_uclibc-dev" is no good if PACKAGES talks about
"${PN}-dev", which appears to be the case here.

p.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] uclibc: improve packaging granularity
  2011-07-19 17:13   ` Phil Blundell
@ 2011-07-19 17:16     ` Phil Blundell
  0 siblings, 0 replies; 5+ messages in thread
From: Phil Blundell @ 2011-07-19 17:16 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 2011-07-19 at 18:13 +0100, Phil Blundell wrote:
> On Tue, 2011-07-19 at 10:09 -0700, Khem Raj wrote:
> > On Tue, Jul 19, 2011 at 9:01 AM, Phil Blundell <philb@gnu.org> wrote:
> > > -FILES_uclibc-dev_append = "\
> > > +FILES_${PN}-dev_append = "\
> > 
> > same uclibc.inc is also used by uclibc-initial recipe so using ${PN}
> > may not be ok here
> 
> Does uclibc-initial generate any PACKAGES?  I rather assumed it was
> sysroot only, in which case the FILES are irrelevant.
> 
> In any case, the name of the FILES variable needs to match the value in
> PACKAGES.  Having "FILES_uclibc-dev" is no good if PACKAGES talks about
> "${PN}-dev", which appears to be the case here.

... and, maybe more to the point, it's also no good to be doing
"FILES_uclibc-dev_append" when there is a ${PN}-dev definition in
bitbake.conf.  They need to be consistent.

p.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] uclibc: improve packaging granularity
  2011-07-19 16:01 [PATCH] uclibc: improve packaging granularity Phil Blundell
  2011-07-19 17:09 ` Khem Raj
@ 2011-07-20 17:24 ` Saul Wold
  1 sibling, 0 replies; 5+ messages in thread
From: Saul Wold @ 2011-07-20 17:24 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer; +Cc: Phil Blundell

On 07/19/2011 09:01 AM, Phil Blundell wrote:
> Put each of the libraries into its own package rather than dumping them
> all into libc0.  This saves ~300kB on the installed size of an i586 micro-base-image
> and avoids the need to set the hated LEAD_SONAME.
>
> Signed-off-by: Phil Blundell<philb@gnu.org>
> ---
>   meta/recipes-core/uclibc/uclibc.inc |   31 ++++++++++++++++---------------
>   1 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
> index 23a8ecb..222c34f 100644
> --- a/meta/recipes-core/uclibc/uclibc.inc
> +++ b/meta/recipes-core/uclibc/uclibc.inc
> @@ -13,7 +13,7 @@ SECTION = "libs"
>   LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
>   		    file://COPYING.LIB.boilerplate;md5=aaddeadcddeb918297e0e4afc52ce46f \
>   file://${S}/test/regex/testregex.c;startline=1;endline=31;md5=234efb227d0a40677f895e4a1e26e960"
> -INC_PR = "r2"
> +INC_PR = "r4"
>
>   require uclibc-config.inc
>   STAGINGCC = "gcc-cross-intermediate"
> @@ -49,27 +49,28 @@ RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
>   INHIBIT_DEFAULT_DEPS = "1"
>
>   PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace"
> -
> -LEAD_SONAME = "libc.so"
> +PACKAGES =+ "uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm"
> +PACKAGES =+ "uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt"
> +
> +FILES_uclibc-libcrypt = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so"
> +FILES_uclibc-libintl = "${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so"
> +FILES_uclibc-libnsl = "${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so"
> +FILES_uclibc-libresolv = "${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so"
> +FILES_uclibc-libm = "${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so"
> +FILES_uclibc-libdl = "${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so"
> +FILES_uclibc-libutil = "${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so"
> +FILES_uclibc-libpthread = "${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so"
> +FILES_uclibc-librt = "${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so"
>
>   # The last line (gdb and lib1) is for uclinux-uclibc builds
> -uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \
> -                   ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \
> -                   ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \
> -                   ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \
> -                   ${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
> +uclibc_baselibs = "${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
>                      ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
> -                   ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \
> -                   ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \
> -                   ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \
> -                   ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \
> -                   ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \
>                      ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
>                     "
>   FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
>                  ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
>   FILES_ldd = "${bindir}/ldd"
> -FILES_uclibc-dev_append = "\
> +FILES_${PN}-dev_append = "\
>           ${libdir}/lib*.so \
>           ${libdir}/*_nonshared.a \
>           ${libdir}/[S]*crt[1in].o \
> @@ -84,7 +85,7 @@ FILES_uclibc-thread-db = "${base_libdir}/libthread_db*"
>   FILES_uclibc-argp = "${base_libdir}/libuargp-*.so ${base_libdir}/libuargp*.so.*"
>   FILES_uclibc-backtrace = "${base_libdir}/libubacktrace-*.so ${base_libdir}/libubacktrace*.so.*"
>
> -RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
> +RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
>   # uclibc does not really have libsegfault but then using the one from glibc is also not
>   # going to work. So we pretend that we have it to make bitbake not pull other recipes
>   # to satisfy this dependency for the images/tasks

Merged into OE-Core

Thanks
	Sau!



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-07-20 17:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-19 16:01 [PATCH] uclibc: improve packaging granularity Phil Blundell
2011-07-19 17:09 ` Khem Raj
2011-07-19 17:13   ` Phil Blundell
2011-07-19 17:16     ` Phil Blundell
2011-07-20 17:24 ` Saul Wold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox