summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Wagner <rw@handhelds.org>2006-03-08 15:27:25 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-03-08 15:27:25 +0000
commit5ade6d7f862fd4a54a3988bf831d1ed8a6e206bc (patch)
tree6b1abe5b85359640f1a6090a054332e3de17f572
parent8fdff86fd5be58df4bfdc669f14a39c428498ad1 (diff)
glibc: make use of qemu conditional on ENABLE_BINARY_LOCALE_GENERATION which defaults to disabled. reinstate BINARY_LOCALE_ARCHES and make it a list of regular expressions.
- against contrary belief BINARY_LOCALE_ARCHES = "" did disable the new code. - zapping that variable in glibc-package.bbclass as the changeset before this did is not an option since we need to keep track of which arches are supposed to have this enabled. - also, rename USE_BINARY_LOCALE to GLIBC_INTERNAL_USE_BINARY_LOCALE to prevent people who don't understand Python from shooting themselves in the foot. DONT MESS WITH THAT VARIABLE. setting USE_BINARY_LOCALE = "0" will _enable_ the new code since "0" (being a string) evaluates to True in Python.
-rw-r--r--packages/glibc/glibc-package.bbclass47
1 files changed, 34 insertions, 13 deletions
diff --git a/packages/glibc/glibc-package.bbclass b/packages/glibc/glibc-package.bbclass
index d740194021..1ddcff3233 100644
--- a/packages/glibc/glibc-package.bbclass
+++ b/packages/glibc/glibc-package.bbclass
@@ -14,7 +14,16 @@ python __anonymous () {
bb.data.getVar('TARGET_OS', d, 1))
}
-BINARY_LOCALE_ARCHES ?= "0"
+# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
+# is set. The idea is to avoid running localedef on the target (at first boot)
+# to decrease initial boot time and avoid localedef being killed by the OOM
+# killer which used to effectively break i18n on machines with < 128MB RAM.
+
+# default to disabled until qemu works for everyone
+ENABLE_BINARY_LOCALE_GENERATION ?= "0"
+
+# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
+BINARY_LOCALE_ARCHES ?= "arm.*"
PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-*"
@@ -104,14 +113,26 @@ rm -rf ${TMP_LOCALE}
}
python __anonymous () {
- target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
- binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
-
- if target_arch in binary_arches.split(" "):
- depends = bb.data.getVar("DEPENDS", d, 1)
- depends = "%s qemu-native" % depends
- bb.data.setVar("DEPENDS", depends, d)
- bb.data.setVar("USE_BINARY_LOCALE", "1", d)
+ enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1)
+
+ if enabled and int(enabled):
+ import re
+
+ target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
+ binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or ""
+
+ for regexp in binary_arches.split(" "):
+ r = re.compile(regexp)
+
+ if r.match(target_arch):
+ bb.note("generation of binary locales enabled")
+ depends = bb.data.getVar("DEPENDS", d, 1)
+ depends = "%s qemu-native" % depends
+ bb.data.setVar("DEPENDS", depends, d)
+ bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "1", d)
+ break
+ else:
+ bb.note("generation of binary locales disabled. this may break i18n!")
}
do_prep_locale_tree() {
@@ -177,7 +198,7 @@ python package_do_split_gconvs () {
if deps != []:
bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d)
- use_bin = bb.data.getVar("USE_BINARY_LOCALE", d, 1)
+ use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
if use_bin:
do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='', aux_files_pattern_verbatim=binary_locales_dir + '/%s')
else:
@@ -241,13 +262,13 @@ python package_do_split_gconvs () {
raise bb.build.FuncFailed("localedef returned an error.")
def output_locale(name, locale, encoding):
- use_bin = bb.data.getVar("USE_BINARY_LOCALE", d, 1)
+ use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
if use_bin:
output_locale_binary(name, locale, encoding)
else:
output_locale_source(name, locale, encoding)
- use_bin = bb.data.getVar("USE_BINARY_LOCALE", d, 1)
+ use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
if use_bin:
bb.note("preparing tree for binary locale generation")
bb.build.exec_func("do_prep_locale_tree", d)
@@ -263,7 +284,7 @@ python package_do_split_gconvs () {
for e in encodings[l]:
output_locale('%s-%s' % (l, e), l, e)
- use_bin = bb.data.getVar("USE_BINARY_LOCALE", d, 1)
+ use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
if use_bin:
bb.note("collecting binary locales from locale tree")
bb.build.exec_func("do_collect_bins_from_locale_tree", d)