summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/eglibc/eglibc-package.inc
diff options
context:
space:
mode:
authorNitin A Kamble <nitin.a.kamble@intel.com>2010-10-04 13:31:23 -0700
committerRichard Purdie <rpurdie@linux.intel.com>2010-10-07 22:53:28 +0100
commit2f19e2a1e6fe519f77b1d9611beadbfd2c74a22a (patch)
tree65dda95a7dd3471162678eaa63a9443d45e7385d /meta/recipes-core/eglibc/eglibc-package.inc
parent2e040618978b93d0add0e7e115c17545685c9dfc (diff)
downloadpoky-2f19e2a1e6fe519f77b1d9611beadbfd2c74a22a.tar.gz
libc-package.bbclass, eglibc, glibc: enable locales generation using cross-localedef
Along with qemu this provides another option to generate locales for [e]glibc. The new method is to use cross-localedef with appropriate arch specific parameters. The cross-localedef method is found to be 15 times faster than qemu's emnualted method. LOCALE_GENERATION_WITH_CROSS-LOCALEDEF : This is new config variable introduced to selet qemu or cross-localedef method for locale generation. Thanks to Mark Hatle from Windriver for providing the rich information for cross locale generation. Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Diffstat (limited to 'meta/recipes-core/eglibc/eglibc-package.inc')
-rw-r--r--meta/recipes-core/eglibc/eglibc-package.inc27
1 files changed, 6 insertions, 21 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index 35001fd6fc..ac0ba94bc2 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -19,13 +19,18 @@ python __anonymous () {
19# to decrease initial boot time and avoid localedef being killed by the OOM 19# to decrease initial boot time and avoid localedef being killed by the OOM
20# killer which used to effectively break i18n on machines with < 128MB RAM. 20# killer which used to effectively break i18n on machines with < 128MB RAM.
21 21
22# default to disabled until qemu works for everyone 22# default to disabled
23ENABLE_BINARY_LOCALE_GENERATION ?= "0" 23ENABLE_BINARY_LOCALE_GENERATION ?= "0"
24ENABLE_BINARY_LOCALE_GENERATION_pn-eglibc-nativesdk = "0" 24ENABLE_BINARY_LOCALE_GENERATION_pn-eglibc-nativesdk = "0"
25 25
26#enable locale generation on these arches
26# BINARY_LOCALE_ARCHES is a space separated list of regular expressions 27# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
27BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips" 28BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
28 29
30# set "1" to use cross-localedef for locale generation
31# set "0" for qemu emulation of native localedef for locale generation
32LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
33
29# Set this to zero if you don't want ldconfig in the output package 34# Set this to zero if you don't want ldconfig in the output package
30USE_LDCONFIG ?= "1" 35USE_LDCONFIG ?= "1"
31 36
@@ -79,25 +84,5 @@ DESCRIPTION_ldd = "eglibc: print shared library dependencies"
79DESCRIPTION_localedef = "eglibc: compile locale definition files" 84DESCRIPTION_localedef = "eglibc: compile locale definition files"
80DESCRIPTION_eglibc-utils = "eglibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..." 85DESCRIPTION_eglibc-utils = "eglibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..."
81 86
82python __anonymous () {
83 enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
84
85 if enabled and int(enabled):
86 import re
87
88 target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
89 binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
90
91 for regexp in binary_arches.split(" "):
92 r = re.compile(regexp)
93
94 if r.match(target_arch):
95 depends = bb.data.getVar("DEPENDS", d, 1)
96 depends = "%s qemu-native" % depends
97 bb.data.setVar("DEPENDS", depends, d)
98 bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "compile", d)
99 break
100}
101
102inherit libc-package 87inherit libc-package
103 88