diff options
author | Nitin A Kamble <nitin.a.kamble@intel.com> | 2010-10-04 13:31:23 -0700 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-10-07 22:53:28 +0100 |
commit | 2f19e2a1e6fe519f77b1d9611beadbfd2c74a22a (patch) | |
tree | 65dda95a7dd3471162678eaa63a9443d45e7385d /meta/recipes-core | |
parent | 2e040618978b93d0add0e7e115c17545685c9dfc (diff) | |
download | poky-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')
-rw-r--r-- | meta/recipes-core/eglibc/eglibc-package.inc | 27 | ||||
-rw-r--r-- | meta/recipes-core/glibc/glibc-package.inc | 24 |
2 files changed, 10 insertions, 41 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 |
23 | ENABLE_BINARY_LOCALE_GENERATION ?= "0" | 23 | ENABLE_BINARY_LOCALE_GENERATION ?= "0" |
24 | ENABLE_BINARY_LOCALE_GENERATION_pn-eglibc-nativesdk = "0" | 24 | ENABLE_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 |
27 | BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips" | 28 | BINARY_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 | ||
32 | LOCALE_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 |
30 | USE_LDCONFIG ?= "1" | 35 | USE_LDCONFIG ?= "1" |
31 | 36 | ||
@@ -79,25 +84,5 @@ DESCRIPTION_ldd = "eglibc: print shared library dependencies" | |||
79 | DESCRIPTION_localedef = "eglibc: compile locale definition files" | 84 | DESCRIPTION_localedef = "eglibc: compile locale definition files" |
80 | DESCRIPTION_eglibc-utils = "eglibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..." | 85 | DESCRIPTION_eglibc-utils = "eglibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..." |
81 | 86 | ||
82 | python __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 | |||
102 | inherit libc-package | 87 | inherit libc-package |
103 | 88 | ||
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc index 3c9132820d..8faeeb7e89 100644 --- a/meta/recipes-core/glibc/glibc-package.inc +++ b/meta/recipes-core/glibc/glibc-package.inc | |||
@@ -27,6 +27,10 @@ ENABLE_BINARY_LOCALE_GENERATION_pn-glibc-nativesdk = "0" | |||
27 | # BINARY_LOCALE_ARCHES is a space separated list of regular expressions | 27 | # BINARY_LOCALE_ARCHES is a space separated list of regular expressions |
28 | BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips" | 28 | BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips" |
29 | 29 | ||
30 | # set "1" to use cross-localedef for locale generation | ||
31 | # set "0" for qemu emulation of native localedef for locale generation | ||
32 | LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1" | ||
33 | |||
30 | PKGSUFFIX = "" | 34 | PKGSUFFIX = "" |
31 | PKGSUFFIX_virtclass-nativesdk = "-nativesdk" | 35 | PKGSUFFIX_virtclass-nativesdk = "-nativesdk" |
32 | 36 | ||
@@ -86,24 +90,4 @@ DESCRIPTION_glibc-utils = "glibc: misc utilities like iconf, local, gencat, tzse | |||
86 | 90 | ||
87 | EXTRA_OEMAKE += "rootsbindir=${base_sbindir}" | 91 | EXTRA_OEMAKE += "rootsbindir=${base_sbindir}" |
88 | 92 | ||
89 | python __anonymous () { | ||
90 | enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1) | ||
91 | |||
92 | if enabled and int(enabled): | ||
93 | import re | ||
94 | |||
95 | target_arch = bb.data.getVar("TARGET_ARCH", d, 1) | ||
96 | binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or "" | ||
97 | |||
98 | for regexp in binary_arches.split(" "): | ||
99 | r = re.compile(regexp) | ||
100 | |||
101 | if r.match(target_arch): | ||
102 | depends = bb.data.getVar("DEPENDS", d, 1) | ||
103 | depends = "%s qemu-native" % depends | ||
104 | bb.data.setVar("DEPENDS", depends, d) | ||
105 | bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "compile", d) | ||
106 | break | ||
107 | } | ||
108 | |||
109 | inherit libc-package | 93 | inherit libc-package |