diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2009-11-19 22:37:45 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2009-11-19 22:37:45 +0000 |
commit | 1e549b98e1afbc91a5673dd00954f7c4a358b8c0 (patch) | |
tree | 835affae2c6b4ecd8dd54887a4daf9c123e28bed /meta | |
parent | ebf6159c7b63ae01d20b83fdb38201189f0f9a1e (diff) | |
download | poky-1e549b98e1afbc91a5673dd00954f7c4a358b8c0.tar.gz |
glibc: Separate out core glibc packaging functionality into a class
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/glibc-package.bbclass (renamed from meta/packages/glibc/glibc-package.bbclass) | 95 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_2.3.5+cvs20050627.bb | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_2.4.bb | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_2.5.bb | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_2.6.1.bb | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_2.9.bb | 2 | ||||
-rw-r--r-- | meta/packages/glibc/glibc_csl-2005q3-2.bb | 2 |
7 files changed, 21 insertions, 86 deletions
diff --git a/meta/packages/glibc/glibc-package.bbclass b/meta/classes/glibc-package.bbclass index 561805a66e..b16daa47f7 100644 --- a/meta/packages/glibc/glibc-package.bbclass +++ b/meta/classes/glibc-package.bbclass | |||
@@ -1,37 +1,20 @@ | |||
1 | # | 1 | # |
2 | # For now, we will skip building of a gcc package if it is a uclibc one | 2 | # This class knows how to package up glibc. Its shared since prebuild binary toolchains |
3 | # and our build is not a uclibc one, and we skip a glibc one if our build | 3 | # may need packaging and its pointless to duplicate this code. |
4 | # is a uclibc build. | ||
5 | # | 4 | # |
6 | # See the note in gcc/gcc_3.4.0.oe | 5 | # Caller should set GLIBC_INTERNAL_USE_BINARY_LOCALE to one of: |
7 | # | 6 | # "compile" - Use QEMU to generate the binary locale files |
8 | 7 | # "precompiled" - The binary locale files are pregenerated and already present | |
9 | python __anonymous () { | 8 | # "ondevice" - The device will build the locale files upon first boot through the postinst |
10 | import bb, re | ||
11 | uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None) | ||
12 | if uc_os: | ||
13 | raise bb.parse.SkipPackage("incompatible with target %s" % | ||
14 | bb.data.getVar('TARGET_OS', d, 1)) | ||
15 | } | ||
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 | 9 | ||
23 | # default to disabled until qemu works for everyone | 10 | GLIBC_INTERNAL_USE_BINARY_LOCALE ?= "ondevice" |
24 | ENABLE_BINARY_LOCALE_GENERATION ?= "0" | ||
25 | 11 | ||
26 | # BINARY_LOCALE_ARCHES is a space separated list of regular expressions | 12 | PACKAGES = "glibc-dbg glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" |
27 | BINARY_LOCALE_ARCHES ?= "arm.*" | ||
28 | |||
29 | PACKAGES = "${PN}-dbg ${PN} catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" | ||
30 | PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* locale-base-* glibc-binary-localedata-*" | 13 | PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* locale-base-* glibc-binary-localedata-*" |
31 | 14 | ||
32 | libc_baselibs = "${base_libdir}/libc* ${base_libdir}/libm* ${base_libdir}/ld* ${base_libdir}/libpthread* ${base_libdir}/libresolv* ${base_libdir}/librt* ${base_libdir}/libutil* ${base_libdir}/libnsl* ${base_libdir}/libnss_files* ${base_libdir}/libnss_compat* ${base_libdir}/libnss_dns* ${base_libdir}/libdl* ${base_libdir}/libanl* ${base_libdir}/libBrokenLocale*" | 15 | libc_baselibs = "${base_libdir}/libc* ${base_libdir}/libm* ${base_libdir}/ld* ${base_libdir}/libpthread* ${base_libdir}/libresolv* ${base_libdir}/librt* ${base_libdir}/libutil* ${base_libdir}/libnsl* ${base_libdir}/libnss_files* ${base_libdir}/libnss_compat* ${base_libdir}/libnss_dns* ${base_libdir}/libdl* ${base_libdir}/libanl* ${base_libdir}/libBrokenLocale*" |
33 | 16 | ||
34 | FILES_${PN} = "${sysconfdir} ${libc_baselibs} ${base_sbindir}/ldconfig ${libexecdir}/* ${datadir}/zoneinfo" | 17 | FILES_glibc = "${sysconfdir} ${libc_baselibs} ${base_sbindir}/ldconfig ${libexecdir}/* ${datadir}/zoneinfo" |
35 | FILES_ldd = "${bindir}/ldd" | 18 | FILES_ldd = "${bindir}/ldd" |
36 | FILES_libsegfault = "${base_libdir}/libSegFault*" | 19 | FILES_libsegfault = "${base_libdir}/libSegFault*" |
37 | FILES_glibc-extra-nss = "${base_libdir}/libnss*" | 20 | FILES_glibc-extra-nss = "${base_libdir}/libnss*" |
@@ -40,7 +23,9 @@ FILES_glibc-dev_append = " ${libdir}/*.o ${bindir}/rpcgen" | |||
40 | FILES_nscd = "${sbindir}/nscd* ${sysconfdir}/nscd* ${sysconfdir}/init.d/nscd*" | 23 | FILES_nscd = "${sbindir}/nscd* ${sysconfdir}/nscd* ${sysconfdir}/init.d/nscd*" |
41 | FILES_glibc-utils = "${bindir}/* ${sbindir}/*" | 24 | FILES_glibc-utils = "${bindir}/* ${sbindir}/*" |
42 | FILES_glibc-gconv = "${libdir}/gconv/*" | 25 | FILES_glibc-gconv = "${libdir}/gconv/*" |
43 | FILES_${PN}-dbg += " ${libdir}/gconv/.debug ${libexecdir}/*/.debug" | 26 | FILES_glibc-dbg = "${bindir}/.debug ${sbindir}/.debug ${libdir}/.debug \ |
27 | ${base_bindir}/.debug ${base_sbindir}/.debug ${base_libdir}/.debug \ | ||
28 | ${libdir}/gconv/.debug ${libexecdir}/*/.debug" | ||
44 | FILES_catchsegv = "${bindir}/catchsegv" | 29 | FILES_catchsegv = "${bindir}/catchsegv" |
45 | RDEPENDS_catchsegv = "libsegfault" | 30 | RDEPENDS_catchsegv = "libsegfault" |
46 | FILES_glibc-pcprofile = "${base_libdir}/libpcprofile.so" | 31 | FILES_glibc-pcprofile = "${base_libdir}/libpcprofile.so" |
@@ -55,36 +40,6 @@ DESCRIPTION_ldd = "glibc: print shared library dependencies" | |||
55 | DESCRIPTION_localedef = "glibc: compile locale definition files" | 40 | DESCRIPTION_localedef = "glibc: compile locale definition files" |
56 | DESCRIPTION_glibc-utils = "glibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..." | 41 | DESCRIPTION_glibc-utils = "glibc: misc utilities like iconf, local, gencat, tzselect, rpcinfo, ..." |
57 | 42 | ||
58 | def get_glibc_fpu_setting(bb, d): | ||
59 | if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]: | ||
60 | return "--without-fp" | ||
61 | return "" | ||
62 | |||
63 | EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}" | ||
64 | EXTRA_OEMAKE += "rootsbindir=${base_sbindir}" | ||
65 | |||
66 | OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}" | ||
67 | |||
68 | do_install() { | ||
69 | oe_runmake install_root=${D} install | ||
70 | for r in ${rpcsvc}; do | ||
71 | h=`echo $r|sed -e's,\.x$,.h,'` | ||
72 | install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/ | ||
73 | done | ||
74 | install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ | ||
75 | install -d ${D}${libdir}/locale | ||
76 | make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED" | ||
77 | # get rid of some broken files... | ||
78 | for i in ${GLIBC_BROKEN_LOCALES}; do | ||
79 | grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp | ||
80 | mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED | ||
81 | done | ||
82 | rm -f ${D}/etc/rpc | ||
83 | rm -f ${D}${includedir}/scsi/sg.h | ||
84 | rm -f ${D}${includedir}/scsi/scsi_ioctl.h | ||
85 | rm -f ${D}${includedir}/scsi/scsi.h | ||
86 | } | ||
87 | |||
88 | TMP_LOCALE="/tmp/locale${libdir}/locale" | 43 | TMP_LOCALE="/tmp/locale${libdir}/locale" |
89 | 44 | ||
90 | locale_base_postinst() { | 45 | locale_base_postinst() { |
@@ -118,26 +73,6 @@ mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/ | |||
118 | rm -rf ${TMP_LOCALE} | 73 | rm -rf ${TMP_LOCALE} |
119 | } | 74 | } |
120 | 75 | ||
121 | python __anonymous () { | ||
122 | enabled = bb.data.getVar("ENABLE_BINARY_LOCALE_GENERATION", d, 1) | ||
123 | |||
124 | if enabled and int(enabled): | ||
125 | import re | ||
126 | |||
127 | target_arch = bb.data.getVar("TARGET_ARCH", d, 1) | ||
128 | binary_arches = bb.data.getVar("BINARY_LOCALE_ARCHES", d, 1) or "" | ||
129 | |||
130 | for regexp in binary_arches.split(" "): | ||
131 | r = re.compile(regexp) | ||
132 | |||
133 | if r.match(target_arch): | ||
134 | depends = bb.data.getVar("DEPENDS", d, 1) | ||
135 | depends = "%s qemu-native" % depends | ||
136 | bb.data.setVar("DEPENDS", depends, d) | ||
137 | bb.data.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "1", d) | ||
138 | break | ||
139 | } | ||
140 | |||
141 | do_prep_locale_tree() { | 76 | do_prep_locale_tree() { |
142 | treedir=${WORKDIR}/locale-tree | 77 | treedir=${WORKDIR}/locale-tree |
143 | rm -rf $treedir | 78 | rm -rf $treedir |
@@ -276,13 +211,13 @@ python package_do_split_gconvs () { | |||
276 | 211 | ||
277 | def output_locale(name, locale, encoding): | 212 | def output_locale(name, locale, encoding): |
278 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) | 213 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) |
279 | if use_bin: | 214 | if use_bin == "compile": |
280 | output_locale_binary(name, locale, encoding) | 215 | output_locale_binary(name, locale, encoding) |
281 | else: | 216 | else: |
282 | output_locale_source(name, locale, encoding) | 217 | output_locale_source(name, locale, encoding) |
283 | 218 | ||
284 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) | 219 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) |
285 | if use_bin: | 220 | if use_bin == "compile": |
286 | bb.note("preparing tree for binary locale generation") | 221 | bb.note("preparing tree for binary locale generation") |
287 | bb.build.exec_func("do_prep_locale_tree", d) | 222 | bb.build.exec_func("do_prep_locale_tree", d) |
288 | 223 | ||
@@ -307,7 +242,7 @@ python package_do_split_gconvs () { | |||
307 | bb.note(" " + " ".join(non_utf8)) | 242 | bb.note(" " + " ".join(non_utf8)) |
308 | 243 | ||
309 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) | 244 | use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1) |
310 | if use_bin: | 245 | if use_bin == "compile": |
311 | bb.note("collecting binary locales from locale tree") | 246 | bb.note("collecting binary locales from locale tree") |
312 | bb.build.exec_func("do_collect_bins_from_locale_tree", d) | 247 | bb.build.exec_func("do_collect_bins_from_locale_tree", d) |
313 | do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='glibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True) | 248 | do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='glibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True) |
diff --git a/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb b/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb index 3111ed3583..8c44c21156 100644 --- a/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb +++ b/meta/packages/glibc/glibc_2.3.5+cvs20050627.bb | |||
@@ -107,4 +107,4 @@ do_compile () { | |||
107 | 107 | ||
108 | require glibc-stage.inc | 108 | require glibc-stage.inc |
109 | 109 | ||
110 | require glibc-package.bbclass | 110 | require glibc-package.inc |
diff --git a/meta/packages/glibc/glibc_2.4.bb b/meta/packages/glibc/glibc_2.4.bb index 3f184a6b13..3102c5953c 100644 --- a/meta/packages/glibc/glibc_2.4.bb +++ b/meta/packages/glibc/glibc_2.4.bb | |||
@@ -134,4 +134,4 @@ do_compile () { | |||
134 | 134 | ||
135 | require glibc-stage.inc | 135 | require glibc-stage.inc |
136 | 136 | ||
137 | require glibc-package.bbclass | 137 | require glibc-package.inc |
diff --git a/meta/packages/glibc/glibc_2.5.bb b/meta/packages/glibc/glibc_2.5.bb index 5f95280584..a63b678949 100644 --- a/meta/packages/glibc/glibc_2.5.bb +++ b/meta/packages/glibc/glibc_2.5.bb | |||
@@ -145,4 +145,4 @@ do_compile () { | |||
145 | 145 | ||
146 | require glibc-stage.inc | 146 | require glibc-stage.inc |
147 | 147 | ||
148 | require glibc-package.bbclass | 148 | require glibc-package.inc |
diff --git a/meta/packages/glibc/glibc_2.6.1.bb b/meta/packages/glibc/glibc_2.6.1.bb index 3521f66fe3..790fdde97a 100644 --- a/meta/packages/glibc/glibc_2.6.1.bb +++ b/meta/packages/glibc/glibc_2.6.1.bb | |||
@@ -151,4 +151,4 @@ do_compile () { | |||
151 | 151 | ||
152 | require glibc-stage.inc | 152 | require glibc-stage.inc |
153 | 153 | ||
154 | require glibc-package.bbclass | 154 | require glibc-package.inc |
diff --git a/meta/packages/glibc/glibc_2.9.bb b/meta/packages/glibc/glibc_2.9.bb index 75f56d6146..7e3c70e204 100644 --- a/meta/packages/glibc/glibc_2.9.bb +++ b/meta/packages/glibc/glibc_2.9.bb | |||
@@ -155,6 +155,6 @@ do_compile () { | |||
155 | 155 | ||
156 | require glibc-stage.inc | 156 | require glibc-stage.inc |
157 | 157 | ||
158 | require glibc-package.bbclass | 158 | require glibc-package.inc |
159 | 159 | ||
160 | BBCLASSEXTEND = "nativesdk" | 160 | BBCLASSEXTEND = "nativesdk" |
diff --git a/meta/packages/glibc/glibc_csl-2005q3-2.bb b/meta/packages/glibc/glibc_csl-2005q3-2.bb index d2aa11605b..b1ea27dec5 100644 --- a/meta/packages/glibc/glibc_csl-2005q3-2.bb +++ b/meta/packages/glibc/glibc_csl-2005q3-2.bb | |||
@@ -86,4 +86,4 @@ do_compile () { | |||
86 | 86 | ||
87 | require glibc-stage.inc | 87 | require glibc-stage.inc |
88 | 88 | ||
89 | require glibc-package.bbclass | 89 | require glibc-package.inc |