[oe] [PATCH 3/3] uClibc: redo configuration

Roman I Khimov roman at khimov.ru
Mon Apr 5 20:22:51 UTC 2010


В сообщении от Пятница 12 марта 2010 20:46:32 автор Bernhard Reutner-Fischer 
написал:
> +# Map distro and machine features to config settings
> +def features_to_uclibc_settings(d):
> +	cnf, rem = ([], [])
> +	features = bb.data.getVar('DISTRO_FEATURES', d).split()
> +	uclibc_cfg('ipv4', features, 'UCLIBC_HAS_IPV4', cnf, rem)
> +	uclibc_cfg('ipv6', features, 'UCLIBC_HAS_IPV6', cnf, rem)
> +	uclibc_cfg('nls',  features, 'UCLIBC_HAS_LOCALE', cnf, rem)
> +	uclibc_cfg('bx',   features, 'USE_BX', cnf, rem)
> +	return "\n".join(cnf), "\n".join(rem)

Last time I've tried to do something similar in recipes it was considered as 
BAD (USE-flag like) thing. Although I'm fine with it.

But in general, I don't see how it makes life any easier. It adds logic to 
determine some of options, but then there are still lots of other ones. And 
they would still come through machine and distro config which would still be 
carried around and stored for each version. If this dynamic things somehow 
eliminated any need in those, than it would be excellent, but from what I see 
it's not the case and probably there is no way to sanely implement it.

What could make sense is to improve those static configs we have. From what I 
understand, most of machine config parts are not changing from version to 
version and even if they do, it should mostly be adding things, which should 
be harmless for old versions. So we can try to move this configs from 
uclibc-${PV}/ to files/ or uclibc/, so that they would be reused in all 
versions.

Distro configs do change between versions, but than there are not that much 
distros that care about uclibc and each of those could store their version of 
config if there is any need for that.

>  b/recipes/uclibc/uclibc-initial_git.bb index 00330e2..3a33bd8 100644
> --- a/recipes/uclibc/uclibc-initial_git.bb
> +++ b/recipes/uclibc/uclibc-initial_git.bb
> @@ -7,19 +7,16 @@ PACKAGES = ""
> 
>  do_install() {
>  	# Install initial headers into the cross dir
> -	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/
>  \ +	make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
>  		install_headers
>  	#ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
> 
> -	# This conflicts with the c++ version of this header
> -	rm -f ${D}${includedir}/bits/atomicity.h
>  	install -d ${D}${libdir}/
.....
>  do_compile () {
> -	make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/
>  \ +	make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \


I guess these are things that just not needed with newer uClibc versions? If 
so, this would justify moving old uclibc.inc to uclibc-old.inc and adopting 
newer simpler uclibc.inc (with recipes clean up) IMO.

-- 
 http://roman.khimov.ru
mailto: roman at khimov.ru
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xE5E055C3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20100406/a3557eab/attachment-0002.sig>


More information about the Openembedded-devel mailing list