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 8c48ab6183
    Author: Nitin A Kamble <nitin.a.kamble@intel.com>
    Date:   Mon Apr 9 15:15:01 2012 -0700

        poky-tiny.conf: adjust eglibc options for poky-tiny

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Nitin A. Kamble <nitin.a.kamble@intel.com>
CC: Saul Wold <sgw@linux.intel.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Darren Hart 2012-04-16 18:06:12 -07:00 committed by Richard Purdie
parent c936fca6e1
commit cf05f09f9f
1 changed files with 12 additions and 6 deletions

View File

@ -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