eglibc: migrate configurability from oe V4
cover eglibc: migrate configurability from oe V4
From: Kang Kai <[email protected]>
Hi All,
Thanks for all your comments.
Update to add local.extended.conf.sample instead of local.conf.sample.extended. Using existing DISTRO_FEATURES "ipv6" instead of "libc-ipv6"
Migrate configurability from oe, try to shrink minimal image size
The switch is in local.extended.conf, uncomment the line DISTRO_FEATURES = ""
and write what options you want to enable.
Regards,
The following changes since commit 7f34cd1eb2a459709006ae985a14decd4d2152e6:
tzcode: Update to 2011g (2011-06-06 15:58:42 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib kangkai/distro
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/distro
Kang Kai (2):
bitbake: add another local configuration file
eglibc: migrate configurability from oe
meta-yocto/conf/local.extended.conf.sample | 5 ++ meta/conf/bitbake.conf | 1 + meta/conf/distro/include/default-distrovars.inc | 8 ++- .../eglibc-2.13-fix-macro-RTLD_DEBUG.patch | 20 ++++++ meta/recipes-core/eglibc/eglibc-options.inc | 62 ++++++++++++++++++++ meta/recipes-core/eglibc/eglibc.inc | 6 ++ meta/recipes-core/eglibc/eglibc_2.13.bb | 4 +- scripts/oe-setup-builddir | 19 ++++++ 8 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 meta-yocto/conf/local.extended.conf.sample create mode 100644 meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch create mode 100644 meta/recipes-core/eglibc/eglibc-options.inc
Signature · 1 line
1.7.5.1.300.gc565c
PATCH 1/2 bitbake: add another local configuration file
From: Kang Kai <[email protected]>
Add a new local configuration file local.extended.conf.sample, and more advanced settings what user can configure could put in this file.
--- meta-yocto/conf/local.extended.conf.sample | 5 +++++ meta/conf/bitbake.conf | 1 + scripts/oe-setup-builddir | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 0 deletions(-) create mode 100644 meta-yocto/conf/local.extended.conf.sample
meta-yocto/conf/local.extended.conf.sample new file +5 -0
@@ -0,0 +1,5 @@ +# eglibc configurability is used to reduce minimal images's size. +# the all supported eglibc options are default enabled by adding +# to DISTRO_FEATURES in default-distrovars.inc +# put the options what you want to enable below and uncomment it +#DISTRO_FEATURES = "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci"
meta/conf/bitbake.conf +1 -0
@@ -641,6 +641,7 @@ CPU_FEATURES_arm ?= "vfp" include conf/site.conf include conf/auto.conf include conf/local.conf +include conf/local.extended.conf include conf/build/${BUILD_SYS}.conf include conf/target/${TARGET_SYS}.conf include conf/machine/${MACHINE}.conf
scripts/oe-setup-builddir +19 -0
@@ -55,6 +55,7 @@ if [ "x" != "x$TEMPLATECONF" ]; then fi OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample" OECORELOCALCONF="$TEMPLATECONF/local.conf.sample" + OECORELOCALCONFEXTENDED="$TEMPLATECONF/local.extended.conf.sample" fi if [ "x" = "x$OECORELOCALCONF" ]; then
@@ -79,6 +80,24 @@ EOM cp -f $OECORELOCALCONF $BUILDDIR/conf/local.conf fi +if ! (test -r "$BUILDDIR/conf/local.extended.conf"); then +cat <<EOM +You had no conf/local.conf file. This configuration file has therefore been +created for you with some default values. You may wish to edit it to use +different eglibc configuration options for example. See the file for more +information as common configuration options are commented. + +The Yocto Project has extensive documentation about OE including a reference manual +which can be found at: + http://yoctoproject.org/community/documentation + +For more information about OpenEmbedded see their website: + http://www.openembedded.org/ + +EOM + cp -f $OECORELOCALCONFEXTENDED $BUILDDIR/conf/local.extended.conf +fi + if [ "x" = "x$OECORELAYERCONF" ]; then OECORELAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample" fi
Signature · 1 line
1.7.5.1.300.gc565c
Re: [PATCH 1/2] bitbake: add another local configuration file
Quoted 5 lines · Kang Kai
From: Kang Kai<[email protected]>
Add a new local configuration file local.extended.conf.sample, and more advanced settings what user can configure could put in this file.
Quoted 8 lines
Signed-off-by Kang Kai<[email protected]>--- meta-yocto/conf/local.extended.conf.sample | 5 +++++ meta/conf/bitbake.conf | 1 + scripts/oe-setup-builddir | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 0 deletions(-)create mode 100644 meta-yocto/conf/local.extended.conf.sample
Kang,
Richard's intent here was to have a local.conf.extended, purely as a holding place for advanced options such as this. Once you create this one file (no inclusion via bitbake.conf or in oe-setup-builddir), we will add additional items from the current local.conf, such as some of the EXTRA_IMAGE_FEATURES explaination, the DEBUG and LIBRARY management examples.
So please just submit a single file local.conf.extended.
Thanks to Khem for reminding me of this!
Sau!
Quoted 60 lines
meta-yocto/conf/local.extended.conf.sample new file +5
-0@@ -0,0 +1,5 @@ +# eglibc configurability is used to reduce minimal images's size. +# the all supported eglibc options are default enabled by adding +# to DISTRO_FEATURES in default-distrovars.inc +# put the options what you want to enable below and uncomment it +#DISTRO_FEATURES = "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci"meta/conf/bitbake.conf +1
-0@@ -641,6 +641,7 @@ CPU_FEATURES_arm ?= "vfp" include conf/site.conf include conf/auto.conf include conf/local.conf +include conf/local.extended.conf include conf/build/${BUILD_SYS}.conf include conf/target/${TARGET_SYS}.conf include conf/machine/${MACHINE}.confscripts/oe-setup-builddir +19
-0@@ -55,6 +55,7 @@ if [ "x" != "x$TEMPLATECONF" ]; then fi OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample" OECORELOCALCONF="$TEMPLATECONF/local.conf.sample" + OECORELOCALCONFEXTENDED="$TEMPLATECONF/local.extended.conf.sample" fi if [ "x" = "x$OECORELOCALCONF" ]; then@@ -79,6 +80,24 @@ EOM cp -f $OECORELOCALCONF $BUILDDIR/conf/local.conf fi +if ! (test -r "$BUILDDIR/conf/local.extended.conf"); then +cat<<EOM +You had no conf/local.conf file. This configuration file has therefore been +created for you with some default values. You may wish to edit it to use +different eglibc configuration options for example. See the file for more +information as common configuration options are commented. + +The Yocto Project has extensive documentation about OE including a reference manual +which can be found at: + http://yoctoproject.org/community/documentation + +For more information about OpenEmbedded see their website: + http://www.openembedded.org/ + +EOM + cp -f $OECORELOCALCONFEXTENDED $BUILDDIR/conf/local.extended.conf +fi + if [ "x" = "x$OECORELAYERCONF" ]; then OECORELAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample" fi
Re: [PATCH 1/2] bitbake: add another local configuration file
Quoted 1 line · Saul Wold
So please just submit a single file local.conf.extended.
extended.local.conf.sample
Re: [PATCH 1/2] bitbake: add another local configuration file
In reply to Kang KaiQuoted 5 lines · Kang Kai
From: Kang Kai<[email protected]>
Add a new local configuration file local.extended.conf.sample, and more advanced settings what user can configure could put in this file.
Quoted 8 lines
Signed-off-by Kang Kai<[email protected]>--- meta-yocto/conf/local.extended.conf.sample | 5 +++++ meta/conf/bitbake.conf | 1 + scripts/oe-setup-builddir | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 0 deletions(-)create mode 100644 meta-yocto/conf/local.extended.conf.sample
I thought of just having a sample file with advanced configuration options. I dont know adding another local.conf file is going to make it more usable.
Quoted 60 lines
meta-yocto/conf/local.extended.conf.sample new file +5
-0@@ -0,0 +1,5 @@ +# eglibc configurability is used to reduce minimal images's size. +# the all supported eglibc options are default enabled by adding +# to DISTRO_FEATURES in default-distrovars.inc +# put the options what you want to enable below and uncomment it +#DISTRO_FEATURES = "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci"meta/conf/bitbake.conf +1
-0@@ -641,6 +641,7 @@ CPU_FEATURES_arm ?= "vfp" include conf/site.conf include conf/auto.conf include conf/local.conf +include conf/local.extended.conf include conf/build/${BUILD_SYS}.conf include conf/target/${TARGET_SYS}.conf include conf/machine/${MACHINE}.confscripts/oe-setup-builddir +19
-0@@ -55,6 +55,7 @@ if [ "x" != "x$TEMPLATECONF" ]; then fi OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample" OECORELOCALCONF="$TEMPLATECONF/local.conf.sample" + OECORELOCALCONFEXTENDED="$TEMPLATECONF/local.extended.conf.sample" fi if [ "x" = "x$OECORELOCALCONF" ]; then@@ -79,6 +80,24 @@ EOM cp -f $OECORELOCALCONF $BUILDDIR/conf/local.conf fi +if ! (test -r "$BUILDDIR/conf/local.extended.conf"); then +cat<<EOM +You had no conf/local.conf file. This configuration file has therefore been +created for you with some default values. You may wish to edit it to use +different eglibc configuration options for example. See the file for more +information as common configuration options are commented. + +The Yocto Project has extensive documentation about OE including a reference manual +which can be found at: + http://yoctoproject.org/community/documentation + +For more information about OpenEmbedded see their website: + http://www.openembedded.org/ + +EOM + cp -f $OECORELOCALCONFEXTENDED $BUILDDIR/conf/local.extended.conf +fi + if [ "x" = "x$OECORELAYERCONF" ]; then OECORELAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample" fi
PATCH 2/2 eglibc: migrate configurability from oe
In reply to Kang KaiFrom: Kang Kai <[email protected]>
Migrate configurability from oe, try to shrink minimal image size
Update to get eglibc configuration options from DISTRO_FEATURES and enable them. All the options are enabled by default.
Uncomment the line in conf/local.extended.conf to define DISTRO_FEATURES, so put what options you want to enable there.
--- meta/conf/distro/include/default-distrovars.inc | 8 ++- .../eglibc-2.13-fix-macro-RTLD_DEBUG.patch | 20 ++++++ meta/recipes-core/eglibc/eglibc-options.inc | 62 ++++++++++++++++++++ meta/recipes-core/eglibc/eglibc.inc | 6 ++ meta/recipes-core/eglibc/eglibc_2.13.bb | 4 +- 5 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch create mode 100644 meta/recipes-core/eglibc/eglibc-options.inc
meta/conf/distro/include/default-distrovars.inc +7 -1
@@ -10,7 +10,13 @@ LIMIT_BUILT_LOCALES ?= "POSIX en_US en_GB" ENABLE_BINARY_LOCALE_GENERATION ?= "1" LOCALE_UTF8_ONLY ?= "0" -DISTRO_FEATURES ?= "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci" +DISTRO_FEATURES ?= "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci \ + ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \ + libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \ + libc-getlogin libc-idn libc-inet libc-inet-anl libc-libm libc-libm-big libc-locales libc-locale-code \ + libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \ + libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \ + libc-posix-wchar-io" IMAGE_FEATURES ?= ""
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch new file +20 -0
@@ -0,0 +1,20 @@ +When disable OPTION_EGLIBC_RTLD_DEBUG, compilation fails. +Created on Jun 1, 2011 by Kang Kai <[email protected]> + +Upstream-Status: Submitted + +Signed-off-by: Kang Kai <[email protected]> +Index: libc/elf/dl-lookup.c +=================================================================== +--- libc/elf/dl-lookup.c (revision 13356) ++++ libc/elf/dl-lookup.c (working copy) +@@ -423,7 +423,9 @@ + hash table. */ + if (__builtin_expect (tab->size, 0)) + { ++ #if __OPTION_EGLIBC_RTLD_DEBUG + assert (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK); ++ #endif + __rtld_lock_unlock_recursive (tab->lock); + goto success; + }
meta/recipes-core/eglibc/eglibc-options.inc new file +62 -0
62 lines not on this page · raw message
meta/recipes-core/eglibc/eglibc.inc +6 -0
@@ -28,6 +28,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers" PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" PROVIDES += "virtual/libintl virtual/libiconv" inherit autotools +require eglibc-options.inc LEAD_SONAME = "libc.so"
@@ -43,3 +44,8 @@ EXTRA_OEMAKE += ${EGLIBCPARALLELISM} PARALLEL_MAKE = "" PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" + +OE_FEATURES = "${@features_to_eglibc_settings(d)}" +do_configure_prepend() { + echo '${OE_FEATURES}' > ${B}/option-groups.config +}
meta/recipes-core/eglibc/eglibc_2.13.bb +3 -1
@@ -4,7 +4,7 @@ SRCREV = "13356" DEPENDS += "gperf-native" FILESPATHPKG =. "eglibc-svn:" -PR = "r0" +PR = "r1" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_13"
@@ -16,7 +16,9 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http file://stack-protector-test.patch \ file://etc/ld.so.conf \ file://generate-supported.mk \ + file://eglibc-2.13-fix-macro-RTLD_DEBUG.patch \ " + LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
Signature · 1 line
1.7.5.1.300.gc565c
Re: [PATCH 2/2] eglibc: migrate configurability from oe
Quoted 56 lines · Kang Kai
From: Kang Kai<[email protected]>
Migrate configurability from oe, try to shrink minimal image size
Update to get eglibc configuration options from
DISTRO_FEATURESand enable them. All the options are enabled by default.Uncomment the line in
conf/local.extended.confto defineDISTRO_FEATURES, so put what options you want to enable there.Signed-off-by Kang Kai<[email protected]>--- meta/conf/distro/include/default-distrovars.inc | 8 ++- .../eglibc-2.13-fix-macro-RTLD_DEBUG.patch | 20 ++++++ meta/recipes-core/eglibc/eglibc-options.inc | 62 ++++++++++++++++++++ meta/recipes-core/eglibc/eglibc.inc | 6 ++ meta/recipes-core/eglibc/eglibc_2.13.bb | 4 +- 5 files changed, 98 insertions(+), 2 deletions(-)create mode 100644
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patchcreate mode 100644 meta/recipes-core/eglibc/eglibc-options.incmeta/conf/distro/include/default-distrovars.inc +7
-1@@ -10,7 +10,13 @@ LIMIT_BUILT_LOCALES ?= "POSIX en_US en_GB" ENABLE_BINARY_LOCALE_GENERATION ?= "1" LOCALE_UTF8_ONLY ?= "0" -DISTRO_FEATURES ?= "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci" +DISTRO_FEATURES ?= "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci \ + ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \ + libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \ + libc-getlogin libc-idn libc-inet libc-inet-anl libc-libm libc-libm-big libc-locales libc-locale-code \ + libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc \ + libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \ + libc-posix-wchar-io" IMAGE_FEATURES ?= ""meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch new file +10
-0@@ -0,0 +1,20 @@ +When disable OPTION_EGLIBC_RTLD_DEBUG, compilation fails. +Created on Jun 1, 2011 by Kang Kai<[email protected]> + +Upstream-Status: Submitted + +Signed-off-by: Kang Kai<[email protected]> +Index: libc/elf/dl-lookup.c +=================================================================== +--- libc/elf/dl-lookup.c (revision 13356) ++++ libc/elf/dl-lookup.c (working copy)
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch line 20
Quoted 10 lines
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch new file +10
-0+@@ -423,7 +423,9 @@ + hash table. */ + if (__builtin_expect (tab->size, 0)) + { ++ #if __OPTION_EGLIBC_RTLD_DEBUG + assert (GLRO(dl_debug_mask)& DL_DEBUG_PRELINK); ++ #endif + __rtld_lock_unlock_recursive (tab->lock); + goto success; + }
this patch does not seem correct to me. It should be using GLRO_dl_debug_mask instead here
Quoted 112 lines
meta/recipes-core/eglibc/eglibc-options.inc new file +62
-0@@ -0,0 +1,62 @@ +def eglibc_cfg(feature, features, tokens, cnf): + if type(tokens) == type(""): + tokens = [tokens] + if type(features) == type([]) and feature in features: + cnf.extend([token + ' = y' for token in tokens]) + else: + for token in tokens: + cnf.extend([token + ' = n']) + if token == 'OPTION_EGLIBC_NSSWITCH': + cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG = ${S}/nss/nsswitch.conf"]) + cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS = ${S}/nss/fixed-nsswitch.functions"]) + +# Map distro features to eglibc options settings +def features_to_eglibc_settings(d): + cnf = ([]) + distro_features = (bb.data.getVar('DISTRO_FEATURES', d, True) or '').split() + eglibc_cfg('ipv6', distro_features, 'OPTION_EGLIBC_ADVANCED_INET6', cnf) + eglibc_cfg('libc-backtrace', distro_features, 'OPTION_EGLIBC_BACKTRACE', cnf) + eglibc_cfg('libc-big-macros', distro_features, 'OPTION_EGLIBC_BIG_MACROS', cnf) + eglibc_cfg('libc-bsd', distro_features, 'OPTION_EGLIBC_BSD', cnf) + eglibc_cfg('libc-cxx-tests', distro_features, 'OPTION_EGLIBC_CXX_TESTS', cnf) + eglibc_cfg('libc-catgets', distro_features, 'OPTION_EGLIBC_CATGETS', cnf) + eglibc_cfg('libc-charsets', distro_features, 'OPTION_EGLIBC_CHARSETS', cnf) + eglibc_cfg('libc-crypt', distro_features, 'OPTION_EGLIBC_CRYPT', cnf) + eglibc_cfg('libc-crypt-ufc', distro_features, 'OPTION_EGLIBC_CRYPT_UFC', cnf) + eglibc_cfg('libc-db-aliases', distro_features, 'OPTION_EGLIBC_DB_ALIASES', cnf) + eglibc_cfg('libc-envz', distro_features, 'OPTION_EGLIBC_ENVZ', cnf) + eglibc_cfg('libc-fcvt', distro_features, 'OPTION_EGLIBC_FCVT', cnf) + eglibc_cfg('libc-fmtmsg', distro_features, 'OPTION_EGLIBC_FMTMSG', cnf) + eglibc_cfg('libc-fstab', distro_features, 'OPTION_EGLIBC_FSTAB', cnf) + eglibc_cfg('libc-ftraverse', distro_features, 'OPTION_EGLIBC_FTRAVERSE', cnf) + eglibc_cfg('libc-getlogin', distro_features, 'OPTION_EGLIBC_GETLOGIN', cnf) + eglibc_cfg('libc-idn', distro_features, 'OPTION_EGLIBC_IDN', cnf) + eglibc_cfg('libc-inet', distro_features, 'OPTION_EGLIBC_INET', cnf) + eglibc_cfg('libc-inet-anl', distro_features, 'OPTION_EGLIBC_INET_ANL', cnf) + eglibc_cfg('libc-libm', distro_features, 'OPTION_EGLIBC_LIBM', cnf) + eglibc_cfg('libc-libm-big', distro_features, 'OPTION_EGLIBC_LIBM_BIG', cnf) + eglibc_cfg('libc-locales', distro_features, 'OPTION_EGLIBC_LOCALES', cnf) + eglibc_cfg('libc-locale-code', distro_features, 'OPTION_EGLIBC_LOCALE_CODE', cnf) + eglibc_cfg('libc-memusage', distro_features, 'OPTION_EGLIBC_MEMUSAGE', cnf) + eglibc_cfg('libc-nis', distro_features, 'OPTION_EGLIBC_NIS', cnf) + eglibc_cfg('libc-nsswitch', distro_features, 'OPTION_EGLIBC_NSSWITCH', cnf) + eglibc_cfg('libc-rcmd', distro_features, 'OPTION_EGLIBC_RCMD', cnf) + eglibc_cfg('libc-rtld-debug', distro_features, 'OPTION_EGLIBC_RTLD_DEBUG', cnf) + eglibc_cfg('libc-spawn', distro_features, 'OPTION_EGLIBC_SPAWN', cnf) + eglibc_cfg('libc-streams', distro_features, 'OPTION_EGLIBC_STREAMS', cnf) + eglibc_cfg('libc-sunrpc', distro_features, 'OPTION_EGLIBC_SUNRPC', cnf) + eglibc_cfg('libc-utmp', distro_features, 'OPTION_EGLIBC_UTMP', cnf) + eglibc_cfg('libc-utmpx', distro_features, 'OPTION_EGLIBC_UTMPX', cnf) + eglibc_cfg('libc-wordexp', distro_features, 'OPTION_EGLIBC_WORDEXP', cnf) + eglibc_cfg('libc-posix-clang-wchar', distro_features, 'OPTION_POSIX_C_LANG_WIDE_CHAR', cnf) + eglibc_cfg('libc-posix-regexp', distro_features, 'OPTION_POSIX_REGEXP', cnf) + eglibc_cfg('libc-posix-regexp-glibc', distro_features, 'OPTION_POSIX_REGEXP_GLIBC', cnf) + eglibc_cfg('libc-posix-wchar-io', distro_features, 'OPTION_POSIX_WIDE_CHAR_DEVICE_IO', cnf) + + # try to fix disable charsets/locales/locale-code compile fail + if 'libc-charsets' in distro_features and 'libc-locales' in distro_features and 'libc-locale-code' in distro_features: + bb.data.setVar('PACKAGE_NO_GCONV', '0', d) + else: + bb.data.setVar('PACKAGE_NO_GCONV', '1', d) + + return "\n".join(cnf)meta/recipes-core/eglibc/eglibc.inc +6
-0@@ -28,6 +28,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers" PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" PROVIDES += "virtual/libintl virtual/libiconv" inherit autotools +require eglibc-options.inc LEAD_SONAME = "libc.so"@@ -43,3 +44,8 @@ EXTRA_OEMAKE += ${EGLIBCPARALLELISM} PARALLEL_MAKE = "" PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" + +OE_FEATURES = "${@features_to_eglibc_settings(d)}" +do_configure_prepend() { + echo '${OE_FEATURES}'> ${B}/option-groups.config +}meta/recipes-core/eglibc/eglibc_2.13.bb +3
-1@@ -4,7 +4,7 @@ SRCREV = "13356" DEPENDS += "gperf-native" FILESPATHPKG =. "eglibc-svn:" -PR = "r0" +PR = "r1" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_13"@@ -16,7 +16,9 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http file://stack-protector-test.patch \ file://etc/ld.so.conf \ file://generate-supported.mk \ + file://eglibc-2.13-fix-macro-RTLD_DEBUG.patch \ " + LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
Re: [PATCH 2/2] eglibc: migrate configurability from oe
Hi Khem,
Quoted 73 lines · Kang Kai
Quoted 72 lines
From: Kang Kai<[email protected]>
Migrate configurability from oe, try to shrink minimal image size
Update to get eglibc configuration options from
DISTRO_FEATURESand enable them. All the options are enabled by default.Uncomment the line in
conf/local.extended.confto defineDISTRO_FEATURES, so put what options you want to enable there.Signed-off-by Kang Kai<[email protected]>--- meta/conf/distro/include/default-distrovars.inc | 8 ++- .../eglibc-2.13-fix-macro-RTLD_DEBUG.patch | 20 ++++++ meta/recipes-core/eglibc/eglibc-options.inc | 62 ++++++++++++++++++++ meta/recipes-core/eglibc/eglibc.inc | 6 ++ meta/recipes-core/eglibc/eglibc_2.13.bb | 4 +- 5 files changed, 98 insertions(+), 2 deletions(-)create mode 100644
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch
create mode 100644 meta/recipes-core/eglibc/eglibc-options.incmeta/conf/distro/include/default-distrovars.inc +0
-1@@ -10,7 +10,13 @@ LIMIT_BUILT_LOCALES ?= "POSIX en_US en_GB" ENABLE_BINARY_LOCALE_GENERATION ?= "1" LOCALE_UTF8_ONLY ?= "0" -DISTRO_FEATURES ?= "alsa bluetooth ext2 irda pcmcia usbgadgetusbhost wifi nfs zeroconf pci"
+DISTRO_FEATURES ?= "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci \
+ ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests
libc-catgets libc-charsets libc-crypt \
+ libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt
libc-fmtmsg libc-fstab libc-ftraverse \
+ libc-getlogin libc-idn libc-inet libc-inet-anl libc-libm
libc-libm-big libc-locales libc-locale-code \
+ libc-memusage libc-nis libc-nsswitch libc-rcmd
libc-rtld-debug libc-spawn libc-streams libc-sunrpc \
+ libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar
libc-posix-regexp libc-posix-regexp-glibc \meta/conf/distro/include/default-distrovars.inc +1
-0+ libc-posix-wchar-io" IMAGE_FEATURES ?= ""meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch +0
-0new file mode 100644
index 0000000..dffc648
---/dev/null
+++b/meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patchmeta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch +15
-0@@ -0,0 +1,20 @@ +When disable OPTION_EGLIBC_RTLD_DEBUG, compilation fails. +Created on Jun 1, 2011 by Kang Kai<[email protected]> + +Upstream-Status: Submitted + +Signed-off-by: Kang Kai<[email protected]> +Index: libc/elf/dl-lookup.c +=================================================================== +--- libc/elf/dl-lookup.c (revision 13356) ++++ libc/elf/dl-lookup.c (working copy) +@@ -423,7 +423,9 @@ + hash table. */ + if (__builtin_expect (tab->size, 0)) + { ++ #if __OPTION_EGLIBC_RTLD_DEBUG
Quoted 8 lines
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch line 20
Quoted 5 lines
meta/recipes-core/eglibc/eglibc-2.13/eglibc-2.13-fix-macro-RTLD_DEBUG.patch +5
-0+ assert (GLRO(dl_debug_mask)& DL_DEBUG_PRELINK); ++ #endif + __rtld_lock_unlock_recursive (tab->lock); + goto success; + }this patch does not seem correct to me. It should be using
GLRO_dl_debug_maskinstead here
Yes, you are right, this patch is not correct.
And got respond this morning from eglibc maillist, this will be fix in eglibc branch 2.13
Thanks.
Kai
Quoted 166 lines
Quoted 159 lines
meta/recipes-core/eglibc/eglibc-options.inc new file +10
-0@@ -0,0 +1,62 @@ +def eglibc_cfg(feature, features, tokens, cnf): + if type(tokens) == type(""): + tokens = [tokens] + if type(features) == type([]) and feature in features: + cnf.extend([token + ' = y' for token in tokens]) + else: + for token in tokens: + cnf.extend([token + ' = n']) + if token == 'OPTION_EGLIBC_NSSWITCH': + cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG =
${S}/nss/nsswitch.conf"])
+ cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS
= ${S}/nss/fixed-nsswitch.functions"])meta/recipes-core/eglibc/eglibc-options.inc new file +5
-0+ +# Map distro features to eglibc options settings +def features_to_eglibc_settings(d): + cnf = ([]) + distro_features = (bb.data.getVar('DISTRO_FEATURES', d,True) or '').split()
+ eglibc_cfg('ipv6',distro_features,
'OPTION_EGLIBC_ADVANCED_INET6', cnf)
+ eglibc_cfg('libc-backtrace',distro_features,
'OPTION_EGLIBC_BACKTRACE', cnf)
+ eglibc_cfg('libc-big-macros',distro_features,
'OPTION_EGLIBC_BIG_MACROS', cnf)
+ eglibc_cfg('libc-bsd',distro_features,
'OPTION_EGLIBC_BSD', cnf)
+ eglibc_cfg('libc-cxx-tests',distro_features,
'OPTION_EGLIBC_CXX_TESTS', cnf)
+ eglibc_cfg('libc-catgets',distro_features,
'OPTION_EGLIBC_CATGETS', cnf)
+ eglibc_cfg('libc-charsets',distro_features,
'OPTION_EGLIBC_CHARSETS', cnf)
+ eglibc_cfg('libc-crypt',distro_features,
'OPTION_EGLIBC_CRYPT', cnf)
+ eglibc_cfg('libc-crypt-ufc',distro_features,
'OPTION_EGLIBC_CRYPT_UFC', cnf)
+ eglibc_cfg('libc-db-aliases',distro_features,
'OPTION_EGLIBC_DB_ALIASES', cnf)
+ eglibc_cfg('libc-envz',distro_features,
'OPTION_EGLIBC_ENVZ', cnf)
+ eglibc_cfg('libc-fcvt',distro_features,
'OPTION_EGLIBC_FCVT', cnf)
+ eglibc_cfg('libc-fmtmsg',distro_features,
'OPTION_EGLIBC_FMTMSG', cnf)
+ eglibc_cfg('libc-fstab',distro_features,
'OPTION_EGLIBC_FSTAB', cnf)
+ eglibc_cfg('libc-ftraverse',distro_features,
'OPTION_EGLIBC_FTRAVERSE', cnf)
+ eglibc_cfg('libc-getlogin',distro_features,
'OPTION_EGLIBC_GETLOGIN', cnf)
+ eglibc_cfg('libc-idn',distro_features,
'OPTION_EGLIBC_IDN', cnf)
+ eglibc_cfg('libc-inet',distro_features,
'OPTION_EGLIBC_INET', cnf)
+ eglibc_cfg('libc-inet-anl',distro_features,
'OPTION_EGLIBC_INET_ANL', cnf)
+ eglibc_cfg('libc-libm',distro_features,
'OPTION_EGLIBC_LIBM', cnf)
+ eglibc_cfg('libc-libm-big',distro_features,
'OPTION_EGLIBC_LIBM_BIG', cnf)
+ eglibc_cfg('libc-locales',distro_features,
'OPTION_EGLIBC_LOCALES', cnf)
+ eglibc_cfg('libc-locale-code',distro_features,
'OPTION_EGLIBC_LOCALE_CODE', cnf)
+ eglibc_cfg('libc-memusage',distro_features,
'OPTION_EGLIBC_MEMUSAGE', cnf)
+ eglibc_cfg('libc-nis',distro_features,
'OPTION_EGLIBC_NIS', cnf)
+ eglibc_cfg('libc-nsswitch',distro_features,
'OPTION_EGLIBC_NSSWITCH', cnf)
+ eglibc_cfg('libc-rcmd',distro_features,
'OPTION_EGLIBC_RCMD', cnf)
+ eglibc_cfg('libc-rtld-debug',distro_features,
'OPTION_EGLIBC_RTLD_DEBUG', cnf)
+ eglibc_cfg('libc-spawn',distro_features,
'OPTION_EGLIBC_SPAWN', cnf)
+ eglibc_cfg('libc-streams',distro_features,
'OPTION_EGLIBC_STREAMS', cnf)
+ eglibc_cfg('libc-sunrpc',distro_features,
'OPTION_EGLIBC_SUNRPC', cnf)
+ eglibc_cfg('libc-utmp',distro_features,
'OPTION_EGLIBC_UTMP', cnf)
+ eglibc_cfg('libc-utmpx',distro_features,
'OPTION_EGLIBC_UTMPX', cnf)
+ eglibc_cfg('libc-wordexp',distro_features,
'OPTION_EGLIBC_WORDEXP', cnf)
+ eglibc_cfg('libc-posix-clang-wchar',distro_features,
'OPTION_POSIX_C_LANG_WIDE_CHAR', cnf)
+ eglibc_cfg('libc-posix-regexp',distro_features,
'OPTION_POSIX_REGEXP', cnf)
+ eglibc_cfg('libc-posix-regexp-glibc',distro_features,
'OPTION_POSIX_REGEXP_GLIBC', cnf)
+ eglibc_cfg('libc-posix-wchar-io',distro_features,
'OPTION_POSIX_WIDE_CHAR_DEVICE_IO', cnf)meta/recipes-core/eglibc/eglibc-options.inc new file +3
-0+ + # try to fix disable charsets/locales/locale-code compile fail + if 'libc-charsets' in distro_features and 'libc-locales' in
distro_featuresand 'libc-locale-code' indistro_features:meta/recipes-core/eglibc/eglibc-options.inc new file +5
-0+ bb.data.setVar('PACKAGE_NO_GCONV', '0', d) + else: + bb.data.setVar('PACKAGE_NO_GCONV', '1', d) + + return "\n".join(cnf)meta/recipes-core/eglibc/eglibc.inc +0
-0@@ -28,6 +28,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediatelinux-libc-headers"
PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" PROVIDES += "virtual/libintl virtual/libiconv" inherit autotoolsmeta/recipes-core/eglibc/eglibc.inc +1
-0+require eglibc-options.inc LEAD_SONAME = "libc.so"@@ -43,3 +44,8 @@ EXTRA_OEMAKE += ${EGLIBCPARALLELISM} PARALLEL_MAKE = "" PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utilsglibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
meta/recipes-core/eglibc/eglibc.inc +5
-0+ +OE_FEATURES = "${@features_to_eglibc_settings(d)}" +do_configure_prepend() { + echo '${OE_FEATURES}'> ${B}/option-groups.config +}meta/recipes-core/eglibc/eglibc_2.13.bb +1
-1@@ -4,7 +4,7 @@ SRCREV = "13356" DEPENDS += "gperf-native" FILESPATHPKG =. "eglibc-svn:" -PR = "r0" +PR = "r1" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_13"@@ -16,7 +16,9 @@ SRC_URI ="svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
file://stack-protector-test.patch \ file://etc/ld.so.conf \ file://generate-supported.mk \meta/recipes-core/eglibc/eglibc_2.13.bb +2
-0+ file://eglibc-2.13-fix-macro-RTLD_DEBUG.patch \ " + LIC_FILES_CHKSUM ="file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \Quoted 1 line
file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core