[oe] [PATCH v2] eglibc: Configure based on DISTRO_FEATURES_EGLIBC

Koen Kooi koen at dominion.thruhere.net
Wed Jan 12 09:32:31 UTC 2011


Op 12 jan 2011, om 10:17 heeft Khem Raj het volgende geschreven:

> * Let distros decide what features to enable if not
>  selected it will turn off all possible knobs
> 
> * Enable all knobs for angstrom and distros based on
>  sane-toolchain
> 
> Signed-off-by: Khem Raj <raj.khem at gmail.com>

Acked-by: Koen Kooi <koen at openembedded.org>

> CC: koen at dominion.thruhere.net
> CC: koansoftware at gmail.com
> ---
> conf/distro/include/eglibc.inc    |    8 +++
> recipes/eglibc/eglibc-options.inc |   89 +++++++++++++++++++------------------
> recipes/eglibc/eglibc.inc         |    4 +-
> 3 files changed, 55 insertions(+), 46 deletions(-)
> 
> diff --git a/conf/distro/include/eglibc.inc b/conf/distro/include/eglibc.inc
> index 5115e7f..cd66442 100644
> --- a/conf/distro/include/eglibc.inc
> +++ b/conf/distro/include/eglibc.inc
> @@ -18,3 +18,11 @@ OLDEST_KERNEL ?= "2.4.0"
> OLDEST_KERNEL_linux-gnueabi ?= "2.6.16"
> OLDEST_KERNEL_sparc64 ?= "2.4.21"
> OLDEST_KERNEL_ppc64 ?= "2.4.21"
> +DISTRO_FEATURES_EGLIBC ?= "ipv6 backtrace big-macros bsd cxx-tests catgets \
> +                           charsets crypt crypt-ufc db-aliases envz fcvt fmtmsg \
> +                           fstab ftraverse getlogin idn inet inet-anl libm \
> +                           libm-big locales locale-code memusage nis nsswitch \
> +                           rcmd rtld-debug spawn streams sunrpc utmp utmpx \
> +                           wordexp posix-clang-wchar posix-regexp \
> +                           posix-regexp-glibc posix-wchar-io"
> +
> diff --git a/recipes/eglibc/eglibc-options.inc b/recipes/eglibc/eglibc-options.inc
> index d552bbc..5e21d3c 100644
> --- a/recipes/eglibc/eglibc-options.inc
> +++ b/recipes/eglibc/eglibc-options.inc
> @@ -1,50 +1,51 @@
> def eglibc_cfg(feature, features, tokens, cnf ):
> -        if type(tokens) == type(""):
> -                tokens = [tokens]
> -        if type(features) == type([]) and feature in features:
> -                cnf.extend([token + ' = n' for token in tokens])
> +	if type(tokens) == type(""):
> +		tokens = [tokens]
> +	if type(features) == type([]) and feature in features:
> +		cnf.extend([token + ' = y' for token in tokens])
> +	else:
> +		cnf.extend([token + ' = n' for token in tokens])
> 
> # Map distro features to eglibc options settings
> def features_to_eglibc_settings(d):
>         cnf = ([])
> -        distro_features = bb.data.getVar('DISTRO_FEATURES', d, True).split()
> -        eglibc_cfg('noinet6',      distro_features, 'OPTION_EGLIBC_ADVANCED_INET6', cnf)
> -        eglibc_cfg('nobacktrace',      distro_features, 'OPTION_EGLIBC_BACKTRACE', cnf)
> -        eglibc_cfg('nobig-macros',      distro_features, 'OPTION_EGLIBC_BIG_MACROS', cnf)
> -        eglibc_cfg('nobsd',      distro_features, 'OPTION_EGLIBC_BSD', cnf)
> -        eglibc_cfg('nocxx-tests',      distro_features, 'OPTION_EGLIBC_CXX_TESTS', cnf)
> -        eglibc_cfg('nocatgets',      distro_features, 'OPTION_EGLIBC_CATGETS', cnf)
> -        eglibc_cfg('nocharsets',      distro_features, 'OPTION_EGLIBC_CHARSETS', cnf)
> -        eglibc_cfg('nocrypt',      distro_features, 'OPTION_EGLIBC_CRYPT', cnf)
> -        eglibc_cfg('nocrypt-ufc',      distro_features, 'OPTION_EGLIBC_CRYPT_UFC', cnf)
> -        eglibc_cfg('nodb-aliases',      distro_features, 'OPTION_EGLIBC_DB_ALIASES', cnf)
> -        eglibc_cfg('noenvz',      distro_features, 'OPTION_EGLIBC_ENVZ', cnf)
> -        eglibc_cfg('nofcvt',      distro_features, 'OPTION_EGLIBC_FCVT', cnf)
> -        eglibc_cfg('nofmtmsg',      distro_features, 'OPTION_EGLIBC_FMTMSG', cnf)
> -        eglibc_cfg('nofstab',      distro_features, 'OPTION_EGLIBC_FSTAB', cnf)
> -        eglibc_cfg('noftraverse',      distro_features, 'OPTION_EGLIBC_FTRAVERSE', cnf)
> -        eglibc_cfg('nogetlogin',      distro_features, 'OPTION_EGLIBC_GETLOGIN', cnf)
> -        eglibc_cfg('noidn',      distro_features, 'OPTION_EGLIBC_IDN', cnf)
> -        eglibc_cfg('noinet',      distro_features, 'OPTION_EGLIBC_INET', cnf)
> -        eglibc_cfg('noinet-anl',      distro_features, 'OPTION_EGLIBC_INET_ANL', cnf)
> -        eglibc_cfg('nolibm',      distro_features, 'OPTION_EGLIBC_LIBM', cnf)
> -        eglibc_cfg('nolibm-big',      distro_features, 'OPTION_EGLIBC_LIBM_BIG', cnf)
> -        eglibc_cfg('nolocales',      distro_features, 'OPTION_EGLIBC_LOCALES', cnf)
> -        eglibc_cfg('nolocale-code',      distro_features, 'OPTION_EGLIBC_LOCALE_CODE', cnf)
> -        eglibc_cfg('nomemusage',      distro_features, 'OPTION_EGLIBC_MEMUSAGE', cnf)
> -        eglibc_cfg('nonis',      distro_features, 'OPTION_EGLIBC_NIS', cnf)
> -        eglibc_cfg('nonsswitch',      distro_features, 'OPTION_EGLIBC_NSSWITCH', cnf)
> -        eglibc_cfg('norcmd',      distro_features, 'OPTION_EGLIBC_RCMD', cnf)
> -        eglibc_cfg('nortld-debug',      distro_features, 'OPTION_EGLIBC_RTLD_DEBUG', cnf)
> -        eglibc_cfg('nospawn',      distro_features, 'OPTION_EGLIBC_SPAWN', cnf)
> -        eglibc_cfg('nostreams',      distro_features, 'OPTION_EGLIBC_STREAMS', cnf)
> -        eglibc_cfg('nosunrpc',      distro_features, 'OPTION_EGLIBC_SUNRPC', cnf)
> -        eglibc_cfg('noutmp',      distro_features, 'OPTION_EGLIBC_UTMP', cnf)
> -        eglibc_cfg('noutmpx',      distro_features, 'OPTION_EGLIBC_UTMPX', cnf)
> -        eglibc_cfg('nowordexp',      distro_features, 'OPTION_EGLIBC_WORDEXP', cnf)
> -        eglibc_cfg('noposix-clang-wchar',      distro_features, 'OPTION_POSIX_C_LANG_WIDE_CHAR', cnf)
> -        eglibc_cfg('noposix-regexp',      distro_features, 'OPTION_POSIX_REGEXP', cnf)
> -        eglibc_cfg('noposix-regexp-glibc',      distro_features, 'OPTION_POSIX_REGEXP_GLIBC', cnf)
> -        eglibc_cfg('noposix-wchar-io',      distro_features, 'OPTION_POSIX_WIDE_CHAR_DEVICE_IO', cnf)
> +        distro_features = bb.data.getVar('DISTRO_FEATURES_EGLIBC', d, True).split()
> +        eglibc_cfg('ipv6',      distro_features, 'OPTION_EGLIBC_ADVANCED_INET6', cnf)
> +        eglibc_cfg('backtrace',      distro_features, 'OPTION_EGLIBC_BACKTRACE', cnf)
> +        eglibc_cfg('big-macros',      distro_features, 'OPTION_EGLIBC_BIG_MACROS', cnf)
> +        eglibc_cfg('bsd',      distro_features, 'OPTION_EGLIBC_BSD', cnf)
> +        eglibc_cfg('cxx-tests',      distro_features, 'OPTION_EGLIBC_CXX_TESTS', cnf)
> +        eglibc_cfg('catgets',      distro_features, 'OPTION_EGLIBC_CATGETS', cnf)
> +        eglibc_cfg('charsets',      distro_features, 'OPTION_EGLIBC_CHARSETS', cnf)
> +        eglibc_cfg('crypt',      distro_features, 'OPTION_EGLIBC_CRYPT', cnf)
> +        eglibc_cfg('crypt-ufc',      distro_features, 'OPTION_EGLIBC_CRYPT_UFC', cnf)
> +        eglibc_cfg('db-aliases',      distro_features, 'OPTION_EGLIBC_DB_ALIASES', cnf)
> +        eglibc_cfg('envz',      distro_features, 'OPTION_EGLIBC_ENVZ', cnf)
> +        eglibc_cfg('fcvt',      distro_features, 'OPTION_EGLIBC_FCVT', cnf)
> +        eglibc_cfg('fmtmsg',      distro_features, 'OPTION_EGLIBC_FMTMSG', cnf)
> +        eglibc_cfg('fstab',      distro_features, 'OPTION_EGLIBC_FSTAB', cnf)
> +        eglibc_cfg('ftraverse',      distro_features, 'OPTION_EGLIBC_FTRAVERSE', cnf)
> +        eglibc_cfg('getlogin',      distro_features, 'OPTION_EGLIBC_GETLOGIN', cnf)
> +        eglibc_cfg('idn',      distro_features, 'OPTION_EGLIBC_IDN', cnf)
> +        eglibc_cfg('inet',      distro_features, 'OPTION_EGLIBC_INET', cnf)
> +        eglibc_cfg('inet-anl',      distro_features, 'OPTION_EGLIBC_INET_ANL', cnf)
> +        eglibc_cfg('libm',      distro_features, 'OPTION_EGLIBC_LIBM', cnf)
> +        eglibc_cfg('libm-big',      distro_features, 'OPTION_EGLIBC_LIBM_BIG', cnf)
> +        eglibc_cfg('locales',      distro_features, 'OPTION_EGLIBC_LOCALES', cnf)
> +        eglibc_cfg('locale-code',      distro_features, 'OPTION_EGLIBC_LOCALE_CODE', cnf)
> +        eglibc_cfg('memusage',      distro_features, 'OPTION_EGLIBC_MEMUSAGE', cnf)
> +        eglibc_cfg('nis',      distro_features, 'OPTION_EGLIBC_NIS', cnf)
> +        eglibc_cfg('nsswitch',      distro_features, 'OPTION_EGLIBC_NSSWITCH', cnf)
> +        eglibc_cfg('rcmd',      distro_features, 'OPTION_EGLIBC_RCMD', cnf)
> +        eglibc_cfg('rtld-debug',      distro_features, 'OPTION_EGLIBC_RTLD_DEBUG', cnf)
> +        eglibc_cfg('spawn',      distro_features, 'OPTION_EGLIBC_SPAWN', cnf)
> +        eglibc_cfg('streams',      distro_features, 'OPTION_EGLIBC_STREAMS', cnf)
> +        eglibc_cfg('sunrpc',      distro_features, 'OPTION_EGLIBC_SUNRPC', cnf)
> +        eglibc_cfg('utmp',      distro_features, 'OPTION_EGLIBC_UTMP', cnf)
> +        eglibc_cfg('utmpx',      distro_features, 'OPTION_EGLIBC_UTMPX', cnf)
> +        eglibc_cfg('wordexp',      distro_features, 'OPTION_EGLIBC_WORDEXP', cnf)
> +        eglibc_cfg('posix-clang-wchar',      distro_features, 'OPTION_POSIX_C_LANG_WIDE_CHAR', cnf)
> +        eglibc_cfg('posix-regexp',      distro_features, 'OPTION_POSIX_REGEXP', cnf)
> +        eglibc_cfg('posix-regexp-glibc',      distro_features, 'OPTION_POSIX_REGEXP_GLIBC', cnf)
> +        eglibc_cfg('posix-wchar-io',      distro_features, 'OPTION_POSIX_WIDE_CHAR_DEVICE_IO', cnf)
>         return "\n".join(cnf)
> -
> diff --git a/recipes/eglibc/eglibc.inc b/recipes/eglibc/eglibc.inc
> index c9765dd..02209eb 100644
> --- a/recipes/eglibc/eglibc.inc
> +++ b/recipes/eglibc/eglibc.inc
> @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.eglibc.org/home"
> SECTION = "libs"
> PRIORITY = "required"
> LICENSE = "LGPL"
> -INC_PR = "r20"
> +INC_PR = "r21"
> # nptl needs unwind support in gcc, which can't be built without glibc.
> DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
> #this leads to circular deps, so lets not add it yet
> @@ -44,5 +44,5 @@ do_move_ports() {
> }
> OE_FEATURES := "${@features_to_eglibc_settings(d)}"
> do_configure_prepend() {
> -	echo '${OE_FEATURES}' > ${S}/option-groups.config
> +	echo '${OE_FEATURES}' > ${B}/option-groups.config
> }
> -- 
> 1.7.2.3
> 





More information about the Openembedded-devel mailing list