From cf05f09f9ffa28a7502ebb9bf1ab00420aee1449 Mon Sep 17 00:00:00 2001 From: Darren Hart Date: Mon, 16 Apr 2012 18:06:12 -0700 Subject: [PATCH] poky-tiny: Separate the libc features required for meta-toolchain This fixes bug [YOCTO #2295] eglibc needs libc-posix-regexp-glibc & libc-libm-big enabled in its configuration to avoid following eglibc build issue. Thanks to Nitin for identifying the required features. ... | In file included from xregex.c:634:0: | xregex.c: In function 'byte_regex_compile': | xregex.c:3395:8: error: too few arguments to function 'findidx' | ../locale/weight.h:23:1: note: declared here ... The libc features added to support building meta-toolchain add 461KB to the C libraries. 320KB directly to libc (a 32% increase in size). If not building meta-toolchain, the user should be able to easily configure these out. Create a new variable to capture these dependencies, DISTRO_FEATURES_LIBC_TOOLCHAIN, keeping them separate from the core tiny requirements. Make it clear how to disable these if meta-toolchain is not needed. This patch has been tested by running the following for the qemux86 machine with DISTRO=poky-tiny: $ bitbake -c cleansstate eglibc $ bitbake meta-toolchain $ bitbake core-image-minimal The libc comparisons were made from core-image-minimal ext2 filesystems build before and after the applicaiton of this patch and Nitin's previous poky-tiny libc features patch in support of meta-toolchain: commit 8c48ab6183934fd32600997cc33e0cd3bf63139b Author: Nitin A Kamble Date: Mon Apr 9 15:15:01 2012 -0700 poky-tiny.conf: adjust eglibc options for poky-tiny Signed-off-by: Darren Hart CC: Nitin A. Kamble CC: Saul Wold CC: Richard Purdie Signed-off-by: Richard Purdie --- meta-yocto/conf/distro/poky-tiny.conf | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/meta-yocto/conf/distro/poky-tiny.conf b/meta-yocto/conf/distro/poky-tiny.conf index 58d64ece35..327cc1ee2c 100644 --- a/meta-yocto/conf/distro/poky-tiny.conf +++ b/meta-yocto/conf/distro/poky-tiny.conf @@ -63,12 +63,17 @@ ASSUME_PROVIDED += "pkgconfig$" # Reconfigure eglibc for a smaller installation # Comment out any of the lines below to disable them in the build DISTRO_FEATURES_LIBC_TINY = "libc-libm libc-crypt" -# for gettext -DISTRO_FEATURES_LIBC_TINY += "libc-posix-clang-wchar" -# for m4 -DISTRO_FEATURES_LIBC_TINY += "libc-spawn libc-locale-code" -# for elfutils -DISTRO_FEATURES_LIBC_TINY += "libc-ftraverse" + +# Building meta-toolchain currently imposes some additional requirements: +# If you do not plan to build meta-toolchain, you can save ~461KB by +# commenting out the DISTRO_FEATURES_LIBC_TOOLCHAIN assignment +# gettext needs wchar, m4 needs spawn and locale, elfutils needs ftraverse +DISTRO_FEATURES_LIBC_TOOLCHAIN = "libc-posix-clang-wchar \ + libc-spawn libc-locale-code \ + libc-ftraverse libc-libm-big \ + libc-posix-regexp-glibc \ + " + # Required for "who" DISTRO_FEATURES_LIBC_MINIMAL = "libc-utmp libc-getlogin" DISTRO_FEATURES_LIBC_REGEX = "libc-posix-regexp" @@ -78,6 +83,7 @@ DISTRO_FEATURES_LIBC = "${DISTRO_FEATURES_LIBC_TINY} \ ${DISTRO_FEATURES_LIBC_MINIMAL} \ ${DISTRO_FEATURES_LIBC_REGEX} \ ${DISTRO_FEATURES_LIBC_NET} \ + ${DISTRO_FEATURES_LIBC_TOOLCHAIN} \ " # Comment out any of the lines below to disable them in the build