summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongxiao Xu <dongxiao.xu@intel.com>2011-06-28 14:58:15 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-28 13:44:41 +0100
commit8fa9d64f1d5128f304a0d36dbf55f49ccaf784b1 (patch)
treead031554642f4b160ec5b9bd044577c03ef0c5a6
parent671e580111c3f37f3c7835956db17e0425f9f937 (diff)
downloadpoky-8fa9d64f1d5128f304a0d36dbf55f49ccaf784b1.tar.gz
libc-locale: split locale handling from libc recipe.
*libc's do_package will cost a lot of time due to the locale handing, which may delay the other recipe's do_package task and affect the build performance. This commit moves locale handling into a separate recipe *libc-locale. [RP: Add fixup with recent eglibc commit conflict for FILES_pn-dbg and PACKAGES] (From OE-Core rev: c6d3242f7642f537b02870bb4eb650f0e2094b85) Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/libc-common.bbclass23
-rw-r--r--meta/classes/libc-package.bbclass24
-rw-r--r--meta/conf/distro/include/tclibc-eglibc.inc1
-rw-r--r--meta/conf/distro/include/tclibc-glibc.inc1
-rw-r--r--meta/recipes-core/eglibc/eglibc-initial_2.13.bb4
-rw-r--r--meta/recipes-core/eglibc/eglibc-locale_2.13.bb58
-rw-r--r--meta/recipes-core/eglibc/eglibc-package.inc32
-rw-r--r--meta/recipes-core/eglibc/eglibc.inc2
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.13.bb12
-rw-r--r--meta/recipes-core/glibc/glibc-initial_2.10.1.bb4
-rw-r--r--meta/recipes-core/glibc/glibc-locale_2.10.1.bb52
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc29
-rw-r--r--meta/recipes-core/glibc/glibc_2.10.1.bb12
-rw-r--r--meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb1
14 files changed, 176 insertions, 79 deletions
diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
new file mode 100644
index 0000000000..bae0ace890
--- /dev/null
+++ b/meta/classes/libc-common.bbclass
@@ -0,0 +1,23 @@
1do_install() {
2 oe_runmake install_root=${D} install
3 for r in ${rpcsvc}; do
4 h=`echo $r|sed -e's,\.x$,.h,'`
5 install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
6 done
7 install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
8 install -d ${D}${libdir}/locale
9 make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
10 # get rid of some broken files...
11 for i in ${GLIBC_BROKEN_LOCALES}; do
12 grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
13 mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
14 done
15 rm -f ${D}{sysconfdir}/rpc
16 rm -rf ${D}${datadir}/zoneinfo
17 rm -rf ${D}${libexecdir}/getconf
18}
19
20def get_libc_fpu_setting(bb, d):
21 if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
22 return "--without-fp"
23 return ""
diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
index 55e3d48532..5737af4dfc 100644
--- a/meta/classes/libc-package.bbclass
+++ b/meta/classes/libc-package.bbclass
@@ -37,11 +37,6 @@ python __anonymous () {
37 break 37 break
38} 38}
39 39
40def get_libc_fpu_setting(bb, d):
41 if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
42 return "--without-fp"
43 return ""
44
45OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}" 40OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
46 41
47do_configure_prepend() { 42do_configure_prepend() {
@@ -84,25 +79,6 @@ rm -rf ${TMP_LOCALE}
84} 79}
85 80
86 81
87do_install() {
88 oe_runmake install_root=${D} install
89 for r in ${rpcsvc}; do
90 h=`echo $r|sed -e's,\.x$,.h,'`
91 install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
92 done
93 install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
94 install -d ${D}${libdir}/locale
95 make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
96 # get rid of some broken files...
97 for i in ${GLIBC_BROKEN_LOCALES}; do
98 grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
99 mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
100 done
101 rm -f ${D}${sysconfdir}/rpc
102 rm -rf ${D}${datadir}/zoneinfo
103 rm -rf ${D}${libexecdir}/getconf
104}
105
106TMP_LOCALE="/tmp/locale${libdir}/locale" 82TMP_LOCALE="/tmp/locale${libdir}/locale"
107 83
108do_prep_locale_tree() { 84do_prep_locale_tree() {
diff --git a/meta/conf/distro/include/tclibc-eglibc.inc b/meta/conf/distro/include/tclibc-eglibc.inc
index a4c648e28e..e070aad716 100644
--- a/meta/conf/distro/include/tclibc-eglibc.inc
+++ b/meta/conf/distro/include/tclibc-eglibc.inc
@@ -15,6 +15,7 @@ PREFERRED_PROVIDER_virtual/libiconv-nativesdk ?= "eglibc-nativesdk"
15PREFERRED_PROVIDER_virtual/libintl ?= "eglibc" 15PREFERRED_PROVIDER_virtual/libintl ?= "eglibc"
16PREFERRED_PROVIDER_virtual/libc ?= "eglibc" 16PREFERRED_PROVIDER_virtual/libc ?= "eglibc"
17PREFERRED_PROVIDER_virtual/libc-nativesdk ?= "eglibc-nativesdk" 17PREFERRED_PROVIDER_virtual/libc-nativesdk ?= "eglibc-nativesdk"
18PREFERRED_PROVIDER_virtual/libc-locale ?= "eglibc-locale"
18 19
19CXXFLAGS += "-fvisibility-inlines-hidden" 20CXXFLAGS += "-fvisibility-inlines-hidden"
20 21
diff --git a/meta/conf/distro/include/tclibc-glibc.inc b/meta/conf/distro/include/tclibc-glibc.inc
index e5843b0692..5e7afc1c00 100644
--- a/meta/conf/distro/include/tclibc-glibc.inc
+++ b/meta/conf/distro/include/tclibc-glibc.inc
@@ -15,6 +15,7 @@ PREFERRED_PROVIDER_virtual/libiconv-nativesdk ?= "glibc-nativesdk"
15PREFERRED_PROVIDER_virtual/libintl ?= "glibc" 15PREFERRED_PROVIDER_virtual/libintl ?= "glibc"
16PREFERRED_PROVIDER_virtual/libc ?= "glibc" 16PREFERRED_PROVIDER_virtual/libc ?= "glibc"
17PREFERRED_PROVIDER_virtual/libc-nativesdk ?= "glibc-nativesdk" 17PREFERRED_PROVIDER_virtual/libc-nativesdk ?= "glibc-nativesdk"
18PREFERRED_PROVIDER_virtual/libc-locale ?= "glibc-locale"
18 19
19CXXFLAGS += "-fvisibility-inlines-hidden" 20CXXFLAGS += "-fvisibility-inlines-hidden"
20 21
diff --git a/meta/recipes-core/eglibc/eglibc-initial_2.13.bb b/meta/recipes-core/eglibc/eglibc-initial_2.13.bb
index 787c762609..b934f5b1bb 100644
--- a/meta/recipes-core/eglibc/eglibc-initial_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc-initial_2.13.bb
@@ -1,6 +1,10 @@
1require eglibc_${PV}.bb 1require eglibc_${PV}.bb
2require eglibc-initial.inc 2require eglibc-initial.inc
3 3
4do_install_locale() {
5 :
6}
7
4do_configure_prepend () { 8do_configure_prepend () {
5 unset CFLAGS 9 unset CFLAGS
6} 10}
diff --git a/meta/recipes-core/eglibc/eglibc-locale_2.13.bb b/meta/recipes-core/eglibc/eglibc-locale_2.13.bb
new file mode 100644
index 0000000000..ed6c099c6c
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-locale_2.13.bb
@@ -0,0 +1,58 @@
1INHIBIT_DEFAULT_DEPS = "1"
2LICENSE = "LGPL"
3
4BPN = "eglibc"
5
6do_fetch[noexec] = "1"
7do_unpack[noexec] = "1"
8do_patch[noexec] = "1"
9do_configure[noexec] = "1"
10do_compile[noexec] = "1"
11
12# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
13# is set. The idea is to avoid running localedef on the target (at first boot)
14# to decrease initial boot time and avoid localedef being killed by the OOM
15# killer which used to effectively break i18n on machines with < 128MB RAM.
16
17# default to disabled
18ENABLE_BINARY_LOCALE_GENERATION ?= "0"
19ENABLE_BINARY_LOCALE_GENERATION_pn-eglibc-locale-nativesdk = "0"
20
21#enable locale generation on these arches
22# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
23BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
24
25# set "1" to use cross-localedef for locale generation
26# set "0" for qemu emulation of native localedef for locale generation
27LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
28
29PR = "r0"
30
31PKGSUFFIX = ""
32PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
33
34PACKAGES = "eglibc-locale localedef${PKGSUFFIX}"
35
36PACKAGES_DYNAMIC = "locale-base-* \
37 eglibc-gconv-* eglibc-charmap-* eglibc-localedata-* eglibc-binary-localedata-* \
38 glibc-gconv-*${PKGSUFFIX} glibc-charmap-* glibc-localedata-* glibc-binary-localedata-*"
39
40PROVIDES = "virtual/libc-locale${PKGSUFFIX}"
41
42RPROVIDES_eglibc-locale = "glibc-locale"
43
44FILES_eglibc-gconv = "${libdir}/gconv/*"
45FILES_localedef${PKGSUFFIX} = "${bindir}/localedef"
46
47do_install () {
48 cp -fpPR ${STAGING_INCDIR}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}/* ${D}
49 cp -fpPR ${D}/SUPPORTED ${WORKDIR}
50}
51
52DESCRIPTION_localedef = "eglibc: compile locale definition files"
53
54inherit libc-package
55
56do_install[depends] += "virtual/libc${PKGSUFFIX}:do_populate_sysroot"
57
58BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index b5531ab01d..fd8fee8031 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -14,35 +14,13 @@ python __anonymous () {
14 bb.data.getVar('TARGET_OS', d, 1)) 14 bb.data.getVar('TARGET_OS', d, 1))
15} 15}
16 16
17# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
18# is set. The idea is to avoid running localedef on the target (at first boot)
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.
21
22# default to disabled
23ENABLE_BINARY_LOCALE_GENERATION ?= "0"
24ENABLE_BINARY_LOCALE_GENERATION_pn-eglibc-nativesdk = "0"
25
26#enable locale generation on these arches
27# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
28BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
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
34# Set this to zero if you don't want ldconfig in the output package 17# Set this to zero if you don't want ldconfig in the output package
35USE_LDCONFIG ?= "1" 18USE_LDCONFIG ?= "1"
36 19
37PKGSUFFIX = "" 20PKGSUFFIX = ""
38PKGSUFFIX_virtclass-nativesdk = "-nativesdk" 21PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
39 22
40PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} ldd${PKGSUFFIX} localedef${PKGSUFFIX} libcidn ${PN}-utils ${PN}-pic ${PN}-dev eglibc-doc eglibc-locale libmemusage libsegfault${PKGSUFFIX} eglibc-extra-nss eglibc-thread-db${PKGSUFFIX} eglibc-pcprofile libsotruss${PKGSUFFIX}" 23PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} ldd${PKGSUFFIX} ${PN}-utils ${PN}-pic ${PN}-dev eglibc-doc libcidn libmemusage libsegfault${PKGSUFFIX} eglibc-extra-nss eglibc-thread-db${PKGSUFFIX} eglibc-pcprofile libsotruss${PKGSUFFIX}"
41
42PACKAGES_DYNAMIC = " \
43 glibc-gconv-*${PKGSUFFIX} glibc-charmap-* glibc-localedata-* glibc-binary-localedata-* \
44 eglibc-gconv-* eglibc-charmap-* eglibc-localedata-* eglibc-binary-localedata-* \
45 locale-base-*${PKGSUFFIX}"
46 24
47# Create a eglibc-binaries 25# Create a eglibc-binaries
48ALLOW_EMPTY_${PN}-binaries = "1" 26ALLOW_EMPTY_${PN}-binaries = "1"
@@ -69,7 +47,6 @@ RPROVIDES_eglibc-utils = "glibc-utils"
69RPROVIDES_eglibc-pic = "glibc-pic" 47RPROVIDES_eglibc-pic = "glibc-pic"
70RPROVIDES_eglibc-dev = "glibc-dev" 48RPROVIDES_eglibc-dev = "glibc-dev"
71RPROVIDES_eglibc-doc = "glibc-doc" 49RPROVIDES_eglibc-doc = "glibc-doc"
72RPROVIDES_eglibc-locale = "glibc-locale"
73RPROVIDES_eglibc-extra-nss = "glibc-extra-nss" 50RPROVIDES_eglibc-extra-nss = "glibc-extra-nss"
74RPROVIDES_eglibc-thread-db = "glibc-thread-db" 51RPROVIDES_eglibc-thread-db = "glibc-thread-db"
75RPROVIDES_eglibc-pcprofile = "glibc-pcprofile" 52RPROVIDES_eglibc-pcprofile = "glibc-pcprofile"
@@ -89,14 +66,12 @@ FILES_eglibc-dev_append += "${bindir}/rpcgen ${libdir}/*.a \
89 ${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal" 66 ${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal"
90FILES_nscd${PKGSUFFIX} = "${sbindir}/nscd*" 67FILES_nscd${PKGSUFFIX} = "${sbindir}/nscd*"
91FILES_eglibc-utils = "${bindir}/* ${sbindir}/*" 68FILES_eglibc-utils = "${bindir}/* ${sbindir}/*"
92FILES_eglibc-gconv = "${libdir}/gconv/*" 69FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"
93FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/gconv/.debug ${libdir}/audit/.debug"
94FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv" 70FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
95RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault" 71RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
96EDEPENDS_eglibc-utils = "libsotruss" 72EDEPENDS_eglibc-utils = "libsotruss"
97FILES_eglibc-pcprofile = "${base_libdir}/libpcprofile.so" 73FILES_eglibc-pcprofile = "${base_libdir}/libpcprofile.so"
98FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db*" 74FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db*"
99FILES_localedef${PKGSUFFIX} = "${bindir}/localedef"
100RPROVIDES_eglibc-dev += "libc-dev" 75RPROVIDES_eglibc-dev += "libc-dev"
101 76
102SUMMARY_sln = "The static ln." 77SUMMARY_sln = "The static ln."
@@ -107,10 +82,9 @@ SUMMARY_eglibc-extra-nss = "hesiod, NIS and NIS+ nss libraries"
107DESCRIPTION_eglibc-extra-nss = "eglibc: nis, nisplus and hesiod search services." 82DESCRIPTION_eglibc-extra-nss = "eglibc: nis, nisplus and hesiod search services."
108SUMMARY_ldd = "print shared library dependencies" 83SUMMARY_ldd = "print shared library dependencies"
109DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line." 84DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line."
110DESCRIPTION_localedef = "eglibc: compile locale definition files"
111SUMMARY_eglibc-utils = "Miscellaneous utilities provided by eglibc" 85SUMMARY_eglibc-utils = "Miscellaneous utilities provided by eglibc"
112DESCRIPTION_eglibc-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..." 86DESCRIPTION_eglibc-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..."
113DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs" 87DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs"
114 88
115inherit libc-package 89inherit libc-common
116 90
diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
index 616f1aff6d..74afb9d2b0 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -43,7 +43,7 @@ EGLIBCPARALLELISM := "PARALLELMFLAGS="${PARALLEL_MAKE}""
43EXTRA_OEMAKE += ${EGLIBCPARALLELISM} 43EXTRA_OEMAKE += ${EGLIBCPARALLELISM}
44PARALLEL_MAKE = "" 44PARALLEL_MAKE = ""
45 45
46PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" 46PACKAGES = "glibc catchsegv sln nscd ldd glibc-utils glibc-dev glibc-doc libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
47 47
48OE_FEATURES = "${@features_to_eglibc_settings(d)}" 48OE_FEATURES = "${@features_to_eglibc_settings(d)}"
49do_configure_prepend() { 49do_configure_prepend() {
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
index 3490d2db9f..603d9cdc62 100644
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.13.bb
@@ -110,6 +110,18 @@ do_compile () {
110 ) 110 )
111} 111}
112 112
113do_install_locale () {
114 dest=${D}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}
115 install -d ${dest} ${dest}${bindir}
116 cp -fpPR ${D}${base_libdir} ${dest}${base_prefix}
117 cp -fpPR ${D}${libdir} ${dest}${exec_prefix}
118 cp -fpPR ${D}${datadir} ${dest}${exec_prefix}
119 cp -fpPR ${D}${bindir}/localedef ${dest}${bindir}
120 cp -fpPR ${WORKDIR}/SUPPORTED ${dest}
121}
122
123addtask do_install_locale after do_install before do_populate_sysroot
124
113require eglibc-package.inc 125require eglibc-package.inc
114 126
115BBCLASSEXTEND = "nativesdk" 127BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-core/glibc/glibc-initial_2.10.1.bb b/meta/recipes-core/glibc/glibc-initial_2.10.1.bb
index d66297090f..bc3d7e4192 100644
--- a/meta/recipes-core/glibc/glibc-initial_2.10.1.bb
+++ b/meta/recipes-core/glibc/glibc-initial_2.10.1.bb
@@ -1,6 +1,10 @@
1require glibc_${PV}.bb 1require glibc_${PV}.bb
2require glibc-initial.inc 2require glibc-initial.inc
3 3
4do_install_locale() {
5 :
6}
7
4do_configure_prepend () { 8do_configure_prepend () {
5 unset CFLAGS 9 unset CFLAGS
6} 10}
diff --git a/meta/recipes-core/glibc/glibc-locale_2.10.1.bb b/meta/recipes-core/glibc/glibc-locale_2.10.1.bb
new file mode 100644
index 0000000000..d8ff12d274
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc-locale_2.10.1.bb
@@ -0,0 +1,52 @@
1#INHIBIT_DEFAULT_DEPS = "1"
2LICENSE = "LGPL"
3
4BPN = "glibc"
5
6do_fetch[noexec] = "1"
7do_unpack[noexec] = "1"
8do_patch[noexec] = "1"
9do_configure[noexec] = "1"
10do_compile[noexec] = "1"
11
12# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
13# is set. The idea is to avoid running localedef on the target (at first boot)
14# to decrease initial boot time and avoid localedef being killed by the OOM
15# killer which used to effectively break i18n on machines with < 128MB RAM.
16
17# default to disabled
18ENABLE_BINARY_LOCALE_GENERATION ?= "0"
19ENABLE_BINARY_LOCALE_GENERATION_pn-glibc-locale-nativesdk = "0"
20
21#enable locale generation on these arches
22# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
23BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
24
25# set "1" to use cross-localedef for locale generation
26# set "0" for qemu emulation of native localedef for locale generation
27LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
28
29PR = "r0"
30
31PKGSUFFIX = ""
32PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
33
34PROVIDES = "virtual/libc-locale"
35
36PACKAGES = "glibc-locale localedef${PKGSUFFIX}"
37
38PACKAGES_DYNAMIC = "locale-base-* \
39 glibc-gconv-*${PKGSUFFIX} glibc-charmap-* glibc-localedata-* glibc-binary-localedata-*"
40
41FILES_localedef${PKGSUFFIX} = "${bindir}/localedef"
42
43DESCRIPTION_localedef = "glibc: compile locale definition files"
44
45do_install () {
46 cp -fpPR ${STAGING_INCDIR}/glibc-locale-internal-${MULTIMACH_TARGET_SYS}/* ${D}
47 cp -fpPR ${D}/SUPPORTED ${WORKDIR}
48}
49
50do_install[depends] += "virtual/libc${PKGSUFFIX}:do_populate_sysroot"
51
52BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 27dc4271c3..5373d56d57 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -14,34 +14,14 @@ python __anonymous () {
14 bb.data.getVar('TARGET_OS', d, 1)) 14 bb.data.getVar('TARGET_OS', d, 1))
15} 15}
16 16
17
18# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
19# is set. The idea is to avoid running localedef on the target (at first boot)
20# to decrease initial boot time and avoid localedef being killed by the OOM
21# killer which used to effectively break i18n on machines with < 128MB RAM.
22
23# default to disabled until qemu works for everyone
24ENABLE_BINARY_LOCALE_GENERATION ?= "0"
25ENABLE_BINARY_LOCALE_GENERATION_pn-glibc-nativesdk = "0"
26
27# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
28BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
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
34PKGSUFFIX = "" 17PKGSUFFIX = ""
35PKGSUFFIX_virtclass-nativesdk = "-nativesdk" 18PKGSUFFIX_virtclass-nativesdk = "-nativesdk"
36 19
37PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} \ 20PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} \
38 ldd${PKGSUFFIX} localedef${PKGSUFFIX} ${PN}-utils ${PN}-dev ${PN}-doc \ 21 ldd${PKGSUFFIX} ${PN}-utils ${PN}-dev ${PN}-doc \
39 ${PN}-locale libsegfault${PKGSUFFIX} ${PN}-extra-nss ${PN}-thread-db \ 22 libsegfault${PKGSUFFIX} ${PN}-extra-nss ${PN}-thread-db \
40 ${PN}-pcprofile" 23 ${PN}-pcprofile"
41 24
42PACKAGES_DYNAMIC = "glibc-gconv-*${PKGSUFFIX} glibc-charmap-* glibc-localedata-* locale-base-* \
43 glibc-binary-localedata-*"
44
45libc_baselibs = "${base_libdir}/libc* ${base_libdir}/libm* ${base_libdir}/ld* \ 25libc_baselibs = "${base_libdir}/libc* ${base_libdir}/libm* ${base_libdir}/ld* \
46 ${base_libdir}/libpthread* ${base_libdir}/libresolv* ${base_libdir}/librt* \ 26 ${base_libdir}/libpthread* ${base_libdir}/libresolv* ${base_libdir}/librt* \
47 ${base_libdir}/libutil* ${base_libdir}/libnsl* ${base_libdir}/libnss_files* \ 27 ${base_libdir}/libutil* ${base_libdir}/libnsl* ${base_libdir}/libnss_files* \
@@ -77,7 +57,6 @@ FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"
77RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault" 57RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"
78FILES_glibc-pcprofile = "${base_libdir}/libpcprofile.so" 58FILES_glibc-pcprofile = "${base_libdir}/libpcprofile.so"
79FILES_glibc-thread-db = "${base_libdir}/libthread_db*" 59FILES_glibc-thread-db = "${base_libdir}/libthread_db*"
80FILES_localedef${PKGSUFFIX} = "${bindir}/localedef"
81RPROVIDES_glibc-dev += "libc-dev" 60RPROVIDES_glibc-dev += "libc-dev"
82 61
83SUMMARY_sln = "The static ln." 62SUMMARY_sln = "The static ln."
@@ -88,10 +67,10 @@ SUMMARY_glibc-extra-nss = "hesiod, NIS and NIS+ nss libraries"
88DESCRIPTION_glibc-extra-nss = "glibc: nis, nisplus and hesiod search services. 67DESCRIPTION_glibc-extra-nss = "glibc: nis, nisplus and hesiod search services.
89SUMMARY_ldd = "print shared library dependencies" 68SUMMARY_ldd = "print shared library dependencies"
90DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line." 69DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line."
91DESCRIPTION_localedef = "glibc: compile locale definition files"
92SUMMARY_glibc-utils = "Miscellaneous utilities provided by glibc" 70SUMMARY_glibc-utils = "Miscellaneous utilities provided by glibc"
93DESCRIPTION_glibc-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..." 71DESCRIPTION_glibc-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..."
94 72
95EXTRA_OEMAKE += "rootsbindir=${base_sbindir}" 73EXTRA_OEMAKE += "rootsbindir=${base_sbindir}"
96 74
97inherit libc-package 75inherit libc-common
76
diff --git a/meta/recipes-core/glibc/glibc_2.10.1.bb b/meta/recipes-core/glibc/glibc_2.10.1.bb
index 33ebe24b03..a2e7b834f5 100644
--- a/meta/recipes-core/glibc/glibc_2.10.1.bb
+++ b/meta/recipes-core/glibc/glibc_2.10.1.bb
@@ -154,6 +154,18 @@ do_compile () {
154 ) 154 )
155} 155}
156 156
157do_install_locale () {
158 dest=${D}/${includedir}/glibc-locale-internal-${MULTIMACH_TARGET_SYS}
159 install -d ${dest} ${dest}${bindir}
160 cp -fpPR ${D}${base_libdir} ${dest}${base_prefix}
161 cp -fpPR ${D}${libdir} ${dest}${exec_prefix}
162 cp -fpPR ${D}${datadir} ${dest}${exec_prefix}
163 cp -fpPR ${D}${bindir}/localedef ${dest}${bindir}
164 cp -fpPR ${WORKDIR}/SUPPORTED ${dest}
165}
166
167addtask do_install_locale after do_install before do_populate_sysroot
168
157require glibc-stage.inc 169require glibc-stage.inc
158 170
159require glibc-package.inc 171require glibc-package.inc
diff --git a/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb b/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
index f7149289d7..a874c8b15a 100644
--- a/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
+++ b/meta/recipes-core/meta/external-csl-toolchain_2008q3-72.bb
@@ -40,6 +40,7 @@ do_install() {
40 40
41GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile" 41GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "compile"
42 42
43inherit libc-common
43inherit libc-package 44inherit libc-package
44 45
45PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers" 46PACKAGES += "libgcc libgcc-dev libstdc++ libstdc++-dev linux-libc-headers"